Merge tag 'upstream/1.10.3'

Upstream version 1.10.3
diff --git a/ChangeLog b/ChangeLog
index ff2c203..af65afb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,324 @@
-=== release 1.10.2 ===
+=== release 1.10.3 ===
 
-2016-11-29  Sebastian Dröge <slomo@coaxion.net>
+2017-01-30  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.10.2
+	  releasing 1.10.3
+
+2017-01-30 13:30:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/fr.po:
+	* po/nb.po:
+	* po/sr.po:
+	  po: Update translations
+
+2017-01-30 12:35:04 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/audio/audio-resampler-x86-sse41.c:
+	  audio-resampler: Fix integer overflow in clamping code
+	  https://bugzilla.gnome.org/show_bug.cgi?id=777921
+
+2017-01-20 12:41:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff-media: Don't divide block align by zero channels
+	  https://bugzilla.gnome.org/show_bug.cgi?id=777525
+
+2017-01-20 08:02:38 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/subparse/samiparse.c:
+	  samiparse: Check that the string has a non-zero length before overwriting the last byte with '\0'
+	  https://bugzilla.gnome.org/show_bug.cgi?id=777502
+
+2017-01-15 18:42:34 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff-media: Don't recurse in for nested WAVEFORMATEX
+	  There was already a check for that, but it failed because
+	  subformat_guid[0] is a guint32 and that is then casted implicitely to a
+	  guint16 when recursing... just that we checked the uncasted value.
+	  This caused an infinite recursion and thus stack overflow.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=777265
+
+2017-01-15 18:31:56 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/riff/riff-media.c:
+	  riff-media: Check for valid channels/rate before using the values
+	  Otherwise we might divide by zero or otherwise create invalid caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=777262
+
+2017-01-11 18:24:38 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/video/video-converter.c:
+	  video-converter: Fix crashes in fast-paths when converting interlaced formats with different vertical subsampling
+	  E.g. the following pipelines fail because chroma values after the last
+	  line are read (note: 486 % 4 == 2):
+	  gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=UYVY" ! videoconvert ! "video/x-raw,format=I420" ! fakesink
+	  gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=I420" ! videoconvert ! "video/x-raw,format=UYVY" ! fakesink
+	  gst-launch-1.0 videotestsrc ! "video/x-raw,interlace-mode=interleaved,width=720,height=486,format=I420" ! videoconvert ! "video/x-raw,format=AYUV" ! fakesink
+
+2017-01-10 08:57:51 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* gst-libs/gst/pbutils/encoding-profile.c:
+	  pbutils: Fix annotation in gst_encoding_profile_set_preset
+
+2017-01-09 21:25:26 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/video/video.c:
+	  gst_video_guess_framerate: Don't throw away all precision
+	  When operating on framerates near 10000fps, at least keep 1
+	  digit of precision for calculations
+
+2017-01-04 11:21:51 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: Fix stream_group_free when creating it went bad
+	  Avoiding trying to use NULL pointers
+
+2016-12-30 17:55:18 +0100  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/playback/gstplaysink.c:
+	  playsink: do not link to audio or video filter using padname
+	  ... as a sinkpad need not be called "sink", and it is not the case
+	  for e.g. timeoverlay (and friends).
+	  Fixes https://bugzilla.gnome.org/show_bug.cgi?id=776623
+
+2017-01-02 12:54:32 +0000  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/encoding/gstencodebin.c:
+	  encodebin: fix queue property types when setting
+
+2015-11-25 11:30:42 +0000  Stuart Weaver <stuart.weaver@datapath.co.uk>
+
+	* gst-libs/gst/rtsp/gstrtspurl.c:
+	  rtsp-url: unescape special chars in user/pass part of URL
+	  This way special characters such as '@' can be used in
+	  usernames or passwords, e.g.
+	  rtsp://view:%40dm%4An@<IP-ADDR>/media/camera1
+	  will now parse username and password into:
+	  User: view
+	  Pass: @dm:n
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758389
+
+2016-09-02 15:23:18 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/audiotestsrc/gstaudiotestsrc.c:
+	  audiotestsrc: Fix incorrect start of tick waveform
+	  Make sure ticks start with an accumulator value of 0 by incrementing it
+	  after filling in samples instead of before and by resetting the accumulator
+	  every time a tick begins. This prevents it from being discontinuous at the
+	  beginning of the tick.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=774050
+
+2016-12-22 18:47:19 +0100  Nicolas Dechesne <nicolas.dechesne@linaro.org>
+
+	* tools/gst-play.c:
+	  tools: gst-play: set GST_GL_XINITHREADS
+	  This ensure that XInitThreads is called and so gl contexts are properly
+	  initialized.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=776403
+
+2016-12-21 00:11:06 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst/playback/gstparsebin.c:
+	  parsebin: Ignore failure to send sticky events
+	  When plugging and then exposing a parser, don't fail
+	  if it fails to send sticky events. The most likely
+	  reason is that things were flushed due to the app
+	  immediately doing a seek, but we can't detect flushing
+	  separately to other error conditions without a
+	  gst_pad_send_event_full() core function that returns
+	  a GstFlowReturn.
+
+2016-12-15 16:29:02 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/playback/gstdecodebin2.c:
+	  decodebin: For adaptive streaming, ensure to put the buffering multiqueue after a parser or demuxer
+	  There are cases when there is no demuxer involved that could do the
+	  buffering, e.g. HLS with raw MP3 or AAC. In this case we want to place
+	  the buffering multiqueue after the parser.
+	  Before this change, we've considered the first element after the
+	  adaptive streaming demuxer as a parser. This is not always true, e.g.
+	  id3demux. Instead we now wait until we actually have a parser (or
+	  decoder).
+	  Fixes playback on such HLS streams.
+
+2016-12-09 17:36:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/tag/gstxmptag.c:
+	  xmptag: Don't leak the namespace string if there are multiple
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775887
+
+2016-12-09 17:57:52 +1100  Jan Schmidt <jan@centricular.com>
+
+	* gst-libs/gst/tag/id3v2.c:
+	  id3v2: Add missing overrun check for frame sizes
+	  When frames claim to have a footer, ensure they
+	  are large enough to contain one to avoid an invalid
+	  read overrun.
+	  Spotted by Joshua Yabut
+
+2016-12-06 16:29:23 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst-libs/gst/tag/gsttagdemux.c:
+	  tagdemux: Fix crash when shutting down element during getrange()
+	  Ensure that nothing is in any of the streaming thread functions
+	  anymore when going from PAUSED to READY. While the parent's state change
+	  function has deactivated all pads, there is nothing preventing
+	  downstream from activating our srcpad again and calling the getrange()
+	  function. Although we're in READY!
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775687
+
+2016-11-04 16:41:05 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix 120 ms buffers being wrongly emitted
+	  Using the max 120 ms buffer size to ensure we have enough space
+	  for decoded data meant that Opus could actually return 120 ms'
+	  worth of data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771723
+
+2016-09-26 10:50:52 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: fix "buffer too small" error
+	  Always supply a buffer with max size to the decoder, as we
+	  can't really decide how many samples will be in the lost packet
+	  based on the timestamps we get.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771723
+
+2016-10-06 11:44:11 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/opus/gstopusdec.c:
+	  opusdec: interpret zero duration as unknown
+	  This fixes missing audio when we get buffers with zero
+	  duration, denoting unknown duration. When several such
+	  buffers are received in a row, they're all at the same
+	  timestamp, with zero duration.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771723
+
+2016-11-29 16:26:22 +0100  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+	* tests/check/elements/multifdsink.c:
+	  multifdsink: Add a test involving a slow client
+	  https://bugzilla.gnome.org/show_bug.cgi?id=774908
+
+2016-11-23 14:35:04 +0100  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+	* gst/tcp/gstmultihandlesink.c:
+	  multihandlesink: Update bufpos in a separate pass
+	  If a client gets dropped and the iteration gets restarted, bufpos is
+	  incremented again for all clients that preceded the dropped one, causing
+	  havoc.
+	  Adjust the bufpos for all clients first before trying to drop any.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=774908
+
+2016-11-29 15:30:43 +0100  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+	* gst/tcp/gstmultihandlesink.c:
+	  multihandlesink: Fix buffers-queued being off by one
+	  max_buffer_usage is the index of the oldest buffer in the queue,
+	  starting at zero, not the number of buffers queued.
+	  find_limits returns the index of the oldest buffer that satisfies the
+	  limits in its min_idx parameter, not the number of buffers needed. Fix
+	  this use too in order to keep passing the tests that read
+	  buffers-queued.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775351
+
+2016-12-01 15:12:59 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/ogg/gstoggdemux.c:
+	  oggdemux: Don't end up ignoring caps just because there are no headers for this stream
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775459
+
+2016-12-01 19:57:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/subparse/gstssaparse.c:
+	  ssaparse: Free initialization section before storing the next one
+	  If getting multiple caps events.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=775480
+
+=== release 1.10.2 ===
+
+2016-11-29 16:20:54 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/inspect/plugin-adder.xml:
+	* docs/plugins/inspect/plugin-alsa.xml:
+	* docs/plugins/inspect/plugin-app.xml:
+	* docs/plugins/inspect/plugin-audioconvert.xml:
+	* docs/plugins/inspect/plugin-audiorate.xml:
+	* docs/plugins/inspect/plugin-audioresample.xml:
+	* docs/plugins/inspect/plugin-audiotestsrc.xml:
+	* docs/plugins/inspect/plugin-cdparanoia.xml:
+	* docs/plugins/inspect/plugin-encoding.xml:
+	* docs/plugins/inspect/plugin-gio.xml:
+	* docs/plugins/inspect/plugin-libvisual.xml:
+	* docs/plugins/inspect/plugin-ogg.xml:
+	* docs/plugins/inspect/plugin-opus.xml:
+	* docs/plugins/inspect/plugin-pango.xml:
+	* docs/plugins/inspect/plugin-playback.xml:
+	* docs/plugins/inspect/plugin-subparse.xml:
+	* docs/plugins/inspect/plugin-tcp.xml:
+	* docs/plugins/inspect/plugin-theora.xml:
+	* docs/plugins/inspect/plugin-typefindfunctions.xml:
+	* docs/plugins/inspect/plugin-videoconvert.xml:
+	* docs/plugins/inspect/plugin-videorate.xml:
+	* docs/plugins/inspect/plugin-videoscale.xml:
+	* docs/plugins/inspect/plugin-videotestsrc.xml:
+	* docs/plugins/inspect/plugin-volume.xml:
+	* docs/plugins/inspect/plugin-vorbis.xml:
+	* docs/plugins/inspect/plugin-ximagesink.xml:
+	* docs/plugins/inspect/plugin-xvimagesink.xml:
+	* gst-plugins-base.doap:
+	* win32/common/_stdint.h:
+	* win32/common/config.h:
+	  Release 1.10.2
+
+2016-11-29 15:28:59 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	  Update .po files
 
 2016-11-29 14:09:18 +0200  Sebastian Dröge <sebastian@centricular.com>
 
diff --git a/Makefile.in b/Makefile.in
index 4053e12..4eaa664 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -207,7 +207,7 @@
 	$(top_srcdir)/common/release.mak \
 	$(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \
 	COPYING.LIB ChangeLog INSTALL NEWS README compile config.guess \
-	config.rpath config.sub depcomp install-sh ltmain.sh missing
+	config.rpath config.sub install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
diff --git a/NEWS b/NEWS
index 815dee3..c8f4d44 100644
--- a/NEWS
+++ b/NEWS
@@ -1,8 +1,8 @@
 # GStreamer 1.10 Release Notes
 
 GStreamer 1.10.0 was originally released on 1st November 2016.
-The latest bug-fix release in the 1.10 series is [1.10.2](#1.10.2) and was
-released on 29 November 2016.
+The latest bug-fix release in the 1.10 series is [1.10.3](#1.10.3) and was
+released on 30 January 2017.
 
 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!
@@ -13,7 +13,7 @@
 See [https://gstreamer.freedesktop.org/releases/1.10/][latest] for the latest
 version of this document.
 
-*Last updated: Tuesday 29 Nov 2016, 12:30 UTC [(log)][gitlog]*
+*Last updated: Monday 30 Jan 2017, 12:00 UTC [(log)][gitlog]*
 
 [latest]: https://gstreamer.freedesktop.org/releases/1.10/
 [gitlog]: https://cgit.freedesktop.org/gstreamer/www/log/src/htdocs/releases/1.10/release-notes-1.10.md
@@ -1103,7 +1103,7 @@
 
 ### 1.10.2
 
-The first 1.10 bug-fix release (1.10.2) was released on 29 November 2016.
+The second 1.10 bug-fix release (1.10.2) was released on 29 November 2016.
 This release only contains bugfixes and it should be safe to update from 1.10.x.
 
 #### Major bugfixes in 1.10.2
@@ -1111,7 +1111,9 @@
  - Security-relevant bugfix in the FLI/FLX/FLC decoder (CVE-2016-9634,
    CVE-2016-9635, CVE-2016-9636)
  - Various fixes for crashes, assertions and other failures on fuzzed input
-   files (among others, thanks to Hanno Böck for testing and reporting)
+   files. Among others, thanks to Hanno Böck for testing and reporting
+   (CVE-2016-9807, CVE-2016-9808, CVE-2016-9809, CVE-2016-9810, CVE-2016-9811,
+   CVE-2016-9812, CVE-2016-9813).
  - SAVP/SAVPF profile in gst-rtsp-server works for live streams again, and the
    correct MIKEY policy message is generated
  - Further OpenGL related bugfixes
@@ -1124,6 +1126,32 @@
 
 [buglist-1.10.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=168172&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.2
 
+<a name="1.10.3"></a>
+
+### 1.10.3
+
+The third 1.10 bug-fix release (1.10.3) was released on 30 January 2017.
+This release only contains bugfixes and it should be safe to update from 1.10.x.
+
+#### Major bugfixes in 1.10.3
+
+ - Various fixes for crashes, assertions, deadlocks and memory leaks on fuzzed
+   input files and in other situations
+ - Regression fixes for souphttpsrc with redirection tracking and retrying
+ - Regression fix for gst-rtsp-server not handling TCP-only medias anymore
+ - Various other bugfixes the RTP/RTSP codebase
+ - vp8enc works again on 32 bit Windows
+ - Fixes to Opus PLC handling in the decoder
+ - Fix for stream corruption in multihandlesink when removing clients
+ - gst-libav was updated to ffmpeg 3.2.2
+ - ... and many, many more!
+
+For a full list of bugfixes see [Bugzilla][buglist-1.10.3]. Note that this is
+not the full list of changes. For the full list of changes please refer to the
+GIT logs or ChangeLogs of the particular modules.
+
+[buglist-1.10.3]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=187054&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.10.3
+
 ## Known Issues
 
 - iOS builds with iOS 6 SDK and old C++ STL. You need to select iOS 6 instead
@@ -1134,8 +1162,6 @@
 - Building applications with Android NDK r13 on Windows does not work. Other
   platforms and earlier/later versions of the NDK are not affected.
   [Bug #772842](https://bugzilla.gnome.org/show_bug.cgi?id=772842)
-- vp8enc crashes on 32 bit Windows, but was working fine in 1.6. 64 bit Windows is unaffected.
-  [Bug #763663](https://bugzilla.gnome.org/show_bug.cgi?id=763663)
 
 ## Schedule for 1.12
 
@@ -1144,9 +1170,9 @@
 of 1.11/1.12 will happen in the git master branch.
 
 The plan for the 1.12 development cycle is yet to be confirmed, but it is
-expected that feature freeze will be around early/mid-January,
+expected that feature freeze will be around early/mid-February,
 followed by several 1.11 pre-releases and the new 1.12 stable release
-in March.
+in April.
 
 1.12 will be backwards-compatible to the stable 1.10, 1.8, 1.6, 1.4, 1.2 and
 1.0 release series.
diff --git a/RELEASE b/RELEASE
index 6df6fc0..18cd2c7 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,7 +1,7 @@
 
-Release notes for GStreamer Base Plugins 1.10.2
+Release notes for GStreamer Base Plugins 1.10.3
 
-The GStreamer team is proud to announce the second bugfix release in the stable
+The GStreamer team is proud to announce the third bugfix release in the stable
 1.10 release series of your favourite cross-platform multimedia framework!
 
 
@@ -58,10 +58,21 @@
 
 Bugs fixed in this release
      
-      * 774911 : mikey:  gst_mikey_message_new_from_caps does not generate a correct message
-      * 774585 : videotimecode: Fix incorrect nsec_since_daily_jam calculation
-      * 774902 : typefind: out of bounds memory read in windows_icon_typefind
-      * 775224 : subtitleoverlay: Caps memory leak when failing to get sinkpad from subtitle renderer
+      * 758389 : rtsp-url: unescape special chars in user/pass part of URL
+      * 771723 : opusdec: too short buffers trigger error instead of PLC
+      * 774908 : multifdsink removing slow client corrupts matroska stream
+      * 775351 : multihandlesink: buffers-queued is off by one
+      * 775459 : oggdemux: Hangs on divx-bandits-sample file
+      * 775480 : ssaparse: memory leak in gst_ssa_parse_setcaps
+      * 775687 : tagdemux: Crash if getrange/shutdown happen at the same time
+      * 775887 : qtdemux/xmptag: memory leak in gst_tag_list_from_xmp_buffer
+      * 776403 : gst-play should set GST_GL_XINITHREADS so that XinitThread() is called appropriately
+      * 776623 : playbin/playsink fail to use timeoverlay as video-filter
+      * 777262 : riff-media: floating point exception in gst_riff_create_audio_caps
+      * 777265 : riff: stack overflow in gst_riff_create_audio_caps
+      * 777502 : samiparse: heap oob in html_context_handle_element
+      * 777525 : floating point exception in gst_riff_create_audio_caps (different than #777262)
+      * 777921 : audio-resampler: integer overflow in clamping code
 
 ==== Download ====
 
@@ -98,11 +109,14 @@
         
 Contributors to this release
     
-      * Edward Hervey
-      * Garima Gaur
-      * Matthew Waters
+      * Carlos Rafael Giani
+      * Jan Alexander Steffens (heftig)
+      * Jan Schmidt
+      * Mark Nauwelaerts
+      * Nicolas Dechesne
       * Sebastian Dröge
+      * Stuart Weaver
+      * Thibault Saunier
       * Tim-Philipp Müller
-      * Ulf Olsson
-      * Vivia Nikolaidou
+      * Vincent Penquerc'h
  
\ No newline at end of file
diff --git a/configure b/configure
index ad738a6..812ee44 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.10.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Base Plug-ins 1.10.3.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Base Plug-ins'
 PACKAGE_TARNAME='gst-plugins-base'
-PACKAGE_VERSION='1.10.2'
-PACKAGE_STRING='GStreamer Base Plug-ins 1.10.2'
+PACKAGE_VERSION='1.10.3'
+PACKAGE_STRING='GStreamer Base Plug-ins 1.10.3'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1798,7 +1798,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer Base Plug-ins 1.10.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Base Plug-ins 1.10.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1871,7 +1871,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.10.2:";;
+     short | recursive ) echo "Configuration of GStreamer Base Plug-ins 1.10.3:";;
    esac
   cat <<\_ACEOF
 
@@ -2166,7 +2166,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Base Plug-ins configure 1.10.2
+GStreamer Base Plug-ins configure 1.10.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2939,7 +2939,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer Base Plug-ins $as_me 1.10.2, which was
+It was created by GStreamer Base Plug-ins $as_me 1.10.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3918,7 +3918,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-base'
- VERSION='1.10.2'
+ VERSION='1.10.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4129,9 +4129,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.10.2 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.10.2 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.10.2 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.10.3 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.10.3 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.10.3 | cut -d'.' -f3)
 
 
 
@@ -4142,7 +4142,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.10.2 | cut -d'.' -f4)
+  NANO=$(echo 1.10.3 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -8976,10 +8976,10 @@
 done
 
 
-  GST_CURRENT=1002
+  GST_CURRENT=1003
   GST_REVISION=0
-  GST_AGE=1002
-  GST_LIBVERSION=1002:0:1002
+  GST_AGE=1003
+  GST_LIBVERSION=1003:0:1003
 
 
 
@@ -32913,7 +32913,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Base Plug-ins $as_me 1.10.2, which was
+This file was extended by GStreamer Base Plug-ins $as_me 1.10.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -32979,7 +32979,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer Base Plug-ins config.status 1.10.2
+GStreamer Base Plug-ins config.status 1.10.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 4cc8cfa..963a890 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/prerelease
-AC_INIT([GStreamer Base Plug-ins],[1.10.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
+AC_INIT([GStreamer Base Plug-ins],[1.10.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-base])
 
 AG_GST_INIT
 
@@ -56,7 +56,7 @@
 dnl      1.10.9 (who knows) => 1009
 dnl
 dnl sets GST_LT_LDFLAGS
-AS_LIBTOOL(GST, 1002, 0, 1002)
+AS_LIBTOOL(GST, 1003, 0, 1003)
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=1.10.0
diff --git a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
index 4c3c140..b8b9901 100644
--- a/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
+++ b/docs/libs/html/gst-plugins-base-libs-encoding-profile.html
@@ -1379,8 +1379,8 @@
 </tr>
 <tr>
 <td class="parameter_name"><p>preset</p></td>
-<td class="parameter_description"><p>the element preset to use</p></td>
-<td class="parameter_annotations"> </td>
+<td class="parameter_description"><p> the element preset to use. </p></td>
+<td class="parameter_annotations"><span class="annotation">[<acronym title="NULL may be passed as the value in, out, in-out; or as a return value."><span class="acronym">nullable</span></acronym>]</span></td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
index 049cc12..144851d 100644
--- a/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
+++ b/docs/libs/html/gst-plugins-base-libs-gstpluginsbaseversion.html
@@ -184,7 +184,7 @@
 <hr>
 <div class="refsect2">
 <a name="GST-PLUGINS-BASE-VERSION-MICRO:CAPS"></a><h3>GST_PLUGINS_BASE_VERSION_MICRO</h3>
-<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (2)
+<pre class="programlisting">#define GST_PLUGINS_BASE_VERSION_MICRO (3)
 </pre>
 <p>The micro version of GStreamer's gst-plugins-base libraries at compile time.</p>
 </div>
diff --git a/docs/libs/html/index.html b/docs/libs/html/index.html
index 851065f..89aa36d 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 Base Plugins 1.0 Library Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Library 1.0 (1.10.2)
+      for GStreamer Base Library 1.0 (1.10.3)
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/</a>.
     </p></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
index 2c34eb0..edde154 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-adder.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
index 9a2571c..d7256cc 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-alsa.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
index b5da50c..5c5110c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-app.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
index e8e21be..a01b64c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioconvert.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
index e5e07ea..dc354cf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiorate.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
index b6d8a30..baa207a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audioresample.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
index eeb3b00..9cdd636 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-audiotestsrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
index d881926..59935d1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-cdparanoia.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
index 926840f..7cbd7ce 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-encoding.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
index cc64abd..3748f23 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-gio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
index 8c01a0b..af32b84 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-libvisual.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
index caaf25d..237f4ae 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ogg.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
index d4d06c0..849eaec 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-opus.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
index b634ccf..4922177 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-pango.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
index 01b4191..423c594 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-playback.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
index fa3186f..601ab88 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-subparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
index 62f94f5..17b2daf 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-tcp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
index fd40b08..2740d3c 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-theora.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
index 90b4371..9f3d8ba 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-typefindfunctions.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
index a977d96..330540a 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoconvert.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
index cfe1d6a..7c15cde 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videorate.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
index a78aee8..e19ae88 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videoscale.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
index b4d0e97..d1f36e1 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-videotestsrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
index d6d112b..0759f13 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-volume.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
index 7b42234..37772ea 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-vorbis.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
index 763579c..bc26474 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-ximagesink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
index 5ad006f..263db05 100644
--- a/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
+++ b/docs/plugins/html/gst-plugins-base-plugins-plugin-xvimagesink.html
@@ -41,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.10.2</td>
+<td>1.10.3</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 1c8f714..6ab84fd 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 Base Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Base Plugins 1.0 (1.10.2)
+      for GStreamer Base Plugins 1.0 (1.10.3)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base/html/</a>.
     </p></div>
diff --git a/docs/plugins/inspect/plugin-adder.xml b/docs/plugins/inspect/plugin-adder.xml
index 87b6b1b..d80f0cc 100644
--- a/docs/plugins/inspect/plugin-adder.xml
+++ b/docs/plugins/inspect/plugin-adder.xml
@@ -3,7 +3,7 @@
   <description>Adds multiple streams</description>
   <filename>../../gst/adder/.libs/libgstadder.so</filename>
   <basename>libgstadder.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alsa.xml b/docs/plugins/inspect/plugin-alsa.xml
index 9e53629..3737138 100644
--- a/docs/plugins/inspect/plugin-alsa.xml
+++ b/docs/plugins/inspect/plugin-alsa.xml
@@ -3,7 +3,7 @@
   <description>ALSA plugin library</description>
   <filename>../../ext/alsa/.libs/libgstalsa.so</filename>
   <basename>libgstalsa.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-app.xml b/docs/plugins/inspect/plugin-app.xml
index 8858b6e..eb72fc8 100644
--- a/docs/plugins/inspect/plugin-app.xml
+++ b/docs/plugins/inspect/plugin-app.xml
@@ -3,7 +3,7 @@
   <description>Elements used to communicate with applications</description>
   <filename>../../gst/app/.libs/libgstapp.so</filename>
   <basename>libgstapp.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioconvert.xml b/docs/plugins/inspect/plugin-audioconvert.xml
index da3dbb3..812e32c 100644
--- a/docs/plugins/inspect/plugin-audioconvert.xml
+++ b/docs/plugins/inspect/plugin-audioconvert.xml
@@ -3,7 +3,7 @@
   <description>Convert audio to different formats</description>
   <filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
   <basename>libgstaudioconvert.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiorate.xml b/docs/plugins/inspect/plugin-audiorate.xml
index 14ce610..8b7e349 100644
--- a/docs/plugins/inspect/plugin-audiorate.xml
+++ b/docs/plugins/inspect/plugin-audiorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts audio frames</description>
   <filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
   <basename>libgstaudiorate.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioresample.xml b/docs/plugins/inspect/plugin-audioresample.xml
index db30279..09f4bd4 100644
--- a/docs/plugins/inspect/plugin-audioresample.xml
+++ b/docs/plugins/inspect/plugin-audioresample.xml
@@ -3,7 +3,7 @@
   <description>Resamples audio</description>
   <filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
   <basename>libgstaudioresample.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiotestsrc.xml b/docs/plugins/inspect/plugin-audiotestsrc.xml
index 837b917..e61dc64 100644
--- a/docs/plugins/inspect/plugin-audiotestsrc.xml
+++ b/docs/plugins/inspect/plugin-audiotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates audio test signals of given frequency and volume</description>
   <filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
   <basename>libgstaudiotestsrc.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cdparanoia.xml b/docs/plugins/inspect/plugin-cdparanoia.xml
index 234c8c2..357ed57 100644
--- a/docs/plugins/inspect/plugin-cdparanoia.xml
+++ b/docs/plugins/inspect/plugin-cdparanoia.xml
@@ -3,7 +3,7 @@
   <description>Read audio from CD in paranoid mode</description>
   <filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
   <basename>libgstcdparanoia.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-encoding.xml b/docs/plugins/inspect/plugin-encoding.xml
index 2b1e463..bbbbe1f 100644
--- a/docs/plugins/inspect/plugin-encoding.xml
+++ b/docs/plugins/inspect/plugin-encoding.xml
@@ -3,7 +3,7 @@
   <description>various encoding-related elements</description>
   <filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
   <basename>libgstencodebin.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gio.xml b/docs/plugins/inspect/plugin-gio.xml
index 7845730..1b8d9a1 100644
--- a/docs/plugins/inspect/plugin-gio.xml
+++ b/docs/plugins/inspect/plugin-gio.xml
@@ -3,7 +3,7 @@
   <description>GIO elements</description>
   <filename>../../gst/gio/.libs/libgstgio.so</filename>
   <basename>libgstgio.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-libvisual.xml b/docs/plugins/inspect/plugin-libvisual.xml
index ee89b96..7830de3 100644
--- a/docs/plugins/inspect/plugin-libvisual.xml
+++ b/docs/plugins/inspect/plugin-libvisual.xml
@@ -3,7 +3,7 @@
   <description>libvisual visualization plugins</description>
   <filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
   <basename>libgstlibvisual.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ogg.xml b/docs/plugins/inspect/plugin-ogg.xml
index 30288cd..2732deb 100644
--- a/docs/plugins/inspect/plugin-ogg.xml
+++ b/docs/plugins/inspect/plugin-ogg.xml
@@ -3,7 +3,7 @@
   <description>ogg stream manipulation (info about ogg: http://xiph.org)</description>
   <filename>../../ext/ogg/.libs/libgstogg.so</filename>
   <basename>libgstogg.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-opus.xml b/docs/plugins/inspect/plugin-opus.xml
index 9816ddb..9a751b4 100644
--- a/docs/plugins/inspect/plugin-opus.xml
+++ b/docs/plugins/inspect/plugin-opus.xml
@@ -3,7 +3,7 @@
   <description>OPUS plugin library</description>
   <filename>../../ext/opus/.libs/libgstopus.so</filename>
   <basename>libgstopus.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pango.xml b/docs/plugins/inspect/plugin-pango.xml
index c985db7..d57b8c4 100644
--- a/docs/plugins/inspect/plugin-pango.xml
+++ b/docs/plugins/inspect/plugin-pango.xml
@@ -3,7 +3,7 @@
   <description>Pango-based text rendering and overlay</description>
   <filename>../../ext/pango/.libs/libgstpango.so</filename>
   <basename>libgstpango.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-playback.xml b/docs/plugins/inspect/plugin-playback.xml
index 94430e5..7f81edc 100644
--- a/docs/plugins/inspect/plugin-playback.xml
+++ b/docs/plugins/inspect/plugin-playback.xml
@@ -3,7 +3,7 @@
   <description>various playback elements</description>
   <filename>../../gst/playback/.libs/libgstplayback.so</filename>
   <basename>libgstplayback.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-subparse.xml b/docs/plugins/inspect/plugin-subparse.xml
index 8ca857f..80a9617 100644
--- a/docs/plugins/inspect/plugin-subparse.xml
+++ b/docs/plugins/inspect/plugin-subparse.xml
@@ -3,7 +3,7 @@
   <description>Subtitle parsing</description>
   <filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
   <basename>libgstsubparse.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-tcp.xml b/docs/plugins/inspect/plugin-tcp.xml
index d5991e7..e767dcd 100644
--- a/docs/plugins/inspect/plugin-tcp.xml
+++ b/docs/plugins/inspect/plugin-tcp.xml
@@ -3,7 +3,7 @@
   <description>transfer data over the network via TCP</description>
   <filename>../../gst/tcp/.libs/libgsttcp.so</filename>
   <basename>libgsttcp.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-theora.xml b/docs/plugins/inspect/plugin-theora.xml
index 81402d0..0ae86fb 100644
--- a/docs/plugins/inspect/plugin-theora.xml
+++ b/docs/plugins/inspect/plugin-theora.xml
@@ -3,7 +3,7 @@
   <description>Theora plugin library</description>
   <filename>../../ext/theora/.libs/libgsttheora.so</filename>
   <basename>libgsttheora.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-typefindfunctions.xml b/docs/plugins/inspect/plugin-typefindfunctions.xml
index 6be17ad..555c630 100644
--- a/docs/plugins/inspect/plugin-typefindfunctions.xml
+++ b/docs/plugins/inspect/plugin-typefindfunctions.xml
@@ -3,7 +3,7 @@
   <description>default typefind functions</description>
   <filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
   <basename>libgsttypefindfunctions.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoconvert.xml b/docs/plugins/inspect/plugin-videoconvert.xml
index c8834cd..f11b4f8 100644
--- a/docs/plugins/inspect/plugin-videoconvert.xml
+++ b/docs/plugins/inspect/plugin-videoconvert.xml
@@ -3,7 +3,7 @@
   <description>Colorspace conversion</description>
   <filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
   <basename>libgstvideoconvert.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videorate.xml b/docs/plugins/inspect/plugin-videorate.xml
index b9a99b4..f9b568d 100644
--- a/docs/plugins/inspect/plugin-videorate.xml
+++ b/docs/plugins/inspect/plugin-videorate.xml
@@ -3,7 +3,7 @@
   <description>Adjusts video frames</description>
   <filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
   <basename>libgstvideorate.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videoscale.xml b/docs/plugins/inspect/plugin-videoscale.xml
index a73cac2..b06b5b2 100644
--- a/docs/plugins/inspect/plugin-videoscale.xml
+++ b/docs/plugins/inspect/plugin-videoscale.xml
@@ -3,7 +3,7 @@
   <description>Resizes video</description>
   <filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
   <basename>libgstvideoscale.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videotestsrc.xml b/docs/plugins/inspect/plugin-videotestsrc.xml
index 3e02a2d..6e3c2d6 100644
--- a/docs/plugins/inspect/plugin-videotestsrc.xml
+++ b/docs/plugins/inspect/plugin-videotestsrc.xml
@@ -3,7 +3,7 @@
   <description>Creates a test video stream</description>
   <filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
   <basename>libgstvideotestsrc.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-volume.xml b/docs/plugins/inspect/plugin-volume.xml
index 05e664f..ece2e21 100644
--- a/docs/plugins/inspect/plugin-volume.xml
+++ b/docs/plugins/inspect/plugin-volume.xml
@@ -3,7 +3,7 @@
   <description>plugin for controlling audio volume</description>
   <filename>../../gst/volume/.libs/libgstvolume.so</filename>
   <basename>libgstvolume.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vorbis.xml b/docs/plugins/inspect/plugin-vorbis.xml
index 8a40203..4fc31c4 100644
--- a/docs/plugins/inspect/plugin-vorbis.xml
+++ b/docs/plugins/inspect/plugin-vorbis.xml
@@ -3,7 +3,7 @@
   <description>Vorbis plugin library</description>
   <filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
   <basename>libgstvorbis.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesink.xml b/docs/plugins/inspect/plugin-ximagesink.xml
index c99c7b0..48833ee 100644
--- a/docs/plugins/inspect/plugin-ximagesink.xml
+++ b/docs/plugins/inspect/plugin-ximagesink.xml
@@ -3,7 +3,7 @@
   <description>X11 video output element based on standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
   <basename>libgstximagesink.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-xvimagesink.xml b/docs/plugins/inspect/plugin-xvimagesink.xml
index 9cb3706..49e10d0 100644
--- a/docs/plugins/inspect/plugin-xvimagesink.xml
+++ b/docs/plugins/inspect/plugin-xvimagesink.xml
@@ -3,7 +3,7 @@
   <description>XFree86 video output plugin using Xv extension</description>
   <filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
   <basename>libgstxvimagesink.so</basename>
-  <version>1.10.2</version>
+  <version>1.10.3</version>
   <license>LGPL</license>
   <source>gst-plugins-base</source>
   <package>GStreamer Base Plug-ins source release</package>
diff --git a/ext/ogg/gstoggdemux.c b/ext/ogg/gstoggdemux.c
index 517430e..03ac00f 100644
--- a/ext/ogg/gstoggdemux.c
+++ b/ext/ogg/gstoggdemux.c
@@ -2816,7 +2816,7 @@
   if (G_UNLIKELY (!caps))
     return NULL;
   if (G_UNLIKELY (!headers))
-    return NULL;
+    return caps;
 
   caps = gst_caps_make_writable (caps);
   structure = gst_caps_get_structure (caps, 0);
diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c
index 7e99478..46d6663 100644
--- a/ext/opus/gstopusdec.c
+++ b/ext/opus/gstopusdec.c
@@ -540,7 +540,7 @@
     GstClockTime aligned_missing_duration;
     GstClockTime missing_duration = GST_BUFFER_DURATION (bufd);
 
-    if (!GST_CLOCK_TIME_IS_VALID (missing_duration)) {
+    if (!GST_CLOCK_TIME_IS_VALID (missing_duration) || missing_duration == 0) {
       if (GST_CLOCK_TIME_IS_VALID (dec->last_known_buffer_duration)) {
         missing_duration = dec->last_known_buffer_duration;
         GST_WARNING_OBJECT (dec,
@@ -595,7 +595,6 @@
        not constant over the stream. */
     samples = 120 * dec->sample_rate / 1000;
   }
-
   packet_size = samples * dec->n_channels * 2;
 
   outbuf =
@@ -611,23 +610,44 @@
   gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
   out_data = (gint16 *) omap.data;
 
-  if (dec->use_inband_fec) {
-    if (gst_buffer_get_size (dec->last_buffer) > 0) {
-      /* normal delayed decode */
-      GST_LOG_OBJECT (dec, "FEC enabled, decoding last delayed buffer");
+  do {
+    if (dec->use_inband_fec) {
+      if (gst_buffer_get_size (dec->last_buffer) > 0) {
+        /* normal delayed decode */
+        GST_LOG_OBJECT (dec, "FEC enabled, decoding last delayed buffer");
+        n = opus_multistream_decode (dec->state, data, size, out_data, samples,
+            0);
+      } else {
+        /* FEC reconstruction decode */
+        GST_LOG_OBJECT (dec, "FEC enabled, reconstructing last buffer");
+        n = opus_multistream_decode (dec->state, data, size, out_data, samples,
+            1);
+      }
+    } else {
+      /* normal decode */
+      GST_LOG_OBJECT (dec, "FEC disabled, decoding buffer");
       n = opus_multistream_decode (dec->state, data, size, out_data, samples,
           0);
-    } else {
-      /* FEC reconstruction decode */
-      GST_LOG_OBJECT (dec, "FEC enabled, reconstructing last buffer");
-      n = opus_multistream_decode (dec->state, data, size, out_data, samples,
-          1);
     }
-  } else {
-    /* normal decode */
-    GST_LOG_OBJECT (dec, "FEC disabled, decoding buffer");
-    n = opus_multistream_decode (dec->state, data, size, out_data, samples, 0);
-  }
+    if (n == OPUS_BUFFER_TOO_SMALL) {
+      /* if too small, add 2.5 milliseconds and try again, up to the
+       * Opus max size of 120 milliseconds */
+      if (samples >= 120 * dec->sample_rate / 1000)
+        break;
+      samples += 25 * dec->sample_rate / 10000;
+      packet_size = samples * dec->n_channels * 2;
+      gst_buffer_unmap (outbuf, &omap);
+      gst_buffer_unref (outbuf);
+      outbuf =
+          gst_audio_decoder_allocate_output_buffer (GST_AUDIO_DECODER (dec),
+          packet_size);
+      if (!outbuf) {
+        goto buffer_failed;
+      }
+      gst_buffer_map (outbuf, &omap, GST_MAP_WRITE);
+      out_data = (gint16 *) omap.data;
+    }
+  } while (n == OPUS_BUFFER_TOO_SMALL);
   gst_buffer_unmap (outbuf, &omap);
   if (data != NULL)
     gst_buffer_unmap (buf, &map);
@@ -642,6 +662,8 @@
   }
   GST_DEBUG_OBJECT (dec, "decoded %d samples", n);
   gst_buffer_set_size (outbuf, n * 2 * dec->n_channels);
+  GST_BUFFER_DURATION (outbuf) = samples * GST_SECOND / dec->sample_rate;
+  samples = n;
 
   cmeta = gst_buffer_get_audio_clipping_meta (buf);
 
diff --git a/gst-libs/gst/audio/audio-resampler-x86-sse41.c b/gst-libs/gst/audio/audio-resampler-x86-sse41.c
index ce1cc24..a14ca10 100644
--- a/gst-libs/gst/audio/audio-resampler-x86-sse41.c
+++ b/gst-libs/gst/audio/audio-resampler-x86-sse41.c
@@ -70,7 +70,7 @@
   res = _mm_cvtsi128_si64 (sum);
 
   res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
-  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+  *o = CLAMP (res, G_MININT32, G_MAXINT32);
 }
 
 static inline void
@@ -113,7 +113,7 @@
   res = _mm_cvtsi128_si64 (sum[0]);
 
   res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
-  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+  *o = CLAMP (res, G_MININT32, G_MAXINT32);
 }
 
 static inline void
@@ -178,7 +178,7 @@
   res = _mm_cvtsi128_si64 (sum[0]);
 
   res = (res + (1 << (PRECISION_S32 - 1))) >> PRECISION_S32;
-  *o = CLAMP (res, -(1L << 31), (1L << 31) - 1);
+  *o = CLAMP (res, G_MININT32, G_MAXINT32);
 }
 
 MAKE_RESAMPLE_FUNC (gint32, full, 1, sse41);
diff --git a/gst-libs/gst/pbutils/encoding-profile.c b/gst-libs/gst/pbutils/encoding-profile.c
index 0058c86..cff8d8a 100644
--- a/gst-libs/gst/pbutils/encoding-profile.c
+++ b/gst-libs/gst/pbutils/encoding-profile.c
@@ -583,7 +583,7 @@
 /**
  * gst_encoding_profile_set_preset:
  * @profile: a #GstEncodingProfile
- * @preset: the element preset to use
+ * @preset: (nullable): the element preset to use
  *
  * Sets the name of the #GstElement that implements the #GstPreset interface
  * to use for the profile.
diff --git a/gst-libs/gst/riff/riff-media.c b/gst-libs/gst/riff/riff-media.c
index a103a38..a6c2bad 100644
--- a/gst-libs/gst/riff/riff-media.c
+++ b/gst-libs/gst/riff/riff-media.c
@@ -1299,22 +1299,28 @@
       if (strf != NULL) {
         gint ba = strf->blockalign;
         gint ch = strf->channels;
-        gint wd = ba * 8 / ch;
 
-        caps = gst_caps_new_simple ("audio/x-raw",
-            "format", G_TYPE_STRING, wd == 64 ? "F64LE" : "F32LE",
-            "layout", G_TYPE_STRING, "interleaved",
-            "channels", G_TYPE_INT, ch, NULL);
+        if (ba > 0 && ch > 0 && (ba == (64 / 8) * ch || ba == (32 / 8) * ch)) {
+          gint wd = ba * 8 / ch;
 
-        /* Add default channel layout. We know no default layout for more than
-         * 8 channels. */
-        if (ch > 8)
-          GST_WARNING ("don't know default layout for %d channels", ch);
-        else if (gst_riff_wave_add_default_channel_mask (caps, ch,
-                channel_reorder_map))
-          GST_DEBUG ("using default channel layout for %d channels", ch);
-        else
-          GST_WARNING ("failed to add channel layout");
+          caps = gst_caps_new_simple ("audio/x-raw",
+              "format", G_TYPE_STRING, wd == 64 ? "F64LE" : "F32LE",
+              "layout", G_TYPE_STRING, "interleaved",
+              "channels", G_TYPE_INT, ch, NULL);
+
+          /* Add default channel layout. We know no default layout for more than
+           * 8 channels. */
+          if (ch > 8)
+            GST_WARNING ("don't know default layout for %d channels", ch);
+          else if (gst_riff_wave_add_default_channel_mask (caps, ch,
+                  channel_reorder_map))
+            GST_DEBUG ("using default channel layout for %d channels", ch);
+          else
+            GST_WARNING ("failed to add channel layout");
+        } else {
+          GST_WARNING ("invalid block align %d or channel count %d", ba, ch);
+          return NULL;
+        }
       } else {
         /* FIXME: this is pretty useless - we need fixed caps */
         caps = gst_caps_from_string ("audio/x-raw, "
@@ -1609,7 +1615,8 @@
           subformat_guid[2] == 0xaa000080 && subformat_guid[3] == 0x719b3800) {
         if (subformat_guid[0] == 0x00000001) {
           GST_DEBUG ("PCM");
-          if (strf != NULL) {
+          if (strf != NULL && strf->blockalign != 0 && strf->channels != 0
+              && strf->rate != 0) {
             gint ba = strf->blockalign;
             gint wd = ba * 8 / strf->channels;
             gint ws;
@@ -1642,7 +1649,8 @@
           }
         } else if (subformat_guid[0] == 0x00000003) {
           GST_DEBUG ("FLOAT");
-          if (strf != NULL) {
+          if (strf != NULL && strf->blockalign != 0 && strf->channels != 0
+              && strf->rate != 0) {
             gint ba = strf->blockalign;
             gint wd = ba * 8 / strf->channels;
 
@@ -1707,7 +1715,8 @@
           caps = gst_caps_new_empty_simple ("audio/x-ac3");
           if (codec_name)
             *codec_name = g_strdup ("wavext AC-3 SPDIF audio");
-        } else if (subformat_guid[0] == GST_RIFF_WAVE_FORMAT_EXTENSIBLE) {
+        } else if ((subformat_guid[0] & 0xffff) ==
+            GST_RIFF_WAVE_FORMAT_EXTENSIBLE) {
           GST_DEBUG ("WAVE_FORMAT_EXTENSIBLE nested");
         } else {
           /* recurse where no special consideration has yet to be identified 
diff --git a/gst-libs/gst/rtsp/gstrtspurl.c b/gst-libs/gst/rtsp/gstrtspurl.c
index 6c7e8c4..0acd3d7 100644
--- a/gst-libs/gst/rtsp/gstrtspurl.c
+++ b/gst-libs/gst/rtsp/gstrtspurl.c
@@ -136,9 +136,9 @@
     if (col == NULL || col > at)
       goto invalid;
 
-    res->user = g_strndup (p, col - p);
+    res->user = g_uri_unescape_segment (p, col, NULL);
     col++;
-    res->passwd = g_strndup (col, at - col);
+    res->passwd = g_uri_unescape_segment (col, at, NULL);
 
     /* move to host */
     p = at + 1;
diff --git a/gst-libs/gst/tag/gsttagdemux.c b/gst-libs/gst/tag/gsttagdemux.c
index f0e685d..124f788 100644
--- a/gst-libs/gst/tag/gsttagdemux.c
+++ b/gst-libs/gst/tag/gsttagdemux.c
@@ -1726,11 +1726,19 @@
 
   switch (transition) {
     case GST_STATE_CHANGE_PAUSED_TO_READY:
+      /* Ensure that nothing is in any of the streaming thread functions
+       * anymore. While the above has deactivated all pads, there is nothing
+       * preventing downstream from activating our srcpad again and calling the
+       * getrange() function. Although we're in READY!
+       */
+      GST_PAD_STREAM_LOCK (demux->priv->srcpad);
       gst_tag_demux_reset (demux);
+      GST_PAD_STREAM_UNLOCK (demux->priv->srcpad);
       break;
     default:
       break;
   }
+
   return ret;
 }
 
diff --git a/gst-libs/gst/tag/gstxmptag.c b/gst-libs/gst/tag/gstxmptag.c
index 52112a0..656c10e 100644
--- a/gst-libs/gst/tag/gstxmptag.c
+++ b/gst-libs/gst/tag/gstxmptag.c
@@ -1313,6 +1313,7 @@
                 }
                 if (ns_match[i].ns_prefix) {
                   if (strcmp (ns_map[i].original_ns, &as[6])) {
+                    g_free (ns_map[i].gstreamer_ns);
                     ns_map[i].gstreamer_ns = g_strdup (&as[6]);
                   }
                 }
diff --git a/gst-libs/gst/tag/id3v2.c b/gst-libs/gst/tag/id3v2.c
index 4579d25..54f38fc 100644
--- a/gst-libs/gst/tag/id3v2.c
+++ b/gst-libs/gst/tag/id3v2.c
@@ -236,10 +236,16 @@
   work.hdr.size = read_size;
   work.hdr.flags = flags;
   work.hdr.frame_data = info.data + ID3V2_HDR_SIZE;
-  if (flags & ID3V2_HDR_FLAG_FOOTER)
+
+  if (flags & ID3V2_HDR_FLAG_FOOTER) {
+    if (read_size < ID3V2_HDR_SIZE + 10)
+      goto not_enough_data;     /* Invalid frame size */
     work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE - 10;
-  else
+  } else {
+    if (read_size < ID3V2_HDR_SIZE)
+      goto not_enough_data;     /* Invalid frame size */
     work.hdr.frame_data_size = read_size - ID3V2_HDR_SIZE;
+  }
 
   /* in v2.3 the frame sizes are not syncsafe, so the entire tag had to be
    * unsynced. In v2.4 the frame sizes are syncsafe so it's just the frame
diff --git a/gst-libs/gst/video/video-converter.c b/gst-libs/gst/video/video-converter.c
index e67a32a..b94de65 100644
--- a/gst-libs/gst/video/video-converter.c
+++ b/gst-libs/gst/video/video-converter.c
@@ -2880,8 +2880,18 @@
   gint height = convert->in_height;
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   gint l1, l2;
+  gint h2;
 
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+  /* I420 has half as many chroma lines, as such we have to
+   * always merge two into one. For non-interlaced these are
+   * the two next to each other, for interlaced one is skipped
+   * in between. */
+  if (interlaced)
+    h2 = GST_ROUND_DOWN_4 (height);
+  else
+    h2 = GST_ROUND_DOWN_2 (height);
+
+  for (i = 0; i < h2; i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     video_orc_convert_I420_YUY2 (FRAME_GET_LINE (dest, l1),
@@ -2892,10 +2902,12 @@
         FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
   }
 
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  /* now handle last lines. For interlaced these are up to 3 */
+  if (h2 != height) {
+    for (i = h2; i < height; i++) {
+      UNPACK_FRAME (src, convert->tmpline, i, convert->in_x, width);
+      PACK_FRAME (dest, convert->tmpline, i, width);
+    }
   }
 }
 
@@ -2908,8 +2920,18 @@
   gint height = convert->in_height;
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   gint l1, l2;
+  gint h2;
 
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+  /* I420 has half as many chroma lines, as such we have to
+   * always merge two into one. For non-interlaced these are
+   * the two next to each other, for interlaced one is skipped
+   * in between. */
+  if (interlaced)
+    h2 = GST_ROUND_DOWN_4 (height);
+  else
+    h2 = GST_ROUND_DOWN_2 (height);
+
+  for (i = 0; i < h2; i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     video_orc_convert_I420_UYVY (FRAME_GET_LINE (dest, l1),
@@ -2920,10 +2942,12 @@
         FRAME_GET_V_LINE (src, i >> 1), (width + 1) / 2);
   }
 
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  /* now handle last lines. For interlaced these are up to 3 */
+  if (h2 != height) {
+    for (i = h2; i < height; i++) {
+      UNPACK_FRAME (src, convert->tmpline, i, convert->in_x, width);
+      PACK_FRAME (dest, convert->tmpline, i, width);
+    }
   }
 }
 
@@ -2937,8 +2961,18 @@
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   guint8 alpha = MIN (convert->alpha_value, 255);
   gint l1, l2;
+  gint h2;
 
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+  /* I420 has half as many chroma lines, as such we have to
+   * always merge two into one. For non-interlaced these are
+   * the two next to each other, for interlaced one is skipped
+   * in between. */
+  if (interlaced)
+    h2 = GST_ROUND_DOWN_4 (height);
+  else
+    h2 = GST_ROUND_DOWN_2 (height);
+
+  for (i = 0; i < h2; i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     video_orc_convert_I420_AYUV (FRAME_GET_LINE (dest, l1),
@@ -2949,12 +2983,14 @@
         alpha, width);
   }
 
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
-    if (alpha != 0xff)
-      convert_set_alpha_u8 (convert, convert->tmpline, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  /* now handle last lines. For interlaced these are up to 3 */
+  if (h2 != height) {
+    for (i = h2; i < height; i++) {
+      UNPACK_FRAME (src, convert->tmpline, i, convert->in_x, width);
+      if (alpha != 0xff)
+        convert_set_alpha_u8 (convert, convert->tmpline, width);
+      PACK_FRAME (dest, convert->tmpline, i, width);
+    }
   }
 }
 
@@ -2967,8 +3003,18 @@
   gint height = convert->in_height;
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   gint l1, l2;
+  gint h2;
 
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+  /* I420 has half as many chroma lines, as such we have to
+   * always merge two into one. For non-interlaced these are
+   * the two next to each other, for interlaced one is skipped
+   * in between. */
+  if (interlaced)
+    h2 = GST_ROUND_DOWN_4 (height);
+  else
+    h2 = GST_ROUND_DOWN_2 (height);
+
+  for (i = 0; i < h2; i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     video_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
@@ -2978,10 +3024,12 @@
         FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
   }
 
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  /* now handle last lines. For interlaced these are up to 3 */
+  if (h2 != height) {
+    for (i = h2; i < height; i++) {
+      UNPACK_FRAME (src, convert->tmpline, i, convert->in_x, width);
+      PACK_FRAME (dest, convert->tmpline, i, width);
+    }
   }
 }
 
@@ -3067,8 +3115,18 @@
   gint height = convert->in_height;
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   gint l1, l2;
+  gint h2;
 
-  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
+  /* I420 has half as many chroma lines, as such we have to
+   * always merge two into one. For non-interlaced these are
+   * the two next to each other, for interlaced one is skipped
+   * in between. */
+  if (interlaced)
+    h2 = GST_ROUND_DOWN_4 (height);
+  else
+    h2 = GST_ROUND_DOWN_2 (height);
+
+  for (i = 0; i < h2; i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     video_orc_convert_UYVY_I420 (FRAME_GET_COMP_LINE (dest, 0, l1),
@@ -3078,10 +3136,12 @@
         FRAME_GET_LINE (src, l1), FRAME_GET_LINE (src, l2), (width + 1) / 2);
   }
 
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmpline, height - 1, convert->in_x, width);
-    PACK_FRAME (dest, convert->tmpline, height - 1, width);
+  /* now handle last lines. For interlaced these are up to 3 */
+  if (h2 != height) {
+    for (i = h2; i < height; i++) {
+      UNPACK_FRAME (src, convert->tmpline, i, convert->in_x, width);
+      PACK_FRAME (dest, convert->tmpline, i, width);
+    }
   }
 }
 
diff --git a/gst-libs/gst/video/video.c b/gst-libs/gst/video/video.c
index 7f39aa4..230ebae 100644
--- a/gst-libs/gst/video/video.c
+++ b/gst-libs/gst/video/video.c
@@ -133,8 +133,8 @@
   /* Use a limited precision conversion by default for more sensible results,
    * unless the frame duration is absurdly small (high speed cameras?) */
   if (duration > 100000) {
-    best_n = 10000;
-    best_d = duration / 100000;
+    best_n = GST_SECOND / 10000;
+    best_d = duration / 10000;
   } else {
     best_n = GST_SECOND;
     best_d = duration;
diff --git a/gst-plugins-base.doap b/gst-plugins-base.doap
index 6fa6282..99aa363 100644
--- a/gst-plugins-base.doap
+++ b/gst-plugins-base.doap
@@ -36,6 +36,16 @@
 
  <release>
   <Version>
+   <revision>1.10.3</revision>
+   <branch>1.10</branch>
+   <name></name>
+   <created>2017-01-30</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-1.10.3.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.10.2</revision>
    <branch>1.10</branch>
    <name></name>
diff --git a/gst-plugins-base.spec b/gst-plugins-base.spec
index 11f4682..3ed84c9 100644
--- a/gst-plugins-base.spec
+++ b/gst-plugins-base.spec
@@ -4,7 +4,7 @@
 %define gst_minver  0.11.0
 
 Name: 		%{gstreamer}-plugins-base
-Version: 	1.10.2
+Version: 	1.10.3
 Release: 	1.gst
 Summary: 	GStreamer streaming media framework plug-ins
 
diff --git a/gst/audiotestsrc/gstaudiotestsrc.c b/gst/audiotestsrc/gstaudiotestsrc.c
index d00c1c6..51b2590 100644
--- a/gst/audiotestsrc/gstaudiotestsrc.c
+++ b/gst/audiotestsrc/gstaudiotestsrc.c
@@ -735,7 +735,7 @@
 static void \
 gst_audio_test_src_create_tick_##type (GstAudioTestSrc * src, g##type * samples) \
 { \
-  gint i, c, channels, samplerate; \
+  gint i, c, channels, samplerate, samplemod; \
   gdouble step, scl; \
   \
   channels = GST_AUDIO_INFO_CHANNELS (&src->info); \
@@ -744,17 +744,20 @@
   scl = 1024.0 / M_PI_M2; \
   \
   for (i = 0; i < src->generate_samples_per_buffer; i++) { \
-    src->accumulator += step; \
-    if (src->accumulator >= M_PI_M2) \
-      src->accumulator -= M_PI_M2; \
-    \
-    if ((src->next_sample + i)%samplerate < 1600) { \
+    samplemod = (src->next_sample + i) % samplerate; \
+    if (samplemod == 0) { \
+      src->accumulator = 0; \
+    } else if (samplemod < 1600) { \
       for (c = 0; c < channels; ++c) \
         samples[(i * channels) + c] = (g##type) scale * src->wave_table[(gint) (src->accumulator * scl)]; \
     } else { \
       for (c = 0; c < channels; ++c) \
         samples[(i * channels) + c] = 0; \
     } \
+    \
+    src->accumulator += step; \
+    if (src->accumulator >= M_PI_M2) \
+      src->accumulator -= M_PI_M2; \
   } \
 }
 
diff --git a/gst/encoding/gstencodebin.c b/gst/encoding/gstencodebin.c
index 1f5de54..8d9d196 100644
--- a/gst/encoding/gstencodebin.c
+++ b/gst/encoding/gstencodebin.c
@@ -1306,8 +1306,8 @@
    * FIXME : figure out what max-size to use for the input queue */
   sgroup->inqueue = gst_element_factory_make ("queue", NULL);
   g_object_set (sgroup->inqueue, "max-size-buffers",
-      (guint32) ebin->queue_buffers_max, "max-size-bytes",
-      (guint32) ebin->queue_bytes_max, "max-size-time",
+      (guint) ebin->queue_buffers_max, "max-size-bytes",
+      (guint) ebin->queue_bytes_max, "max-size-time",
       (guint64) ebin->queue_time_max, "silent", TRUE, NULL);
 
   gst_bin_add (GST_BIN (ebin), sgroup->inqueue);
@@ -1991,23 +1991,24 @@
   if (sgroup->restriction_sid != 0)
     g_signal_handler_disconnect (sgroup->profile, sgroup->restriction_sid);
 
-  if (ebin->muxer) {
-    /* outqueue - Muxer */
-    tmppad = gst_element_get_static_pad (sgroup->outqueue, "src");
-    pad = gst_pad_get_peer (tmppad);
+  if (sgroup->outqueue) {
+    if (ebin->muxer) {
+      /* outqueue - Muxer */
+      tmppad = gst_element_get_static_pad (sgroup->outqueue, "src");
+      pad = gst_pad_get_peer (tmppad);
 
-    if (pad) {
-      /* Remove muxer request sink pad */
-      gst_pad_unlink (tmppad, pad);
-      if (GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
-          GST_PAD_REQUEST)
-        gst_element_release_request_pad (ebin->muxer, pad);
-      gst_object_unref (pad);
+      if (pad) {
+        /* Remove muxer request sink pad */
+        gst_pad_unlink (tmppad, pad);
+        if (GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad)) ==
+            GST_PAD_REQUEST)
+          gst_element_release_request_pad (ebin->muxer, pad);
+        gst_object_unref (pad);
+      }
+      gst_object_unref (tmppad);
     }
-    gst_object_unref (tmppad);
-  }
-  if (sgroup->outqueue)
     gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
+  }
 
   if (sgroup->formatter) {
     /* capsfilter - formatter - outqueue */
@@ -2015,13 +2016,16 @@
     gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
     gst_element_unlink (sgroup->formatter, sgroup->outqueue);
     gst_element_unlink (sgroup->outfilter, sgroup->formatter);
-  } else {
+  } else if (sgroup->outfilter) {
     /* Capsfilter - outqueue */
     gst_element_set_state (sgroup->outfilter, GST_STATE_NULL);
     gst_element_unlink (sgroup->outfilter, sgroup->outqueue);
   }
-  gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
-  gst_bin_remove (GST_BIN (ebin), sgroup->outqueue);
+
+  if (sgroup->outqueue) {
+    gst_element_set_state (sgroup->outqueue, GST_STATE_NULL);
+    gst_bin_remove (GST_BIN (ebin), sgroup->outqueue);
+  }
 
   /* streamcombiner - parser - capsfilter */
   if (sgroup->parser) {
diff --git a/gst/playback/gstdecodebin2.c b/gst/playback/gstdecodebin2.c
index d6872ad..fa5d159 100644
--- a/gst/playback/gstdecodebin2.c
+++ b/gst/playback/gstdecodebin2.c
@@ -2360,6 +2360,9 @@
     chain->demuxer = is_demuxer_element (element);
     chain->adaptive_demuxer = is_adaptive_demuxer_element (element);
 
+    is_decoder = strstr (gst_element_factory_get_metadata (factory,
+            GST_ELEMENT_METADATA_KLASS), "Decoder") != NULL;
+
     /* For adaptive streaming demuxer we insert a multiqueue after
      * this demuxer.
      * Now for the case where we have a container stream inside these
@@ -2375,7 +2378,7 @@
     if (chain->parent && chain->parent->parent) {
       GstDecodeChain *parent_chain = chain->parent->parent;
 
-      if (parent_chain->adaptive_demuxer)
+      if (parent_chain->adaptive_demuxer && (is_parser || is_decoder))
         chain->demuxer = TRUE;
     }
 
@@ -2385,8 +2388,6 @@
      * the parser or decoder - not elsewhere, otherwise we won't have
      * timestamps.
      */
-    is_decoder = strstr (gst_element_factory_get_metadata (factory,
-            GST_ELEMENT_METADATA_KLASS), "Decoder") != NULL;
 
     if (!chain->parent && (is_parser || is_decoder) && dbin->use_buffering) {
       chain->demuxer = TRUE;
diff --git a/gst/playback/gstparsebin.c b/gst/playback/gstparsebin.c
index 33f9cb5..40ffa4b 100644
--- a/gst/playback/gstparsebin.c
+++ b/gst/playback/gstparsebin.c
@@ -2102,8 +2102,7 @@
     GST_PAD_STREAM_LOCK (sinkpad);
 
     if ((gst_element_set_state (element,
-                GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE ||
-        !send_sticky_events (parsebin, pad)) {
+                GST_STATE_PAUSED)) == GST_STATE_CHANGE_FAILURE) {
       GstParseElement *dtmp = NULL;
       GstElement *tmp = NULL;
       GstMessage *error_msg;
@@ -2183,6 +2182,7 @@
 
       continue;
     } else {
+      send_sticky_events (parsebin, pad);
       /* Everything went well, the spice must flow now */
       GST_PAD_STREAM_UNLOCK (sinkpad);
     }
diff --git a/gst/playback/gstplaysink.c b/gst/playback/gstplaysink.c
index eaac018..a857d95 100644
--- a/gst/playback/gstplaysink.c
+++ b/gst/playback/gstplaysink.c
@@ -1840,7 +1840,7 @@
        * floating reference ourselves already */
       gst_object_unref (chain->filter);
       if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->filter, "sink",
+        if (!gst_element_link_pads_full (prev, "src", chain->filter, NULL,
                 GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
           goto link_failed;
         }
@@ -2721,7 +2721,7 @@
        * floating reference ourselves already */
       gst_object_unref (chain->filter);
       if (prev) {
-        if (!gst_element_link_pads_full (prev, "src", chain->filter, "sink",
+        if (!gst_element_link_pads_full (prev, "src", chain->filter, NULL,
                 GST_PAD_LINK_CHECK_TEMPLATE_CAPS)) {
           goto link_failed;
         }
diff --git a/gst/subparse/gstssaparse.c b/gst/subparse/gstssaparse.c
index 536ce0d..9b00e79 100644
--- a/gst/subparse/gstssaparse.c
+++ b/gst/subparse/gstssaparse.c
@@ -195,6 +195,8 @@
   }
 
   /* FIXME: parse initial section */
+  if (parse->ini)
+    g_free (parse->ini);
   parse->ini = g_strndup (ptr, left);
   GST_LOG_OBJECT (parse, "Init section:\n%s", parse->ini);
 
diff --git a/gst/subparse/samiparse.c b/gst/subparse/samiparse.c
index 517e959..377c6d7 100644
--- a/gst/subparse/samiparse.c
+++ b/gst/subparse/samiparse.c
@@ -504,7 +504,8 @@
     }
 
     length = strlen (attr_value);
-    if (attr_value[length - 1] == '"' || attr_value[length - 1] == '\'') {
+    if (length > 0 && (attr_value[length - 1] == '"'
+            || attr_value[length - 1] == '\'')) {
       attr_value[length - 1] = '\0';
     }
 
diff --git a/gst/tcp/gstmultihandlesink.c b/gst/tcp/gstmultihandlesink.c
index f060f0e..876cc32 100644
--- a/gst/tcp/gstmultihandlesink.c
+++ b/gst/tcp/gstmultihandlesink.c
@@ -1704,26 +1704,14 @@
       soft_max_buffers);
 
   /* then loop over the clients and update the positions */
-  max_buffer_usage = 0;
-
-restart:
   cookie = mhsink->clients_cookie;
-  for (clients = mhsink->clients; clients; clients = next) {
+  for (clients = mhsink->clients; clients; clients = clients->next) {
     GstMultiHandleClient *mhclient = clients->data;
 
-    g_get_current_time (&nowtv);
-    now = GST_TIMEVAL_TO_TIME (nowtv);
-
-    if (cookie != mhsink->clients_cookie) {
-      GST_DEBUG_OBJECT (sink, "Clients cookie outdated, restarting");
-      goto restart;
-    }
-
-    next = g_list_next (clients);
-
     mhclient->bufpos++;
     GST_LOG_OBJECT (sink, "%s client %p at position %d",
         mhclient->debug, mhclient, mhclient->bufpos);
+
     /* check soft max if needed, recover client */
     if (soft_max_buffers > 0 && mhclient->bufpos >= soft_max_buffers) {
       gint newpos;
@@ -1740,6 +1728,25 @@
             "%s client %p not recovering position", mhclient->debug, mhclient);
       }
     }
+  }
+
+  max_buffer_usage = 0;
+  g_get_current_time (&nowtv);
+  now = GST_TIMEVAL_TO_TIME (nowtv);
+
+  /* now check for new or slow clients */
+restart:
+  cookie = mhsink->clients_cookie;
+  for (clients = mhsink->clients; clients; clients = next) {
+    GstMultiHandleClient *mhclient = clients->data;
+
+    if (cookie != mhsink->clients_cookie) {
+      GST_DEBUG_OBJECT (sink, "Clients cookie outdated, restarting");
+      goto restart;
+    }
+
+    next = g_list_next (clients);
+
     /* check hard max and timeout, remove client */
     if ((max_buffers > 0 && mhclient->bufpos >= max_buffers) ||
         (mhsink->timeout > 0
@@ -1761,6 +1768,7 @@
       mhsinkclass->hash_adding (mhsink, mhclient);
       hash_changed = TRUE;
     }
+
     /* keep track of maximum buffer usage */
     if (mhclient->bufpos > max_buffer_usage) {
       max_buffer_usage = mhclient->bufpos;
@@ -1783,7 +1791,7 @@
     find_limits (mhsink, &usage, mhsink->bytes_min, mhsink->buffers_min,
         mhsink->time_min, &max, -1, -1, -1);
 
-    max_buffer_usage = MAX (max_buffer_usage, usage + 1);
+    max_buffer_usage = MAX (max_buffer_usage, usage);
     GST_LOG_OBJECT (sink, "extended queue to %d", max_buffer_usage);
   }
 
@@ -1832,7 +1840,7 @@
     gst_buffer_unref (old);
   }
   /* save for stats */
-  mhsink->buffers_queued = max_buffer_usage;
+  mhsink->buffers_queued = max_buffer_usage + 1;
   CLIENTS_UNLOCK (sink);
 
   /* and send a signal to thread if handle_set changed */
diff --git a/po/af.gmo b/po/af.gmo
index 0edcdd3..90f1a20 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index a1531f9..017eec1 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index 3cb7038..1970d99 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 44ae4dd..3359634 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index 05cb41a..efe138b 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index f29790d..7791f76 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-02-21 21:03+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 db4738b..5f58cb6 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index b8bb896..a9c705f 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index d76cf80..ee7813a 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index d72f6c0..395b8da 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-03-03 15:35+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 9ddd56e..d967b9d 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 8ceb2e9..0196ccb 100644
--- a/po/da.po
+++ b/po/da.po
@@ -33,7 +33,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-03 16:38+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index 1841dfd..a084812 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 2684d2b..f608007 100644
--- a/po/de.po
+++ b/po/de.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-01 23:00+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 1f34941..0642e8e 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index b4a3b4e..6063baf 100644
--- a/po/el.po
+++ b/po/el.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2012-05-05 19:13+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index c957f81..9435341 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 d508b4e..1d230a8 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index 35a494f..36eee9f 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 6786066..8cc033c 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\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 c21c7f7..504afbc 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index 8b1c508..e385691 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.32.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2011-10-02 15:46+0200\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
diff --git a/po/eu.gmo b/po/eu.gmo
index 8171b14..1cae25c 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 446f511..3a98b74 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2010-03-25 12:32+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
diff --git a/po/fi.gmo b/po/fi.gmo
index e530f3f..5296f92 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 5133e7a..d7aa3dc 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -12,7 +12,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2010-12-31 23:21+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
diff --git a/po/fr.gmo b/po/fr.gmo
index ff5265c..fdb30bd 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index b72f330..bc315bf 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -4,20 +4,21 @@
 #
 # Nicolas Velin <nicolas@velin.fr>, 2008.
 # Claude Paroz <claude@2xlibre.net>, 2008-2011.
-# Stéphane Aulery <lkppo@free.fr>, 2015.
+# Stéphane Aulery <lkppo@free.fr>, 2015-2016.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.7.90\n"
+"Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
-"PO-Revision-Date: 2016-03-04 13:08+0100\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
+"PO-Revision-Date: 2016-12-23 20:39+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
 "Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
 msgid "Could not open device for playback in mono mode."
@@ -97,13 +98,11 @@
 msgid "Could not create \"uridecodebin\" element."
 msgstr "Impossible de créer un élément « uridecodebin »."
 
-#, fuzzy
 msgid "Could not create \"decodebin3\" element."
-msgstr "Impossible de créer un élément « uridecodebin »."
+msgstr "Impossible de créer un élément « decodebin3 »."
 
-#, fuzzy
 msgid "Could not create \"urisourcebin\" element."
-msgstr "Impossible de créer un élément « uridecodebin »."
+msgstr "Impossible de créer un élément « urisourcebin »."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -239,9 +238,8 @@
 msgid "Kate subtitle format"
 msgstr "Format de sous-titres Kate"
 
-#, fuzzy
 msgid "WebVTT subtitle format"
-msgstr "Format de sous-titres Kate"
+msgstr "Format de sous-titres WebVTT"
 
 msgid "Uncompressed video"
 msgstr "Video non compressée"
@@ -411,15 +409,14 @@
 msgstr ""
 "Distance focale de l’optique utilisée pour la capture de l’image (en mm)"
 
-#, fuzzy
 msgid "capturing 35 mm equivalent focal length"
-msgstr "distance focale de la capture"
+msgstr "distance focale de la capture équivalente à 35 mm"
 
-#, fuzzy
 msgid ""
 "35 mm equivalent focal length of the lens used capturing the image, in mm"
 msgstr ""
-"Distance focale de l’optique utilisée pour la capture de l’image (en mm)"
+"Distance focale de l’optique équivalente à 35 mm, utilisée pour la capture "
+"de l’image (en mm)"
 
 msgid "capturing digital zoom ratio"
 msgstr "valeur du zoom numérique de la capture"
diff --git a/po/gl.gmo b/po/gl.gmo
index db5e86d..2cdc217 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index b57911a..8f04eaf 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2012-12-15 03:40+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gst-plugins-base-1.0.pot b/po/gst-plugins-base-1.0.pot
index e73dc16..4e6e905 100644
--- a/po/gst-plugins-base-1.0.pot
+++ b/po/gst-plugins-base-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.10.2\n"
+"Project-Id-Version: gst-plugins-base 1.10.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\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"
@@ -102,7 +102,7 @@
 msgid "Could not determine type of stream"
 msgstr ""
 
-#: gst/playback/gstdecodebin2.c:2841 gst/playback/gstparsebin.c:2378
+#: gst/playback/gstdecodebin2.c:2842 gst/playback/gstparsebin.c:2378
 msgid "This appears to be a text file"
 msgstr ""
 
@@ -857,15 +857,15 @@
 msgid "Do not print any output (apart from errors)"
 msgstr ""
 
-#: tools/gst-play.c:1254
+#: tools/gst-play.c:1256
 #, c-format
 msgid "Usage: %s FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ..."
 msgstr ""
 
-#: tools/gst-play.c:1258
+#: tools/gst-play.c:1260
 msgid "You must provide at least one filename or URI to play."
 msgstr ""
 
-#: tools/gst-play.c:1298
+#: tools/gst-play.c:1300
 msgid "Press 'k' to see a list of keyboard shortcuts.\n"
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index c7dcdd7..6c1f0c6 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 6b929f0..e489d61 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-19 10:06-0800\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index abf6c6c..c67392d 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 6e6d988..9305154 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-03-14 19:14+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 d0a6eff..4e28186 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index 5ff55f2..1e931e4 100644
--- a/po/id.po
+++ b/po/id.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-14 20:50+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 eef1b1c..42b165b 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index e5cd6dc..f045c91 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2010-04-28 14:27+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
diff --git a/po/ja.gmo b/po/ja.gmo
index ed96444..ef023e6 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index ac09b17..3c27622 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.30.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2010-10-25 10:27+0900\n"
 "Last-Translator: Makoto Kato <makoto.kt@gmail.com>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index d9a7947..e0732d7 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index 2f82507..bd93ea7 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-0.10.15.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2008-03-07 23:43+0200\n"
 "Last-Translator: Gintautas Miliauskas <gintas@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/lv.gmo b/po/lv.gmo
index a29de9f..17f20e2 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 51f91b9..8f5b858 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2014-04-20 16:15+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index f871bd0..1dd8b71 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 8773e40..486af0c 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -2,20 +2,21 @@
 # This file is put in the public domain.
 #
 # Kjartan Maraas <kmaraas@gnome.org>, 2004-2010.
-# Johnny A. Solbu <johnny@solbu.net>, 2012-2016
+# Johnny A. Solbu <johnny@solbu.net>, 2012-2017
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base 1.7.90\n"
+"Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
-"PO-Revision-Date: 2016-08-05 23:45+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
+"PO-Revision-Date: 2017-01-05 01:29+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb_NO\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: Poedit 1.8.7.1\n"
 
@@ -86,13 +87,11 @@
 msgid "Could not create \"uridecodebin\" element."
 msgstr "Kunne ikke opprette elementet «uridecodebin»"
 
-#, fuzzy
 msgid "Could not create \"decodebin3\" element."
-msgstr "Kunne ikke opprette elementet «uridecodebin»"
+msgstr "Kunne ikke opprette elementet «decodebin3»"
 
-#, fuzzy
 msgid "Could not create \"urisourcebin\" element."
-msgstr "Kunne ikke opprette elementet «uridecodebin»"
+msgstr "Kunne ikke opprette elementet «urisourcebin»"
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -227,9 +226,8 @@
 msgid "Kate subtitle format"
 msgstr "Kate undertekstformat"
 
-#, fuzzy
 msgid "WebVTT subtitle format"
-msgstr "Kate undertekstformat"
+msgstr "WebVTT undertekstformat"
 
 msgid "Uncompressed video"
 msgstr "Ukomprimert video"
@@ -397,14 +395,13 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Brennvidden til objektivet som brukes når du tar bildet, i mm"
 
-#, fuzzy
 msgid "capturing 35 mm equivalent focal length"
-msgstr "opptaksbrennvidde"
+msgstr "35 mm ekvivalent opptaksbrennvidde"
 
-#, fuzzy
 msgid ""
 "35 mm equivalent focal length of the lens used capturing the image, in mm"
-msgstr "Brennvidden til objektivet som brukes når du tar bildet, i mm"
+msgstr ""
+"35 mm ekvivalent brennvidde til objektivet som brukes når du tar bildet, i mm"
 
 msgid "capturing digital zoom ratio"
 msgstr "fanger digitalt zoomforhold"
diff --git a/po/nl.gmo b/po/nl.gmo
index 1f05df6..37dc03f 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 8cf7126..9c01f62 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-02-20 16:39+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/or.gmo b/po/or.gmo
index 7fa44d0..b0527ff 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 77237f7..78fca4f 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index b84bf13..7124f57 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 400a009..70dd55a 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-01 20:50+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 ebe41e2..9524648 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 6edae93..e8b350c 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-05-06 16:47-0300\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 f7a09e2..f6c6439 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index d8a21a4..3ecfe64 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 0.10.29.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2010-08-16 01:21+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
diff --git a/po/ru.gmo b/po/ru.gmo
index f4da160..9fd8006 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 8e882e5..c7d5c1b 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-02 21:17+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index 28d99a1..4c2a2f5 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 8f59e3e..95432fe 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-05-20 12: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 c308405..96827c2 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 15a9de3..9bd9618 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2013-01-05 10:10+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
diff --git a/po/sq.gmo b/po/sq.gmo
index 3ead871..f8ef37d 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index d12b005..a5b7eee 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
diff --git a/po/sr.gmo b/po/sr.gmo
index 86db985..26215f8 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index db0d7e9..34c069e 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -5,10 +5,10 @@
 # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011—2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-base-1.7.90\n"
+"Project-Id-Version: gst-plugins-base-1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
-"PO-Revision-Date: 2016-03-05 09:48+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
+"PO-Revision-Date: 2016-12-04 14:32+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
 "Language: sr\n"
@@ -17,6 +17,7 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 
 msgid "Could not open device for playback in mono mode."
 msgstr "Не могу да отворим уређај ради пуштања у моно режиму."
@@ -84,15 +85,13 @@
 msgstr "Изгледа да је ово текстуална датотека"
 
 msgid "Could not create \"uridecodebin\" element."
-msgstr "Не могу да направим „уридекодебин“ елемент."
+msgstr "Не могу да направим „uridecodebin“ елемент."
 
-#, fuzzy
 msgid "Could not create \"decodebin3\" element."
-msgstr "Не могу да направим „уридекодебин“ елемент."
+msgstr "Не могу да направим „decodebin3“ елемент."
 
-#, fuzzy
 msgid "Could not create \"urisourcebin\" element."
-msgstr "Не могу да направим „уридекодебин“ елемент."
+msgstr "Не могу да направим „urisourcebin“ елемент."
 
 #, c-format
 msgid "Both autovideosink and %s elements are missing."
@@ -227,9 +226,8 @@
 msgid "Kate subtitle format"
 msgstr "Кејт запис превода"
 
-#, fuzzy
 msgid "WebVTT subtitle format"
-msgstr "Кејт запис превода"
+msgstr "ВебВТТ запис превода"
 
 msgid "Uncompressed video"
 msgstr "Несажети снимак"
@@ -397,14 +395,14 @@
 msgid "Focal length of the lens used capturing the image, in mm"
 msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
 
-#, fuzzy
 msgid "capturing 35 mm equivalent focal length"
-msgstr "жижна даљина снимања"
+msgstr "еквивалентна жижна даљина снимања 35 mm"
 
-#, fuzzy
 msgid ""
 "35 mm equivalent focal length of the lens used capturing the image, in mm"
-msgstr "Жижна даљина објектива коришћеног за снимање слика, у мииметрима"
+msgstr ""
+"Еквивалентна 35 mm жижна даљина објектива коришћеног за снимање слика, у "
+"мииметрима"
 
 msgid "capturing digital zoom ratio"
 msgstr "однос дигиталног зума снимања"
diff --git a/po/sv.gmo b/po/sv.gmo
index ce67af4..5396ed6 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 3d99299..3b19146 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.7.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-03-02 22:20+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 4a5fb38..9650dd7 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index bd6a806..71c1391 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2015-01-10 21:07+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 123c369..94614bf 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index d33711f..8e9a5a7 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-01 20:49+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 69e09bb..abe7fea 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 658a5ce..a3d9574 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-02 13:29+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 f61afd9..758de8b 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 e8cf949..eddb17f 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-base 1.10.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-11-29 15:27+0200\n"
+"POT-Creation-Date: 2017-01-30 15:26+0200\n"
 "PO-Revision-Date: 2016-11-02 13:38+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/tests/check/elements/multifdsink.c b/tests/check/elements/multifdsink.c
index 2bc4a79..af138cc 100644
--- a/tests/check/elements/multifdsink.c
+++ b/tests/check/elements/multifdsink.c
@@ -159,10 +159,10 @@
   char data[size + 1]; \
   int nbytes; \
 \
-  GST_DEBUG ("%s: reading %d bytes", msg, size); \
+  GST_LOG ("%s: reading %d bytes", msg, size); \
   nbytes = read (fd, data, size); \
   data[size] = 0; \
-  GST_DEBUG ("%s: read %d bytes", msg, nbytes); \
+  GST_LOG ("%s: read %d bytes", msg, nbytes); \
   fail_if (nbytes < size); \
   fail_unless (memcmp (data, ref, size) == 0, \
       "data read '%s' differs from '%s'", data, ref); \
@@ -797,6 +797,155 @@
 
 GST_END_TEST;
 
+/* number of 16-byte chunks.
+ * should be bigger than any OS pipe buffer, hopefully */
+#define BIG_BUFFER_MULT (16 * 1024)
+
+static GstBuffer *
+gst_new_buffer_big (int i)
+{
+  GstMapInfo info;
+  gchar *data;
+  gint j;
+
+  GstBuffer *buffer = gst_buffer_new_and_alloc (16 * BIG_BUFFER_MULT);
+
+  /* copy some id */
+  g_assert (gst_buffer_map (buffer, &info, GST_MAP_WRITE));
+  data = (gchar *) info.data;
+  for (j = 0; j < BIG_BUFFER_MULT; j++) {
+    g_snprintf (data + 16 * j, 16, "deadbee%08x", i);
+  }
+  gst_buffer_unmap (buffer, &info);
+
+  return buffer;
+}
+
+#define fail_unless_read_big(msg,fd,i) \
+G_STMT_START { \
+  char ref[16]; \
+  int j; \
+  g_snprintf (ref, 16, "deadbee%08x", i); \
+  for (j = 0; j < BIG_BUFFER_MULT; j++) { \
+    fail_unless_read (msg, fd, 16, ref); \
+  } \
+} G_STMT_END;
+
+#define fail_unless_eof(msg,fd) \
+G_STMT_START { \
+  char data; \
+  int nbytes; \
+\
+  GST_LOG ("%s: checking for EOF", msg); \
+  nbytes = read (fd, &data, 1); \
+  GST_LOG ("%s: read %d bytes", msg, nbytes); \
+  fail_if (nbytes != 0, "%s: not at EOF (%d)", msg, nbytes); \
+} G_STMT_END;
+
+static gint
+get_buffers_queued (GstElement * sink)
+{
+  gint buffers;
+  g_object_get (sink, "buffers-queued", &buffers, NULL);
+  return buffers;
+}
+
+static gint
+get_num_handles (GstElement * sink)
+{
+  gint handles;
+  g_object_get (sink, "num-handles", &handles, NULL);
+  return handles;
+}
+
+/* test kicking out clients */
+GST_START_TEST (test_client_kick)
+{
+  GstElement *sink;
+  GstCaps *caps;
+  int pfd1[2];
+  int pfd2[2];
+  int pfd3[2];
+  gint i, initial_buffers = 3, num_buffers = 0;
+
+  sink = setup_multifdsink ();
+  g_object_set (sink, "units-max", initial_buffers, NULL);
+
+  fail_if (pipe (pfd1) == -1);
+  fail_if (pipe (pfd2) == -1);
+  fail_if (pipe (pfd3) == -1);
+
+  ASSERT_SET_STATE (sink, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
+
+  caps = gst_caps_from_string ("application/x-gst-check");
+  gst_check_setup_events (mysrcpad, sink, caps, GST_FORMAT_BYTES);
+  GST_DEBUG ("Created test caps %p %" GST_PTR_FORMAT, caps, caps);
+
+  /* add the clients */
+  g_signal_emit_by_name (sink, "add", pfd1[1]);
+  g_signal_emit_by_name (sink, "add", pfd2[1]);
+  g_signal_emit_by_name (sink, "add", pfd3[1]);
+
+  /* push initial buffers in */
+  for (i = 0; i < initial_buffers; i++) {
+    GstBuffer *buffer = gst_new_buffer_big (i);
+    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    num_buffers++;
+    GST_DEBUG ("Pushed buffer #%d; %d buffers queued", i,
+        get_buffers_queued (sink));
+  }
+
+  /* check initial state */
+  fail_unless_num_handles (sink, 3);
+
+  for (i = 0; i < initial_buffers; i++) {
+    fail_unless_read_big ("client 1", pfd1[0], i);
+    fail_unless_read_big ("client 3", pfd3[0], i);
+    GST_DEBUG ("Read buffer #%d", i);
+  }
+
+  /* check that all 3 clients still exist */
+  fail_unless_num_handles (sink, 3);
+
+  /* now push buffers until client 2 gets kicked.
+   * we don't know how much to push because both the element itself
+   * and the OS pipes have internal buffering of unknown size */
+  for (i = initial_buffers; get_num_handles (sink) == 3; i++) {
+    GstBuffer *buffer = gst_new_buffer_big (i);
+    fail_unless (gst_pad_push (mysrcpad, buffer) == GST_FLOW_OK);
+    num_buffers++;
+    GST_DEBUG ("Pushed buffer #%d; %d buffers queued", i,
+        get_buffers_queued (sink));
+  }
+
+  /* check that 2 clients remain */
+  fail_unless_num_handles (sink, 2);
+
+  /* read the data we've pushed until now */
+  for (i = initial_buffers; i < num_buffers; i++) {
+    fail_unless_read_big ("client 1", pfd1[0], i);
+    fail_unless_read_big ("client 3", pfd3[0], i);
+    GST_DEBUG ("Read buffer #%d", i);
+  }
+
+  GST_DEBUG ("cleaning up multifdsink");
+  g_signal_emit_by_name (sink, "remove", pfd1[1]);
+  g_signal_emit_by_name (sink, "remove", pfd3[1]);
+
+  fail_unless (close (pfd1[1]) == 0);
+  fail_unless (close (pfd3[1]) == 0);
+  fail_unless_eof ("client 1", pfd1[0]);
+  fail_unless_eof ("client 3", pfd3[0]);
+
+  ASSERT_SET_STATE (sink, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
+  cleanup_multifdsink (sink);
+
+  ASSERT_CAPS_REFCOUNT (caps, "caps", 1);
+  gst_caps_unref (caps);
+}
+
+GST_END_TEST;
+
 /* FIXME: add test simulating chained oggs where:
  * sync-method is burst-on-connect
  * (when multifdsink actually does burst-on-connect based on byte size, not
@@ -820,6 +969,7 @@
   tcase_add_test (tc_chain, test_burst_client_bytes_keyframe);
   tcase_add_test (tc_chain, test_burst_client_bytes_with_keyframe);
   tcase_add_test (tc_chain, test_client_next_keyframe);
+  tcase_add_test (tc_chain, test_client_kick);
 
   return s;
 }
diff --git a/tools/gst-play.c b/tools/gst-play.c
index 5708737..189e8f7 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -1194,6 +1194,8 @@
 #endif
 
   g_set_prgname ("gst-play-" GST_API_VERSION);
+  /* Ensure XInitThreads() is called if/when needed */
+  g_setenv ("GST_GL_XINITTHREADS", "1", TRUE);
 
   ctx = g_option_context_new ("FILE1|URI1 [FILE2|URI2] [FILE3|URI3] ...");
   g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
diff --git a/win32/common/_stdint.h b/win32/common/_stdint.h
index 742b9f9..b481188 100644
--- a/win32/common/_stdint.h
+++ b/win32/common/_stdint.h
@@ -1,8 +1,8 @@
 #ifndef _GST_PLUGINS_BASE__STDINT_H
 #define _GST_PLUGINS_BASE__STDINT_H 1
 #ifndef _GENERATED_STDINT_H
-#define _GENERATED_STDINT_H "gst-plugins-base 1.10.2"
-/* generated using gnu compiler gcc (Debian 6.2.1-4) 6.2.1 20161119 */
+#define _GENERATED_STDINT_H "gst-plugins-base 1.10.3"
+/* generated using gnu compiler gcc (Debian 6.3.0-5) 6.3.0 20170124 */
 #define _STDINT_HAVE_STDINT_H 1
 #include <stdint.h>
 #endif
diff --git a/win32/common/config.h b/win32/common/config.h
index 8c4a439..ca39e01 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -90,7 +90,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-11-29"
+#define GST_PACKAGE_RELEASE_DATETIME "2017-01-30"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -365,7 +365,7 @@
 #define PACKAGE_NAME "GStreamer Base Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Base Plug-ins 1.10.2"
+#define PACKAGE_STRING "GStreamer Base Plug-ins 1.10.3"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-base"
@@ -374,7 +374,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.10.2"
+#define PACKAGE_VERSION "1.10.3"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -412,7 +412,7 @@
 #undef USE_TREMOLO
 
 /* Version number of package */
-#define VERSION "1.10.2"
+#define VERSION "1.10.3"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */