Imported Upstream version 1.8.2
diff --git a/ChangeLog b/ChangeLog
index 681d04d..2cb78ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,711 @@
-=== release 1.8.1 ===
+=== release 1.8.2 ===
 
-2016-04-20  Sebastian Dröge <slomo@coaxion.net>
+2016-06-09  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.8.1
+	  releasing 1.8.2
+
+2016-06-09 10:05:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/hr.po:
+	* po/pt_BR.po:
+	* po/sk.po:
+	  po: Update translations
+
+2016-06-09 09:30:48 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: Fix unref assertion failure
+	  Fix unref assertion failure
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767424
+
+2016-06-07 20:53:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/libpng/gstpngdec.c:
+	  pngdec: Wait for segment event before checking it
+	  The heuristic to choose between packetise or not was changed to use the
+	  segment format. The problem is that this change is reading the segment
+	  during the caps event handling. The segment event will only be sent
+	  after. That prevented the decoder to go in packetize mode, and avoid
+	  useless parsing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=736252
+
+2016-06-06 17:00:22 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/jpeg/gstjpegdec.c:
+	  jpegdec: Wait for segment event before checking it
+	  The heuristic to choose between packetise or not was change to use the
+	  segment format. The problem is that this change is reading the segment
+	  during the caps event handling. The segment event will only be sent
+	  after. That prevented the decoder to go in packetize mode, and avoid
+	  useless parsing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=736252
+
+2016-06-07 16:42:09 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2videodec: Keep part of the input buffer
+	  Instead of completely getting rid of the input buffer, copy
+	  the metadata, the flags and the timestamp into an empty buffer.
+	  This way the decoder base class can copy that information again
+	  to the output buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758424
+
+2016-06-07 16:04:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/gstv4l2sink.c:
+	* sys/v4l2/gstv4l2src.c:
+	* sys/v4l2/gstv4l2transform.c:
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2: Add an error return to _try/_set_format
+	  This way one can easily ignore errors. Previously, error were always
+	  posted ont he bus.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766172
+
+2016-06-07 16:01:55 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/v4l2-utils.c:
+	* sys/v4l2/v4l2-utils.h:
+	  v4l2-util: Introduce GstV4l2Error
+	  This is to allow returning an error that can easily be sent as
+	  message to the application if the element needs it. Using this
+	  also allow ignoring errors.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766172
+
+2016-06-07 12:41:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2src: Avoid decide allocation on active pool
+	  v4l2src will renegotiate only if the format have changed. As of now,
+	  it's not possible to change the allocationw without resetting the
+	  camera. To avoid unwanted side effect, simply keep the old allocation
+	  if no renegotiation is taking place. This fixes assertion and possible
+	  failures in USERPTR or DMABUF import mode (when using downstream pools).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=754042
+
+2015-09-02 11:48:29 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2videodec: use decoder stop command instead of queueing empty buffers
+	  Only if the decoder stop command fails, keep queueing empty buffers to
+	  signal end of stream as before.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733864
+
+2014-12-12 14:31:36 +0100  Peter Seiderer <ps.report@gmx.net>
+
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2videodec: add gst_v4l2_decoder_cmd helper
+	  https://bugzilla.gnome.org/show_bug.cgi?id=733864
+
+2015-01-28 12:07:58 +0100  Enrico Jorns <ejo@pengutronix.de>
+
+	* sys/v4l2/gstv4l2transform.c:
+	  gstv4l2transform: format fixation for preferring passthrough
+	  * If outgoing format is unfixated, try to set it to input format.
+	  * Call gst_caps_fixate () at end of fixation routine
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766719
+
+2016-05-20 12:49:53 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2transform.c:
+	  v4l2transform: allow to change pixel aspect ratio
+	  Scalers may change width and height independently,
+	  allow to change pixel aspect ratio.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766712
+
+2016-05-20 12:32:25 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2transform.c:
+	  v4l2transform: fix scaling in case of fixed pixel aspect ratio
+	  To change pixel aspect ratio from DAR to PAR, the necessary scaling factor
+	  is DAR/PAR, not DAR*PAR.
+	  For good measure, add debug output similar to the fixed-width and
+	  fixed-height cases.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766711
+
+2016-05-13 14:58:41 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2videodec: use visible size, not coded size, for downstream negotiation filter
+	  gst_v4l2_probe_caps() returns the coded size, not the visible size. Subtract
+	  the known padding from probed caps with the coded size before using them as
+	  filter for caps negotiation with downstream elements.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766382
+
+2016-01-27 09:57:38 +0100  Andreas Naumann <anaumann@ultratronik.de>
+
+	* sys/v4l2/gstv4l2sink.c:
+	  v4l2sink: Use V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY if driver advertises it.
+	  On modern kernels, the G/S_FMT ioctls will always fail using
+	  V4L2_BUF_TYPE_VIDEO_OVERLAY with VFL_DIR_TX (e.g. real overlay out drivers)
+	  since this is not the intented use (rather rx, according to v4l2 API doc).
+	  Probably this is why the Video Output Overlay interface was created, so if
+	  the driver advertises it we might as well use.
+	  For old kernels (pre 2012) the old way might still work so keeping this for
+	  compatibility.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761165
+
+2016-06-06 18:52:01 +0100  Kieran Bingham <kieran@bingham.xyz>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: Use non-deprecated V4L2 type for RGB15
+	  Support for the updated V4L2_PIX_FMT_XRGB555 was added in commit
+	  2538fee2fd8fdb74b05f0a511281bc4707e7cc44 however, when setting the format
+	  for use in v4l2 ioctls, the old deprecated format is still used. Convert
+	  this to the new accepted format type, as the preferred format.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767300
+
+2016-05-31 21:34:04 +0200  Josep Torra <adn770@gmail.com>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2src: check for valid size on raw video buffers
+	  Discard buffers that doesn't contain enough data when dealing
+	  with raw video inputs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767086
+
+2016-02-10 19:56:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/v4l2/gstv4l2deviceprovider.c:
+	  v4l2: Don't leak v4l2 objects and props on probe errors
+
+2016-05-31 17:04:32 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Only activate segments and send SEGMENT events if we have streams
+	  But in that case also remove the pending newsegment event, otherwise we would
+	  later send a possibly outdated event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
+
+2016-05-31 17:10:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Use the demuxer segment instead of a new one for MSS streams
+	  Upstream might have told us something about the to be expected segment, so
+	  let's use that information instead of coming up with a [0,-1] segment.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
+
+2016-05-31 16:38:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Don't override TIME segments from upstream that we just saw
+	  The point of d8fb7a9c96b108814beeaa0e63f818d4648c7fe9 was to not have any
+	  spurious segments stored for later if we do BYTES->TIME conversion, but
+	  overriding any TIME segments from upstream does not make any sense.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=763165
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
+
+2016-03-15 03:25:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* gst/rtp/gstrtpjpegdepay.c:
+	  rtpjpegdepay: Don't send invalid frames downstream after packet loss or a DISCONT
+	  After clearing the adapter due to a DISCONT, as might happen when some packet(s)
+	  have been lost, the depayloader was pushing data into the adapter (which had no
+	  header due to the clear), creating a headerless frame out of it, and sending it
+	  downstream. The downstream decoder would then usually ignore it; unless there
+	  were lots of DISCONTs from the jitterbuffer in which case the decoder would reach
+	  its max_errors limit and throw an element error. Now we just discard that data.
+	  It is probaby not worth trying to salvage this data because non-progressive
+	  jpeg does not degrade gracefully and makes the video unwatchable even with
+	  low packet loss such as 3-5%.
+
+2016-05-25 17:11:13 +0200  Pierre Lamot <pierre.lamot@openwide.fr>
+
+	* gst/rtp/gstrtpj2kpay.c:
+	  rtpj2kpay: Fix buffer memory leak
+	  Input buffer memory was not unmapped
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766870
+
+2016-05-18 12:12:15 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: fix caps leak
+	  gst_v4l2_object_probe_caps() was taking an extra ref on the returned
+	  caps for no reason.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766610
+
+2016-05-20 11:12:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavidemux.c:
+	* gst/avi/gstavidemux.h:
+	  avidemux: Pass through seek event seqnums in all SEGMENT/EOS events and SEGMENT_DONE messages/events
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+
+2016-05-20 11:15:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Set seek event seqnum on all SEGMENT events
+	  Some were forgotten.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+
+2016-05-20 10:56:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: Set seek event seqnum in EOS and SEGMENT_DONE messages/events
+	  Also actually store the seqnum in pull mode seeks.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+
+2016-05-17 13:40:38 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: fix caps leak
+	  The caps returned by gst_pad_get_current_caps() was never unreffed when
+	  not early returning.
+	  Fix a leak with the elements/deinterlace test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766558
+
+2016-01-25 16:25:51 +0100  Mikhail Fludkov <misha@pexip.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/rtpsession.c:
+	  rtpsession: don't act on suspicious BYE RTCP
+	  Some endpoints (like Tandberg E20) can send BYE packet containing our
+	  internal SSRC. I this case we would detect SSRC collision and get rid
+	  of the source at some point. But because we are still sending packets
+	  with that SSRC the source will be recreated immediately.
+	  This brand new internal source will not have some variables incorrectly
+	  set in its state. For example 'seqnum-base` and `clock-rate` values will be
+	  -1.
+	  The fix is not to act on BYE RTCP if it contains internal or unknown
+	  SSRC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762219
+
+2016-05-12 11:52:09 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Parsing elst box based on version
+	  segment_duration and media_time should be parsed based on version
+	  of elst box. Specification defines that an elst box with version 1
+	  has uint64 and int64 values for segment_duration and media_time,
+	  respectively.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766301
+
+2016-05-15 12:30:50 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Take the lock already when reading the other stats, not just for the hash table
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-12 14:43:43 +0200  Patricia Muscalu <patricia@axis.com>
+
+	* gst/auparse/gstauparse.c:
+	* gst/auparse/gstauparse.h:
+	  auparse: Fix sticky event misordering warning
+	  Make sure that src pad has caps before sending segment event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766359
+
+2016-05-19 15:36:57 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: don't hold object lock whilst pushing out headers
+	  matroskademux would take the GST_OBJECT_LOCK in
+	  - gst_matroska_demux_push_codec_data_all()
+	  - gst_matroska_demux_query()
+	  Some parse element such as FLAC checks upstream seekability, and
+	  there is some use cases that matroska-demux is linked to a parse element
+	  (e.g.,FLAC format) without intermediate elements (e.g., queue).
+	  In this case, matroska-demux never returns from _push_codec_data_all()
+	  because the parser can return only after it receives the response to
+	  the upstream query, but that's not going to happen because it's
+	  deadlocked.
+	  Elements must not hold the object lock whilst pushing out events
+	  or data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766645
+
+2016-05-19 12:43:01 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/gstsouphttpclientsink.c:
+	  souphttpclientsink: Set sent_buffers and streamheader_buffers to NULL after freeing
+	  Otherwise we might use an already freed list later and crash or worse.
+
+2016-05-15 22:07:14 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxpartreader.c:
+	  splitmuxsrc: Connect to demux signals before activating
+	  Fix a race in splitmuxsrc by properly connecting to the
+	  demuxer signals we're interested in *before* setting it running.
+
+2016-05-14 23:39:22 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  splitmuxsink: Use GstBin async-handling instead of our own.
+	  Set the async-handling property on GstBin to let it manage
+	  async-handling instead of the local handling from the previous
+	  commit. Works because of #174a5e in core
+
+2016-05-14 18:32:52 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  splitmuxsink: Hide internal async state changes.
+	  When switching fragments, hide the async-start/async-done
+	  messages from the parent bin, as otherwise we sometimes (very rarely)
+	  hang in PAUSED instead of returning / continuing to PLAYING
+	  state.
+
+2016-05-13 21:20:28 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Remove stray carriage-return from debug
+
+2015-04-30 14:43:04 +0200  Jesper Larsen <knorr.jesper@gmail.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Do not write index and header if idx is NULL
+	  Fixes criticals with e.g.
+	  videotestsrc num-buffers=1 ! identity drop-probability=1.0 ! avimux ! fakesink
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748700
+
+2016-05-03 11:45:01 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix stall when receiving already lost packet
+	  When a packet arrives that has already been considered lost as part of a
+	  large gap the "lost timer" for this will be cancelled. If the remaining
+	  packets of this large gap never arrives, there will be missing entries
+	  in the queue and the loop function will keep waiting for these packets
+	  to arrive and never push another packet, effectively stalling the
+	  pipeline.
+	  The proposed fix conciders parts of a large gap definitely lost (since
+	  they are calculated from latency) and ignores the late arrivals.
+	  In practice the issue is rare since large gaps are scheduled immediately,
+	  and for the stall to happen the late arrival needs to be processed
+	  before this times out.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765933
+
+2016-05-11 09:28:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Don't notify about stats property changes while taking the session lock
+	  The signal handlers might want to actually get the value of the stats
+	  property, which would take the session lock again and deadlock.
+	  This was introduced by 2e960e70750a0cb7e1117d0c09d08597866a29ee.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-05 14:18:21 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Take session lock when creating stats
+	  The access to the session hash table must happen while the session lock is
+	  taken, otherwise another thread might modify the hash table while we're
+	  creating the stats.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-04 09:30:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdec.c:
+	* ext/dv/gstdvdemux.c:
+	  dv: Use correct pixel-aspect-ratio values
+	  The previous ones resulted in odd display aspect ratios and were different
+	  from the ones used by e.g. ffmpeg. The new ones now result in display aspect
+	  ratios of 4:3 and 16:9.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765946
+
+2016-05-03 21:17:01 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: update segment when new duration is found
+	  Otherwise the old segment will have a shorter stop time and would
+	  cause the stream to end too early.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765805
+
+2016-05-04 11:37:29 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: dismember activate_segment into 2 parts
+	  One that updates and push a new segment, the other will move the
+	  stream to the new segment starting position
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765805
+
+2016-05-04 11:15:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Fix deadlock case when source reaches EOS
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765072
+
+2016-04-11 10:54:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Always bind to ANY when address is a multicast address and not only on Windows
+	  For IPv6 addresses, binding to a multicast group does not work on Linux
+	  either. Always bind to ANY and then later join the multicast group.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764679
+
+2016-04-28 16:24:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmuxmap.c:
+	  qtmux: Allow MPEG-1 Layer 1 and 2 in addition to 3 in MP4
+	  Via the MPEG-4 Part 3 spec we can support the other layers too.
+	  Also correct the samples per frame calculation for MP3 if it's MPEG-2 or
+	  MPEG-2.5.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765725
+
+2016-04-29 15:04:11 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: Store the segment sequence number in the EOS events and SEGMENT_DONE events/message
+	  Also instead of storing it per stream, store it globally in the demuxer. It's
+	  the same for each stream anyway.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765806
+
+2016-04-27 20:46:34 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: Update caps for TCP whenever they change
+	  We only changed them for UDP so far, which caused the wrong seqnum-base and
+	  other information to be passed to rtpjitterbuffer/etc when seeking. This
+	  usually wasn't that much of a problem as the code there is robust enough, but
+	  every now and then it causes us to drop up to 32756 packets before we
+	  continue doing anything meaningful.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-04-27 20:33:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate
+	  Especially the caps on the pad might be out of date, and the new caps would be
+	  provided for the current pt via the request-pt-map signal.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-04-27 18:27:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Don't propagate spurious state change returns from internal elements further
+	  We handle them inside rtspsrc and override them in all other cases anyway, so
+	  do the same for "internal" state changes like PAUSED->PAUSED and
+	  PLAYING->PLAYING.
+	  This keeps unexpected NO_PREROLL to confuse state changes in GstBin.
+	  See also https://bugzilla.gnome.org/show_bug.cgi?id=760532
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-05-01 15:09:27 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/avi/gstavimux.c:
+	  avimux: set audio header rate according to calculated bps in stop_file
+	  ... now that set_fields is no longer called there by
+	  e538608b3f90539003de21c1db238f3c9b946e30
+
+2015-11-26 13:15:06 +0100  Dimitrios Katsaros <patcherwork@gmail.com>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Change warning handling to break infinite message loop
+	  v4l2src can cause an "infinite message loop" when a base control exposed as a
+	  property is not provided by the device. In these cases, if in the warning message
+	  handling for the bus, the GST_DEBUG_BIN_TO_DOT_FILE* category of functions are used,
+	  the src lookup causes a new warning to be posted on the bus, causing a loop.
+	  This patch changes the warning for these controls so they are not posted on the bus.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758703
+
+2016-04-25 15:03:14 +0200  Mats Lindestam <matslm@axis.com>
+
+	* gst/udp/gstmultiudpsink.c:
+	  multiudpsink: Allow setting "socket-v6" without setting "socket" too
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764897
+
+2016-04-27 13:53:00 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Actually store the largest audio chunk size for the VBR case of MP2/MP3
+	  3ea338ce271e1f6a96d2ed49d4472b091f6f8b7e changed avimux to do that, but it
+	  never actually kept track of the max audio chunk for MP3 and MP2. These are
+	  knowing the hdr.scale only after parsing the frames instead of at setcaps
+	  time.
+
+2016-04-27 14:09:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Don't override maximum audio chunk size with the scale again just before writing it
+	  set_fields() should only be called in the beginning, otherwise we will never
+	  remember the maximum audio chunk size and write a wrong block align... which
+	  then causes wrong timestamps and other problems.
+
+2016-04-22 15:02:16 +0100  Mario Sanchez Prada <mario@endlessm.com>
+
+	* ext/vpx/gstvpxenc.c:
+	  vpxenc: Properly handle frames with too low duration
+	  When a frame's duration is too low, calling gst_util_uint64_scale()
+	  to scale its value can result into it being truncated to zero, which
+	  will cause the vpx encoder to return an VPX_CODEC_INVALID_PARAM error
+	  when trying to encode.
+	  To prevent this from happening, we simply ignore the duration when
+	  encoding if it becomes zero after scaling, logging a warning message.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765391
+
+2016-04-22 15:48:08 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: fix description of linear interlacing method
+
+2016-04-21 14:08:19 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/flv/gstflvmux.c:
+	  flv: Handle the case where we do not get any CollectData in handle_buffer
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765320
+
+2016-02-09 17:17:09 +0000  Alex Ashley <bugzilla@ashley-family.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: support seeking of CENC encrypted streams
+	  When playing a stream that has been protected by DASH CENC, playback
+	  will fail if a seek is performed. Qtdemux produces the error "stream
+	  is protected using cenc, but no cenc protection system information
+	  has been found" and playback stops.
+	  The problem is that gst_qtdemux_reset() gets called as part of the
+	  FLUSH during a seek. This function frees the protection_system_ids
+	  array. When gst_qtdemux_configure_protected_caps() is called after the
+	  seek has completed, the protection_system_ids array is empty and
+	  qtdemux is unable to create the correct output caps for the protected
+	  stream.
+	  This commit changes it to only free the protection_system_ids on
+	  hard resets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761787
+
+2016-04-11 22:41:20 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Do not use unreliable framerate
+	  timescale/1 is unreliable value for framerate. Due to downstream
+	  element usually use framerate generated by qtdemux, let it be omitted
+	  until the framerate can be reliably calculated.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
+
+2016-04-21 12:53:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  Revert "qtdemux: expose streams with first moof for fragmented format"
+	  This reverts commit d8bb6687ea251570c331038279a43d448167d6ad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
+
+=== release 1.8.1 ===
+
+2016-04-20 18:16:25 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/inspect/plugin-1394.xml:
+	* docs/plugins/inspect/plugin-aasink.xml:
+	* docs/plugins/inspect/plugin-alaw.xml:
+	* docs/plugins/inspect/plugin-alpha.xml:
+	* docs/plugins/inspect/plugin-alphacolor.xml:
+	* docs/plugins/inspect/plugin-apetag.xml:
+	* docs/plugins/inspect/plugin-audiofx.xml:
+	* docs/plugins/inspect/plugin-audioparsers.xml:
+	* docs/plugins/inspect/plugin-auparse.xml:
+	* docs/plugins/inspect/plugin-autodetect.xml:
+	* docs/plugins/inspect/plugin-avi.xml:
+	* docs/plugins/inspect/plugin-cacasink.xml:
+	* docs/plugins/inspect/plugin-cairo.xml:
+	* docs/plugins/inspect/plugin-cutter.xml:
+	* docs/plugins/inspect/plugin-debug.xml:
+	* docs/plugins/inspect/plugin-deinterlace.xml:
+	* docs/plugins/inspect/plugin-dtmf.xml:
+	* docs/plugins/inspect/plugin-dv.xml:
+	* docs/plugins/inspect/plugin-effectv.xml:
+	* docs/plugins/inspect/plugin-equalizer.xml:
+	* docs/plugins/inspect/plugin-flac.xml:
+	* docs/plugins/inspect/plugin-flv.xml:
+	* docs/plugins/inspect/plugin-flxdec.xml:
+	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
+	* docs/plugins/inspect/plugin-goom.xml:
+	* docs/plugins/inspect/plugin-goom2k1.xml:
+	* docs/plugins/inspect/plugin-icydemux.xml:
+	* docs/plugins/inspect/plugin-id3demux.xml:
+	* docs/plugins/inspect/plugin-imagefreeze.xml:
+	* docs/plugins/inspect/plugin-interleave.xml:
+	* docs/plugins/inspect/plugin-isomp4.xml:
+	* docs/plugins/inspect/plugin-jack.xml:
+	* docs/plugins/inspect/plugin-jpeg.xml:
+	* docs/plugins/inspect/plugin-level.xml:
+	* docs/plugins/inspect/plugin-matroska.xml:
+	* docs/plugins/inspect/plugin-mulaw.xml:
+	* docs/plugins/inspect/plugin-multifile.xml:
+	* docs/plugins/inspect/plugin-multipart.xml:
+	* docs/plugins/inspect/plugin-navigationtest.xml:
+	* docs/plugins/inspect/plugin-oss4.xml:
+	* docs/plugins/inspect/plugin-ossaudio.xml:
+	* docs/plugins/inspect/plugin-png.xml:
+	* docs/plugins/inspect/plugin-pulseaudio.xml:
+	* docs/plugins/inspect/plugin-replaygain.xml:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	* docs/plugins/inspect/plugin-rtpmanager.xml:
+	* docs/plugins/inspect/plugin-rtsp.xml:
+	* docs/plugins/inspect/plugin-shapewipe.xml:
+	* docs/plugins/inspect/plugin-shout2send.xml:
+	* docs/plugins/inspect/plugin-smpte.xml:
+	* docs/plugins/inspect/plugin-soup.xml:
+	* docs/plugins/inspect/plugin-spectrum.xml:
+	* docs/plugins/inspect/plugin-speex.xml:
+	* docs/plugins/inspect/plugin-taglib.xml:
+	* docs/plugins/inspect/plugin-udp.xml:
+	* docs/plugins/inspect/plugin-video4linux2.xml:
+	* docs/plugins/inspect/plugin-videobox.xml:
+	* docs/plugins/inspect/plugin-videocrop.xml:
+	* docs/plugins/inspect/plugin-videofilter.xml:
+	* docs/plugins/inspect/plugin-videomixer.xml:
+	* docs/plugins/inspect/plugin-vpx.xml:
+	* docs/plugins/inspect/plugin-wavenc.xml:
+	* docs/plugins/inspect/plugin-wavpack.xml:
+	* docs/plugins/inspect/plugin-wavparse.xml:
+	* docs/plugins/inspect/plugin-ximagesrc.xml:
+	* docs/plugins/inspect/plugin-y4menc.xml:
+	* gst-plugins-good.doap:
+	* win32/common/config.h:
+	  Release 1.8.1
+
+2016-04-20 18:07:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.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/mt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_HK.po:
+	* po/zh_TW.po:
+	  Update .po files
 
 2016-04-20 15:31:19 +0300  Sebastian Dröge <sebastian@centricular.com>
 
diff --git a/NEWS b/NEWS
index bdac78a..953c54f 100644
--- a/NEWS
+++ b/NEWS
@@ -1,24 +1,25 @@
-### 1.8.1
+### 1.8.2
 
-The first 1.8 bug-fix release (1.8.1) was released on 20 April 2016.
+The first 1.8 bug-fix release (1.8.2) was released on 9 June 2016.
 This release only contains bugfixes and it should be safe to update from 1.8.0.
 
-#### Major bugfixes in 1.8.1
+#### Major bugfixes in 1.8.2
 
- - Fix app compilation with Android NDK r11 and newer
- - Fix compilation of nvenc plugin against latest NVIDIA SDK 6.0
- - Fix regression in avdeinterlace
- - Fix memory corruption in scaletempo element with S16 input
- - Fix regression in qtdemux with MSE streams
- - Fix glitches at the start with all audio sinks except for pulsesink
- - Fix regression with encrypted HLS streams
- - Fix automatic multithreaded decoding of VP8/9 video
- - Fix deadlock in HTTP adaptive streams when scrub-seeking
- - Fix regression in RTSP source with SRTP
- - Add support for SRTP rollover counters in the RTSP source
- - Add support for HiDPI ("Retina") screens in caopengllayersink
- - ... and many more!
+ - Fix vp8enc and flacenc segmentation faults on Windows
+ - Fix Android build failure due to BSD sed on OS X
+ - Fix Android build failure with applications targetting API > 20
+ - Fix playback of live MS SmoothStreaming streams
+ - Fix various issues with vtdec and caopengllayersink on OS X
+ - Fix severe performance degradation in various image decoders
+ - Fix sample rate negotiation in opusdec
+ - Fix regression in typefind, causing deadlocks in some situations
+ - Fix mpegtsmux to set PTS on all output buffers again
+ - Fix extraction of frame dimensions from SDP in RTP JPEG depayloader
+ - Fix failure in v4l2videodec when setting of format fails after starting
+ - ... and many, many more!
 
-For a full list of bugfixes see [Bugzilla][buglist-1.8.1].
+For a full list of bugfixes see [Bugzilla][buglist-1.8.2]. 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.8.1]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=117422&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.1
+[buglist-1.8.2]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=130196&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.2
diff --git a/RELEASE b/RELEASE
index 99617cf..19882e1 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,11 +1,11 @@
 
-Release notes for GStreamer Good Plugins 1.8.1
+Release notes for GStreamer Good Plugins 1.8.2
 
-The GStreamer team is proud to announce the first bugfix release in the stable
+The GStreamer team is proud to announce the second bugfix release in the stable
 1.8 release series of your favourite cross-platform multimedia framework!
 
 
-This release only contains bugfixes and it is safe to update from 1.8.0. For a
+This release only contains bugfixes and it is safe to update from 1.8.1. For a
 full list of bugfixes see Bugzilla.
 
 
@@ -55,21 +55,42 @@
 
 Bugs fixed in this release
      
+      * 766025 : rtpsession: race condition accessing ssrcs hash table
+      * 733864 : v4l2videodec: Implement EOS handling through V4L2_DEC_CMD_STOP
+      * 736252 : gdkpixbufdec: packetized mode logic
+      * 748700 : avimux: stopping file without index fails
+      * 754042 : v4l2src: Asserts on renegotiation with USERPTR
+      * 758424 : v4l2videodec: Keep the input buffers, they are needed to copy metadata
+      * 758703 : v4l2src: gst_v4l2_set_attribute warning messages cause infinite loop with .dot dump
+      * 761165 : Setting overlay parameters on v4l2sink fails
+      * 761787 : qtdemux: seek fails with CENC encrypted streams
+      * 762219 : rtpsession: don't act on suspicious BYE RTCP
+      * 764679 : IPv6 UDP stream to site-local multicast address
       * 764733 : qtdemux: Regression in YouTube TV tests in WebKit MSE after fix for #760779
-      * 763711 : splitmuxsink: deadlock when one streams doesn't have regular buffers
-      * 730540 : rtspsrc: parse crypto sessions to support rollover counters
-      * 744612 : splitmuxsink: add property for specifing maximum number of files to store
-      * 757569 : rtspsrc: avoid potentially overflowing expression
-      * 761345 : rtpjpegpay: Allow different quantization tables for components 2 and 3
-      * 762893 : splitmuxsink critical assertion when changing  from null to ready
-      * 763780 : flvdemux: don't emit pad-added until caps are ready
-      * 763973 : qtdemux: Fix qtdemux memory leak
-      * 764169 : vp9dec: Dogslow VP9 4k playback with libvpx, works fine with avdec_vp9
-      * 764798 : rtspsrc Critical errors when connecting with TLS / rtsps
-      * 764870 : qtdemux: Fix parsing segment duration of empty edit list box
-      * 764889 : rtpjitterbuffer: Drops wrong number of packets with drop-on-latency=true
+      * 764897 : Using non IPv6-socket in IPv6 scope
       * 765072 : splitmuxsink: Sometimes creates a small one-frame file after EOS
-      * 765116 : scaletempo: memory corruption
+      * 765320 : flvmux: segfault when no buffers have arrived before EOS
+      * 765391 : vpxenc: Handle frames with too low duration correctly
+      * 765689 : rtspsrc: Various problems related to seeking causing scrub seeking to fail
+      * 765725 : qtmux: Allow MPEG-1 Layer 1 and 2 in addition to 3 in MP4
+      * 765805 : qtdemux: Only first fragment played for fragmented mp4 files recorded with non-seekable sink
+      * 765806 : qtdemux: Store the segment sequence number in the EOS events and STREAM_DONE events/message
+      * 765933 : rtpjitterbuffer: Fix stall when receiving already lost packet
+      * 765946 : dv: Uses different pixel-aspect-ratio than gst-libav
+      * 766172 : v4l2videodec: [Regressions] Should not fail if S_FMT(CAPTURE) fail after STREAMON(CAPTURE)
+      * 766359 : auparse: sticky event misordering, got 'segment' before 'caps'
+      * 766382 : v4l2videodec: use visible size, not coded size, for downstream negotiation filter
+      * 766558 : deinterlace: fix caps leak
+      * 766610 : v4l2object: fix caps leak
+      * 766645 : matroskademux: don't hold object lock whilst pushing out headers, might lead to query deadlock
+      * 766711 : v4l2transform: scaling is broken in case of fixed pixel aspect  ratio
+      * 766712 : v4l2transform should allow to change pixel aspect ratio
+      * 766719 : v4l2transform: Does not fully fixate the caps
+      * 766868 : qtdemux: Segments start at 0 on live MSS time-based streams, ignoring the start time configured upstream
+      * 766870 : rtpj2kpay: leaks input buffer
+      * 767300 : v4l2object uses deprecated RGB15 V4L2 format code
+      * 767424 : flvdemux: Fix unref assertion failure
+      * 767086 : v4l2src: pushes incomplete raw video buffers
 
 ==== Download ====
 
@@ -106,16 +127,31 @@
         
 Contributors to this release
     
-      * Aleix Conchillo Flaqué
-      * Damian Ziobro
+      * Alex Ashley
+      * Andreas Naumann
+      * Dimitrios Katsaros
+      * Enrico Jorns
+      * Guillaume Desmottes
       * Havard Graff
       * Jan Schmidt
-      * Jihae Yi
-      * Jimmy Ohn
+      * Jesper Larsen
+      * Josep Torra
+      * Kieran Bingham
+      * Mario Sanchez Prada
+      * Mark Nauwelaerts
+      * Mats Lindestam
+      * Miguel París Díaz
+      * Mikhail Fludkov
       * Nicolas Dufresne
-      * Paolo Pettinato
+      * Nirbheek Chauhan
+      * Patricia Muscalu
+      * Peter Seiderer
+      * Philipp Zabel
+      * Pierre Lamot
       * Sebastian Dröge
       * Seungha Yang
       * Thiago Santos
+      * Thibault Saunier
+      * Tim-Philipp Müller
       * Xavier Claessens
  
\ No newline at end of file
diff --git a/config.guess b/config.guess
index 1659250..0967f2a 100755
--- a/config.guess
+++ b/config.guess
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2015-08-20'
+timestamp='2016-04-02'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -237,6 +237,10 @@
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
 	exit ;;
+    *:LibertyBSD:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+	exit ;;
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
 	exit ;;
@@ -268,42 +272,42 @@
 	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
 	case "$ALPHA_CPU_TYPE" in
 	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
+		UNAME_MACHINE=alpha ;;
 	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
+		UNAME_MACHINE=alphaev5 ;;
 	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
+		UNAME_MACHINE=alphaev56 ;;
 	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
+		UNAME_MACHINE=alphapca56 ;;
 	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
+		UNAME_MACHINE=alphapca57 ;;
 	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
+		UNAME_MACHINE=alphaev6 ;;
 	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
+		UNAME_MACHINE=alphaev67 ;;
 	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
+		UNAME_MACHINE=alphaev68 ;;
 	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
+		UNAME_MACHINE=alphaev69 ;;
 	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
+		UNAME_MACHINE=alphaev7 ;;
 	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
+		UNAME_MACHINE=alphaev79 ;;
 	esac
 	# A Pn.n version is a patched version.
 	# A Vn.n version is a released version.
 	# A Tn.n version is a released field test version.
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
 	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
 	exitcode=$?
 	trap '' 0
@@ -376,16 +380,16 @@
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	eval $set_cc_for_build
-	SUN_ARCH="i386"
+	SUN_ARCH=i386
 	# If there is a compiler, see if it is configured for 64-bit objects.
 	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
 	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		grep IS_64BIT_ARCH >/dev/null
 	    then
-		SUN_ARCH="x86_64"
+		SUN_ARCH=x86_64
 	    fi
 	fi
 	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -410,7 +414,7 @@
 	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+	test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
 	case "`/bin/arch`" in
 	    sun3)
 		echo m68k-sun-sunos${UNAME_RELEASE}
@@ -635,13 +639,13 @@
 		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
 		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
 		    case "${sc_cpu_version}" in
-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+		      523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+		      528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
 		      532)                      # CPU_PA_RISC2_0
 			case "${sc_kernel_bits}" in
-			  32) HP_ARCH="hppa2.0n" ;;
-			  64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+			  32) HP_ARCH=hppa2.0n ;;
+			  64) HP_ARCH=hppa2.0w ;;
+			  '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
 			esac ;;
 		    esac
 		fi
@@ -680,11 +684,11 @@
 		    exit (0);
 		}
 EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+		    (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
 		    test -z "$HP_ARCH" && HP_ARCH=hppa
 		fi ;;
 	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
+	if [ ${HP_ARCH} = hppa2.0w ]
 	then
 	    eval $set_cc_for_build
 
@@ -697,12 +701,12 @@
 	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
 	    # => hppa64-hp-hpux11.23
 
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+	    if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
 		grep -q __LP64__
 	    then
-		HP_ARCH="hppa2.0w"
+		HP_ARCH=hppa2.0w
 	    else
-		HP_ARCH="hppa64"
+		HP_ARCH=hppa64
 	    fi
 	fi
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -807,14 +811,14 @@
 	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
 	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+	FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
 	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
 	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+	FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
 	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
 	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
@@ -896,7 +900,7 @@
 	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
@@ -919,7 +923,7 @@
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
@@ -965,6 +969,9 @@
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
+    k1om:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     m32r*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
@@ -1120,7 +1127,7 @@
 	# uname -m prints for DJGPP always 'pc', but it prints nothing about
 	# the processor, so we play safe by assuming i586.
 	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
+	# prints for the "djgpp" host, or else GDB configure will decide that
 	# this is a cross-build.
 	echo i586-pc-msdosdjgpp
 	exit ;;
@@ -1269,6 +1276,9 @@
     SX-8R:SUPER-UX:*:*)
 	echo sx8r-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-ACE:SUPER-UX:*:*)
+	echo sxace-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1282,9 +1292,9 @@
 	    UNAME_PROCESSOR=powerpc
 	fi
 	if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-	    if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
 		if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		    (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		    (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
 		    grep IS_64BIT_ARCH >/dev/null
 		then
 		    case $UNAME_PROCESSOR in
@@ -1306,7 +1316,7 @@
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
+	if test "$UNAME_PROCESSOR" = x86; then
 		UNAME_PROCESSOR=i386
 		UNAME_MACHINE=pc
 	fi
@@ -1337,7 +1347,7 @@
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
 	# operating systems.
-	if test "$cputype" = "386"; then
+	if test "$cputype" = 386; then
 	    UNAME_MACHINE=i386
 	else
 	    UNAME_MACHINE="$cputype"
@@ -1379,7 +1389,7 @@
 	echo i386-pc-xenix
 	exit ;;
     i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'`
 	exit ;;
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
@@ -1390,6 +1400,9 @@
     x86_64:VMkernel:*:*)
 	echo ${UNAME_MACHINE}-unknown-esx
 	exit ;;
+    amd64:Isilon\ OneFS:*:*)
+	echo x86_64-unknown-onefs
+	exit ;;
 esac
 
 cat >&2 <<EOF
@@ -1399,9 +1412,9 @@
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/config.sub b/config.sub
index 1acc966..8d39c4b 100755
--- a/config.sub
+++ b/config.sub
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2015-08-20'
+timestamp='2016-03-30'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -53,8 +53,7 @@
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
@@ -68,7 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -521,7 +520,7 @@
 		basic_machine=i386-pc
 		os=-aros
 		;;
-        asmjs)
+	asmjs)
 		basic_machine=asmjs-unknown
 		;;
 	aux)
@@ -1383,7 +1382,7 @@
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -bitrig* | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
@@ -1399,7 +1398,8 @@
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1531,6 +1531,8 @@
 		;;
 	-nacl*)
 		;;
+	-ios)
+		;;
 	-none)
 		;;
 	*)
diff --git a/configure b/configure
index 1aeef2c..8a9dcab 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 Good Plug-ins 1.8.1.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.8.2.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Good Plug-ins'
 PACKAGE_TARNAME='gst-plugins-good'
-PACKAGE_VERSION='1.8.1'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.8.1'
+PACKAGE_VERSION='1.8.2'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.8.2'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1964,7 +1964,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 Good Plug-ins 1.8.1 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.8.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2037,7 +2037,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.8.1:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.8.2:";;
    esac
   cat <<\_ACEOF
 
@@ -2413,7 +2413,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.8.1
+GStreamer Good Plug-ins configure 1.8.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3224,7 +3224,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 Good Plug-ins $as_me 1.8.1, which was
+It was created by GStreamer Good Plug-ins $as_me 1.8.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4206,7 +4206,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.8.1'
+ VERSION='1.8.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4417,9 +4417,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.8.1 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.8.1 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.8.1 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.8.2 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.8.2 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.8.2 | cut -d'.' -f3)
 
 
 
@@ -4430,7 +4430,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.8.1 | cut -d'.' -f4)
+  NANO=$(echo 1.8.2 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -9271,10 +9271,10 @@
 done
 
 
-  GST_CURRENT=801
+  GST_CURRENT=802
   GST_REVISION=0
-  GST_AGE=801
-  GST_LIBVERSION=801:0:801
+  GST_AGE=802
+  GST_LIBVERSION=802:0:802
 
 
 
@@ -36873,7 +36873,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Good Plug-ins $as_me 1.8.1, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.8.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -36939,7 +36939,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 Good Plug-ins config.status 1.8.1
+GStreamer Good Plug-ins config.status 1.8.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 49d8400..6650bf1 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/pre
-AC_INIT([GStreamer Good Plug-ins],[1.8.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.8.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
 
 AG_GST_INIT
 
@@ -43,7 +43,7 @@
   [GStreamer API Version])
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 801, 0, 801)
+AS_LIBTOOL(GST, 802, 0, 802)
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=1.8.0
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index cea99c9..ef4dd9b 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -1005,7 +1005,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>User Agent</NICK>
 <BLURB>The User-Agent string to send to the server.</BLURB>
-<DEFAULT>"GStreamer/1.8.1"</DEFAULT>
+<DEFAULT>"GStreamer/1.8.2"</DEFAULT>
 </ARG>
 
 <ARG>
@@ -20135,7 +20135,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>Method</NICK>
 <BLURB>Deinterlace Method.</BLURB>
-<DEFAULT>Television: Full resolution</DEFAULT>
+<DEFAULT>Linear</DEFAULT>
 </ARG>
 
 <ARG>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index 6474f9c..b32fa0c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -290,7 +290,7 @@
 </p></li>
 </ul></div>
 <p>Flags: Read / Write</p>
-<p>Default value: Television: Full resolution</p>
+<p>Default value: Linear</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index cd90ab5..62cfe66 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -236,7 +236,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
+<td>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
index 9761c3b..146c911 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
index 7c7f3da..f22bde7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
index d084505..f9d6fa8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
index 6a4aee4..8b7ea9f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
index c6f95a4..c85a0dd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
index 874aeb6..972d1fe 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
index 3c12527..f239402 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
index 55e1014..1652b57 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
index e76ee66..5c30127 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
index b6409c6..439fafb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
index 0042770..099d605 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
index d18c511..8a10e2b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
index cfa7dd3..13bd4ad 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
index 3c29f01..2c172f4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
index c471a5c..19ce6b5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
index 926bab3..36ef007 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
index f6cd330..71f419a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
index 89d2523..ff2199b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
index bb24376..c730a4c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
index 6716aca..bb5aec5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
index 65f39b3..9f29f98 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
index 555ee61..3d41d7c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
index bca685b..8b1585d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
index cef1fd2..184fe0e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
index c179239..652fd61 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
index e3728d4..c447635 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
index 5ad59e6..0c75332 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
index 7ec489b..a84b5b8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
index 8d3e520..cbf895b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
index 7d6c8d8..cfabcd1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
index 4886e4f..54dfbb3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
index aaa3fdf..0a09fe9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
index fed911c..c1f9125 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
index 06be337..2a5778f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
index 3107176..b11f5b0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
index 5dd0d3e..2039788 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
index d983d48..27ae862 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
index 70880f6..7948a57 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
index e4f0542..ef1ad3d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
index af4e9b1..f17b51b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
index b1ea2a6..8a08e90 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
index 8582a74..7ffdbbb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
index 1de97d5..d274ecc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
index 3cc2b58..3bbde94 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
index 1e406a3..43d385b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
index c00219f..65c2a02 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
index ad1f705..ab5a60a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
index 1878db0..90d368d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
index 82bd0d4..11c27f4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
index ebd505b..8600c1c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
index 4d74e1d..7113a57 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
index 9a57ba4..19fd4aa 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
index 21a64f5..d7598d2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
index 5bc9e81..160efd2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
index 8747440..6ca782c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
index 1e4ded7..d80c028 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
index 0ad09fd..ff5fc04 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
index 168e38a..8d629b3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
index 751f28c..1149414 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
index ea7ee30..7e9bd1d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
index bf5dddb..703cd98 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
index 32e8d46..8f6205a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
index ed7fc9a..83b3d5b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
index 6819635..e80a4ec 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
index f049df2..07a69a1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
index 25089b9..5ec4f4d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.1</td>
+<td>1.8.2</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 260d56a..b7c69f6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -688,7 +688,7 @@
 <pre class="programlisting">  “user-agent”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The User-Agent string to send to the server.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: "GStreamer/1.8.1"</p>
+<p>Default value: "GStreamer/1.8.2"</p>
 </div>
 <hr>
 <div class="refsect2">
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 95d9334..89034a3 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 Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Good Plugins 1.0 (1.8.1)
+      for GStreamer Good Plugins 1.0 (1.8.2)
       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-good/html/" target="_top">http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-good/html/</a>.
     </p></div>
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index 7455b7f..22fe11c 100644
--- a/docs/plugins/inspect/plugin-1394.xml
+++ b/docs/plugins/inspect/plugin-1394.xml
@@ -3,7 +3,7 @@
   <description>Source for video data via IEEE1394 interface</description>
   <filename>../../ext/raw1394/.libs/libgst1394.so</filename>
   <basename>libgst1394.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-aasink.xml b/docs/plugins/inspect/plugin-aasink.xml
index e1c1a2f..3a6c461 100644
--- a/docs/plugins/inspect/plugin-aasink.xml
+++ b/docs/plugins/inspect/plugin-aasink.xml
@@ -3,7 +3,7 @@
   <description>ASCII Art video sink</description>
   <filename>../../ext/aalib/.libs/libgstaasink.so</filename>
   <basename>libgstaasink.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alaw.xml b/docs/plugins/inspect/plugin-alaw.xml
index afa32a3..7ee670c 100644
--- a/docs/plugins/inspect/plugin-alaw.xml
+++ b/docs/plugins/inspect/plugin-alaw.xml
@@ -3,7 +3,7 @@
   <description>ALaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstalaw.so</filename>
   <basename>libgstalaw.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alpha.xml b/docs/plugins/inspect/plugin-alpha.xml
index 3baeb30..77bffef 100644
--- a/docs/plugins/inspect/plugin-alpha.xml
+++ b/docs/plugins/inspect/plugin-alpha.xml
@@ -3,7 +3,7 @@
   <description>adds an alpha channel to video - constant or via chroma-keying</description>
   <filename>../../gst/alpha/.libs/libgstalpha.so</filename>
   <basename>libgstalpha.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-alphacolor.xml b/docs/plugins/inspect/plugin-alphacolor.xml
index 5fba0df..920c157 100644
--- a/docs/plugins/inspect/plugin-alphacolor.xml
+++ b/docs/plugins/inspect/plugin-alphacolor.xml
@@ -3,7 +3,7 @@
   <description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description>
   <filename>../../gst/alpha/.libs/libgstalphacolor.so</filename>
   <basename>libgstalphacolor.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-apetag.xml b/docs/plugins/inspect/plugin-apetag.xml
index 31cb466..fa5c60a 100644
--- a/docs/plugins/inspect/plugin-apetag.xml
+++ b/docs/plugins/inspect/plugin-apetag.xml
@@ -3,7 +3,7 @@
   <description>APEv1/2 tag reader</description>
   <filename>../../gst/apetag/.libs/libgstapetag.so</filename>
   <basename>libgstapetag.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audiofx.xml b/docs/plugins/inspect/plugin-audiofx.xml
index 4786033..655f527 100644
--- a/docs/plugins/inspect/plugin-audiofx.xml
+++ b/docs/plugins/inspect/plugin-audiofx.xml
@@ -3,7 +3,7 @@
   <description>Audio effects plugin</description>
   <filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename>
   <basename>libgstaudiofx.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-audioparsers.xml b/docs/plugins/inspect/plugin-audioparsers.xml
index b9c5e0d..4d0599d 100644
--- a/docs/plugins/inspect/plugin-audioparsers.xml
+++ b/docs/plugins/inspect/plugin-audioparsers.xml
@@ -3,7 +3,7 @@
   <description>Parsers for various audio formats</description>
   <filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename>
   <basename>libgstaudioparsers.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-auparse.xml b/docs/plugins/inspect/plugin-auparse.xml
index 42b5111..1627164 100644
--- a/docs/plugins/inspect/plugin-auparse.xml
+++ b/docs/plugins/inspect/plugin-auparse.xml
@@ -3,7 +3,7 @@
   <description>parses au streams</description>
   <filename>../../gst/auparse/.libs/libgstauparse.so</filename>
   <basename>libgstauparse.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-autodetect.xml b/docs/plugins/inspect/plugin-autodetect.xml
index b7bd994..142669d 100644
--- a/docs/plugins/inspect/plugin-autodetect.xml
+++ b/docs/plugins/inspect/plugin-autodetect.xml
@@ -3,7 +3,7 @@
   <description>Plugin contains auto-detection plugins for video/audio in- and outputs</description>
   <filename>../../gst/autodetect/.libs/libgstautodetect.so</filename>
   <basename>libgstautodetect.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-avi.xml b/docs/plugins/inspect/plugin-avi.xml
index e2c02de..8943969 100644
--- a/docs/plugins/inspect/plugin-avi.xml
+++ b/docs/plugins/inspect/plugin-avi.xml
@@ -3,7 +3,7 @@
   <description>AVI stream handling</description>
   <filename>../../gst/avi/.libs/libgstavi.so</filename>
   <basename>libgstavi.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index 3e4800b..c0c9a8f 100644
--- a/docs/plugins/inspect/plugin-cacasink.xml
+++ b/docs/plugins/inspect/plugin-cacasink.xml
@@ -3,7 +3,7 @@
   <description>Colored ASCII Art video sink</description>
   <filename>../../ext/libcaca/.libs/libgstcacasink.so</filename>
   <basename>libgstcacasink.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cairo.xml b/docs/plugins/inspect/plugin-cairo.xml
index f1b7bf4..10b8015 100644
--- a/docs/plugins/inspect/plugin-cairo.xml
+++ b/docs/plugins/inspect/plugin-cairo.xml
@@ -3,7 +3,7 @@
   <description>Cairo-based elements</description>
   <filename>../../ext/cairo/.libs/libgstcairo.so</filename>
   <basename>libgstcairo.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-cutter.xml b/docs/plugins/inspect/plugin-cutter.xml
index 51e593c..eb80427 100644
--- a/docs/plugins/inspect/plugin-cutter.xml
+++ b/docs/plugins/inspect/plugin-cutter.xml
@@ -3,7 +3,7 @@
   <description>Audio Cutter to split audio into non-silent bits</description>
   <filename>../../gst/cutter/.libs/libgstcutter.so</filename>
   <basename>libgstcutter.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-debug.xml b/docs/plugins/inspect/plugin-debug.xml
index adf19f0..5b3efd3 100644
--- a/docs/plugins/inspect/plugin-debug.xml
+++ b/docs/plugins/inspect/plugin-debug.xml
@@ -3,7 +3,7 @@
   <description>elements for testing and debugging</description>
   <filename>../../gst/debugutils/.libs/libgstdebug.so</filename>
   <basename>libgstdebug.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-deinterlace.xml b/docs/plugins/inspect/plugin-deinterlace.xml
index 29e5f6a..7379736 100644
--- a/docs/plugins/inspect/plugin-deinterlace.xml
+++ b/docs/plugins/inspect/plugin-deinterlace.xml
@@ -3,7 +3,7 @@
   <description>Deinterlacer</description>
   <filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename>
   <basename>libgstdeinterlace.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml
index b0e5efc..d7739d8 100644
--- a/docs/plugins/inspect/plugin-dtmf.xml
+++ b/docs/plugins/inspect/plugin-dtmf.xml
@@ -3,7 +3,7 @@
   <description>DTMF plugins</description>
   <filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
   <basename>libgstdtmf.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-dv.xml b/docs/plugins/inspect/plugin-dv.xml
index ab12e37..34d5422 100644
--- a/docs/plugins/inspect/plugin-dv.xml
+++ b/docs/plugins/inspect/plugin-dv.xml
@@ -3,7 +3,7 @@
   <description>DV demuxer and decoder based on libdv (libdv.sf.net)</description>
   <filename>../../ext/dv/.libs/libgstdv.so</filename>
   <basename>libgstdv.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-effectv.xml b/docs/plugins/inspect/plugin-effectv.xml
index c8ec594..2874220 100644
--- a/docs/plugins/inspect/plugin-effectv.xml
+++ b/docs/plugins/inspect/plugin-effectv.xml
@@ -3,7 +3,7 @@
   <description>effect plugins from the effectv project</description>
   <filename>../../gst/effectv/.libs/libgsteffectv.so</filename>
   <basename>libgsteffectv.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-equalizer.xml b/docs/plugins/inspect/plugin-equalizer.xml
index 54dee88..c092eed 100644
--- a/docs/plugins/inspect/plugin-equalizer.xml
+++ b/docs/plugins/inspect/plugin-equalizer.xml
@@ -3,7 +3,7 @@
   <description>GStreamer audio equalizers</description>
   <filename>../../gst/equalizer/.libs/libgstequalizer.so</filename>
   <basename>libgstequalizer.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flac.xml b/docs/plugins/inspect/plugin-flac.xml
index 714a5bb..38903eb 100644
--- a/docs/plugins/inspect/plugin-flac.xml
+++ b/docs/plugins/inspect/plugin-flac.xml
@@ -3,7 +3,7 @@
   <description>The FLAC Lossless compressor Codec</description>
   <filename>../../ext/flac/.libs/libgstflac.so</filename>
   <basename>libgstflac.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml
index bf38929..3bd64ee 100644
--- a/docs/plugins/inspect/plugin-flv.xml
+++ b/docs/plugins/inspect/plugin-flv.xml
@@ -3,7 +3,7 @@
   <description>FLV muxing and demuxing plugin</description>
   <filename>../../gst/flv/.libs/libgstflv.so</filename>
   <basename>libgstflv.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml
index a16a5a0..bcb582a 100644
--- a/docs/plugins/inspect/plugin-flxdec.xml
+++ b/docs/plugins/inspect/plugin-flxdec.xml
@@ -3,7 +3,7 @@
   <description>FLC/FLI/FLX video decoder</description>
   <filename>../../gst/flx/.libs/libgstflxdec.so</filename>
   <basename>libgstflxdec.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-gdkpixbuf.xml b/docs/plugins/inspect/plugin-gdkpixbuf.xml
index 57d3496..24679da 100644
--- a/docs/plugins/inspect/plugin-gdkpixbuf.xml
+++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml
@@ -3,7 +3,7 @@
   <description>GdkPixbuf-based image decoder, overlay and sink</description>
   <filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename>
   <basename>libgstgdkpixbuf.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom.xml b/docs/plugins/inspect/plugin-goom.xml
index debee17..e657f27 100644
--- a/docs/plugins/inspect/plugin-goom.xml
+++ b/docs/plugins/inspect/plugin-goom.xml
@@ -3,7 +3,7 @@
   <description>GOOM visualization filter</description>
   <filename>../../gst/goom/.libs/libgstgoom.so</filename>
   <basename>libgstgoom.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-goom2k1.xml b/docs/plugins/inspect/plugin-goom2k1.xml
index f8d645f..c854ddf 100644
--- a/docs/plugins/inspect/plugin-goom2k1.xml
+++ b/docs/plugins/inspect/plugin-goom2k1.xml
@@ -3,7 +3,7 @@
   <description>GOOM 2k1 visualization filter</description>
   <filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename>
   <basename>libgstgoom2k1.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-icydemux.xml b/docs/plugins/inspect/plugin-icydemux.xml
index 56bd458..a20ffc2 100644
--- a/docs/plugins/inspect/plugin-icydemux.xml
+++ b/docs/plugins/inspect/plugin-icydemux.xml
@@ -3,7 +3,7 @@
   <description>Demux ICY tags from a stream</description>
   <filename>../../gst/icydemux/.libs/libgsticydemux.so</filename>
   <basename>libgsticydemux.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-id3demux.xml b/docs/plugins/inspect/plugin-id3demux.xml
index ef3627a..61ef2c6 100644
--- a/docs/plugins/inspect/plugin-id3demux.xml
+++ b/docs/plugins/inspect/plugin-id3demux.xml
@@ -3,7 +3,7 @@
   <description>Demux ID3v1 and ID3v2 tags from a file</description>
   <filename>../../gst/id3demux/.libs/libgstid3demux.so</filename>
   <basename>libgstid3demux.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-imagefreeze.xml b/docs/plugins/inspect/plugin-imagefreeze.xml
index dc2d9f0..7cc0db4 100644
--- a/docs/plugins/inspect/plugin-imagefreeze.xml
+++ b/docs/plugins/inspect/plugin-imagefreeze.xml
@@ -3,7 +3,7 @@
   <description>Still frame stream generator</description>
   <filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename>
   <basename>libgstimagefreeze.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-interleave.xml b/docs/plugins/inspect/plugin-interleave.xml
index 6a511b4..3af5054 100644
--- a/docs/plugins/inspect/plugin-interleave.xml
+++ b/docs/plugins/inspect/plugin-interleave.xml
@@ -3,7 +3,7 @@
   <description>Audio interleaver/deinterleaver</description>
   <filename>../../gst/interleave/.libs/libgstinterleave.so</filename>
   <basename>libgstinterleave.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-isomp4.xml b/docs/plugins/inspect/plugin-isomp4.xml
index 0f00123..9d43100 100644
--- a/docs/plugins/inspect/plugin-isomp4.xml
+++ b/docs/plugins/inspect/plugin-isomp4.xml
@@ -3,7 +3,7 @@
   <description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description>
   <filename>../../gst/isomp4/.libs/libgstisomp4.so</filename>
   <basename>libgstisomp4.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -107,7 +107,7 @@
           <name>audio_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 6 ], rate=(int)[ 1, 2147483647 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-opus, channel-mapping-family=(int)[ 0, 255 ], channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]</details>
+          <details>audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]; audio/x-ac3, channels=(int)[ 1, 6 ], rate=(int)[ 1, 2147483647 ]; audio/x-alac, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]; audio/x-opus, channel-mapping-family=(int)[ 0, 255 ], channels=(int)[ 1, 8 ], rate=(int)[ 1, 2147483647 ]</details>
         </caps>
         <caps>
           <name>subtitle_%u</name>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index 2bde220..3f7ba8f 100644
--- a/docs/plugins/inspect/plugin-jack.xml
+++ b/docs/plugins/inspect/plugin-jack.xml
@@ -3,7 +3,7 @@
   <description>JACK audio elements</description>
   <filename>../../ext/jack/.libs/libgstjack.so</filename>
   <basename>libgstjack.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jpeg.xml b/docs/plugins/inspect/plugin-jpeg.xml
index 9b1b0ce..92c8c9c 100644
--- a/docs/plugins/inspect/plugin-jpeg.xml
+++ b/docs/plugins/inspect/plugin-jpeg.xml
@@ -3,7 +3,7 @@
   <description>JPeg plugin library</description>
   <filename>../../ext/jpeg/.libs/libgstjpeg.so</filename>
   <basename>libgstjpeg.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index 3178159..dac10e9 100644
--- a/docs/plugins/inspect/plugin-level.xml
+++ b/docs/plugins/inspect/plugin-level.xml
@@ -3,7 +3,7 @@
   <description>Audio level plugin</description>
   <filename>../../gst/level/.libs/libgstlevel.so</filename>
   <basename>libgstlevel.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-matroska.xml b/docs/plugins/inspect/plugin-matroska.xml
index a05f15d..0590e49 100644
--- a/docs/plugins/inspect/plugin-matroska.xml
+++ b/docs/plugins/inspect/plugin-matroska.xml
@@ -3,7 +3,7 @@
   <description>Matroska and WebM stream handling</description>
   <filename>../../gst/matroska/.libs/libgstmatroska.so</filename>
   <basename>libgstmatroska.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index b638c5b..aee1e88 100644
--- a/docs/plugins/inspect/plugin-mulaw.xml
+++ b/docs/plugins/inspect/plugin-mulaw.xml
@@ -3,7 +3,7 @@
   <description>MuLaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstmulaw.so</filename>
   <basename>libgstmulaw.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multifile.xml b/docs/plugins/inspect/plugin-multifile.xml
index 2e1baa1..75115b2 100644
--- a/docs/plugins/inspect/plugin-multifile.xml
+++ b/docs/plugins/inspect/plugin-multifile.xml
@@ -3,7 +3,7 @@
   <description>Reads/Writes buffers from/to sequentially named files</description>
   <filename>../../gst/multifile/.libs/libgstmultifile.so</filename>
   <basename>libgstmultifile.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-multipart.xml b/docs/plugins/inspect/plugin-multipart.xml
index 54867ab..d9c65c8 100644
--- a/docs/plugins/inspect/plugin-multipart.xml
+++ b/docs/plugins/inspect/plugin-multipart.xml
@@ -3,7 +3,7 @@
   <description>multipart stream manipulation</description>
   <filename>../../gst/multipart/.libs/libgstmultipart.so</filename>
   <basename>libgstmultipart.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-navigationtest.xml b/docs/plugins/inspect/plugin-navigationtest.xml
index 191cc0f..6a86952 100644
--- a/docs/plugins/inspect/plugin-navigationtest.xml
+++ b/docs/plugins/inspect/plugin-navigationtest.xml
@@ -3,7 +3,7 @@
   <description>Template for a video filter</description>
   <filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename>
   <basename>libgstnavigationtest.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-oss4.xml b/docs/plugins/inspect/plugin-oss4.xml
index 5015c84..1aefb44 100644
--- a/docs/plugins/inspect/plugin-oss4.xml
+++ b/docs/plugins/inspect/plugin-oss4.xml
@@ -3,7 +3,7 @@
   <description>Open Sound System (OSS) version 4 support for GStreamer</description>
   <filename>../../sys/oss4/.libs/libgstoss4audio.so</filename>
   <basename>libgstoss4audio.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ossaudio.xml b/docs/plugins/inspect/plugin-ossaudio.xml
index 37285b3..7fe8fab 100644
--- a/docs/plugins/inspect/plugin-ossaudio.xml
+++ b/docs/plugins/inspect/plugin-ossaudio.xml
@@ -3,7 +3,7 @@
   <description>OSS (Open Sound System) support for GStreamer</description>
   <filename>../../sys/oss/.libs/libgstossaudio.so</filename>
   <basename>libgstossaudio.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-png.xml b/docs/plugins/inspect/plugin-png.xml
index 5b2d1c7..e0c5024 100644
--- a/docs/plugins/inspect/plugin-png.xml
+++ b/docs/plugins/inspect/plugin-png.xml
@@ -3,7 +3,7 @@
   <description>PNG plugin library</description>
   <filename>../../ext/libpng/.libs/libgstpng.so</filename>
   <basename>libgstpng.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-pulseaudio.xml b/docs/plugins/inspect/plugin-pulseaudio.xml
index b94da2a..64e4b37 100644
--- a/docs/plugins/inspect/plugin-pulseaudio.xml
+++ b/docs/plugins/inspect/plugin-pulseaudio.xml
@@ -3,7 +3,7 @@
   <description>PulseAudio plugin library</description>
   <filename>../../ext/pulse/.libs/libgstpulse.so</filename>
   <basename>libgstpulse.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-replaygain.xml b/docs/plugins/inspect/plugin-replaygain.xml
index a62ae07..2db78f1 100644
--- a/docs/plugins/inspect/plugin-replaygain.xml
+++ b/docs/plugins/inspect/plugin-replaygain.xml
@@ -3,7 +3,7 @@
   <description>ReplayGain volume normalization</description>
   <filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename>
   <basename>libgstreplaygain.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtp.xml b/docs/plugins/inspect/plugin-rtp.xml
index 9575ddd..eead7ea 100644
--- a/docs/plugins/inspect/plugin-rtp.xml
+++ b/docs/plugins/inspect/plugin-rtp.xml
@@ -3,7 +3,7 @@
   <description>Real-time protocol plugins</description>
   <filename>../../gst/rtp/.libs/libgstrtp.so</filename>
   <basename>libgstrtp.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index e123298..d27c513 100644
--- a/docs/plugins/inspect/plugin-rtpmanager.xml
+++ b/docs/plugins/inspect/plugin-rtpmanager.xml
@@ -3,7 +3,7 @@
   <description>RTP session management plugin library</description>
   <filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename>
   <basename>libgstrtpmanager.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-rtsp.xml b/docs/plugins/inspect/plugin-rtsp.xml
index 0487718..b80b128 100644
--- a/docs/plugins/inspect/plugin-rtsp.xml
+++ b/docs/plugins/inspect/plugin-rtsp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via RTSP</description>
   <filename>../../gst/rtsp/.libs/libgstrtsp.so</filename>
   <basename>libgstrtsp.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shapewipe.xml b/docs/plugins/inspect/plugin-shapewipe.xml
index 94bf3e2..83d644f 100644
--- a/docs/plugins/inspect/plugin-shapewipe.xml
+++ b/docs/plugins/inspect/plugin-shapewipe.xml
@@ -3,7 +3,7 @@
   <description>Shape Wipe transition filter</description>
   <filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename>
   <basename>libgstshapewipe.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-shout2send.xml b/docs/plugins/inspect/plugin-shout2send.xml
index 781e734..ed9db2a 100644
--- a/docs/plugins/inspect/plugin-shout2send.xml
+++ b/docs/plugins/inspect/plugin-shout2send.xml
@@ -3,7 +3,7 @@
   <description>Sends data to an icecast server using libshout2</description>
   <filename>../../ext/shout2/.libs/libgstshout2.so</filename>
   <basename>libgstshout2.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>libshout2</package>
diff --git a/docs/plugins/inspect/plugin-smpte.xml b/docs/plugins/inspect/plugin-smpte.xml
index 50583e1..f598b81 100644
--- a/docs/plugins/inspect/plugin-smpte.xml
+++ b/docs/plugins/inspect/plugin-smpte.xml
@@ -3,7 +3,7 @@
   <description>Apply the standard SMPTE transitions on video images</description>
   <filename>../../gst/smpte/.libs/libgstsmpte.so</filename>
   <basename>libgstsmpte.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-soup.xml b/docs/plugins/inspect/plugin-soup.xml
index 183d2b0..0effd0f 100644
--- a/docs/plugins/inspect/plugin-soup.xml
+++ b/docs/plugins/inspect/plugin-soup.xml
@@ -3,7 +3,7 @@
   <description>libsoup HTTP client src/sink</description>
   <filename>../../ext/soup/.libs/libgstsouphttpsrc.so</filename>
   <basename>libgstsouphttpsrc.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-spectrum.xml b/docs/plugins/inspect/plugin-spectrum.xml
index 197a9bb..8c25678 100644
--- a/docs/plugins/inspect/plugin-spectrum.xml
+++ b/docs/plugins/inspect/plugin-spectrum.xml
@@ -3,7 +3,7 @@
   <description>Run an FFT on the audio signal, output spectrum data</description>
   <filename>../../gst/spectrum/.libs/libgstspectrum.so</filename>
   <basename>libgstspectrum.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-speex.xml b/docs/plugins/inspect/plugin-speex.xml
index 18891cf..47efa8e 100644
--- a/docs/plugins/inspect/plugin-speex.xml
+++ b/docs/plugins/inspect/plugin-speex.xml
@@ -3,7 +3,7 @@
   <description>Speex plugin library</description>
   <filename>../../ext/speex/.libs/libgstspeex.so</filename>
   <basename>libgstspeex.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-taglib.xml b/docs/plugins/inspect/plugin-taglib.xml
index 4f563c9..7dee83b 100644
--- a/docs/plugins/inspect/plugin-taglib.xml
+++ b/docs/plugins/inspect/plugin-taglib.xml
@@ -3,7 +3,7 @@
   <description>Tag writing plug-in based on taglib</description>
   <filename>../../ext/taglib/.libs/libgsttaglib.so</filename>
   <basename>libgsttaglib.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-udp.xml b/docs/plugins/inspect/plugin-udp.xml
index a7e0e16..683806d 100644
--- a/docs/plugins/inspect/plugin-udp.xml
+++ b/docs/plugins/inspect/plugin-udp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via UDP</description>
   <filename>../../gst/udp/.libs/libgstudp.so</filename>
   <basename>libgstudp.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-video4linux2.xml b/docs/plugins/inspect/plugin-video4linux2.xml
index dab311d..cf12fa1 100644
--- a/docs/plugins/inspect/plugin-video4linux2.xml
+++ b/docs/plugins/inspect/plugin-video4linux2.xml
@@ -3,7 +3,7 @@
   <description>elements for Video 4 Linux</description>
   <filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename>
   <basename>libgstvideo4linux2.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index 8c331c0..fb0b472 100644
--- a/docs/plugins/inspect/plugin-videobox.xml
+++ b/docs/plugins/inspect/plugin-videobox.xml
@@ -3,7 +3,7 @@
   <description>resizes a video by adding borders or cropping</description>
   <filename>../../gst/videobox/.libs/libgstvideobox.so</filename>
   <basename>libgstvideobox.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videocrop.xml b/docs/plugins/inspect/plugin-videocrop.xml
index c2cbcc3..8495a7b 100644
--- a/docs/plugins/inspect/plugin-videocrop.xml
+++ b/docs/plugins/inspect/plugin-videocrop.xml
@@ -3,7 +3,7 @@
   <description>Crops video into a user-defined region</description>
   <filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename>
   <basename>libgstvideocrop.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videofilter.xml b/docs/plugins/inspect/plugin-videofilter.xml
index f7ca363..7cb79c0 100644
--- a/docs/plugins/inspect/plugin-videofilter.xml
+++ b/docs/plugins/inspect/plugin-videofilter.xml
@@ -3,7 +3,7 @@
   <description>Video filters plugin</description>
   <filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename>
   <basename>libgstvideofilter.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-videomixer.xml b/docs/plugins/inspect/plugin-videomixer.xml
index 1f119d5..a048fd6 100644
--- a/docs/plugins/inspect/plugin-videomixer.xml
+++ b/docs/plugins/inspect/plugin-videomixer.xml
@@ -3,7 +3,7 @@
   <description>Video mixer</description>
   <filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename>
   <basename>libgstvideomixer.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-vpx.xml b/docs/plugins/inspect/plugin-vpx.xml
index 37b6669..2c489d8 100644
--- a/docs/plugins/inspect/plugin-vpx.xml
+++ b/docs/plugins/inspect/plugin-vpx.xml
@@ -3,7 +3,7 @@
   <description>VP8 plugin</description>
   <filename>../../ext/vpx/.libs/libgstvpx.so</filename>
   <basename>libgstvpx.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavenc.xml b/docs/plugins/inspect/plugin-wavenc.xml
index b6d39b9..7e492b4 100644
--- a/docs/plugins/inspect/plugin-wavenc.xml
+++ b/docs/plugins/inspect/plugin-wavenc.xml
@@ -3,7 +3,7 @@
   <description>Encode raw audio into WAV</description>
   <filename>../../gst/wavenc/.libs/libgstwavenc.so</filename>
   <basename>libgstwavenc.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml
index 2c5f4da..c2cfd56 100644
--- a/docs/plugins/inspect/plugin-wavpack.xml
+++ b/docs/plugins/inspect/plugin-wavpack.xml
@@ -3,7 +3,7 @@
   <description>Wavpack lossless/lossy audio format handling</description>
   <filename>../../ext/wavpack/.libs/libgstwavpack.so</filename>
   <basename>libgstwavpack.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavparse.xml b/docs/plugins/inspect/plugin-wavparse.xml
index 4c0c6a3..cd6158b 100644
--- a/docs/plugins/inspect/plugin-wavparse.xml
+++ b/docs/plugins/inspect/plugin-wavparse.xml
@@ -3,7 +3,7 @@
   <description>Parse a .wav file into raw audio</description>
   <filename>../../gst/wavparse/.libs/libgstwavparse.so</filename>
   <basename>libgstwavparse.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml
index d8b9297..f215dcf 100644
--- a/docs/plugins/inspect/plugin-ximagesrc.xml
+++ b/docs/plugins/inspect/plugin-ximagesrc.xml
@@ -3,7 +3,7 @@
   <description>X11 video input plugin using standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesrc.so</filename>
   <basename>libgstximagesrc.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-y4menc.xml b/docs/plugins/inspect/plugin-y4menc.xml
index 34a2242..16c14f3 100644
--- a/docs/plugins/inspect/plugin-y4menc.xml
+++ b/docs/plugins/inspect/plugin-y4menc.xml
@@ -3,7 +3,7 @@
   <description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description>
   <filename>../../gst/y4m/.libs/libgsty4menc.so</filename>
   <basename>libgsty4menc.so</basename>
-  <version>1.8.1</version>
+  <version>1.8.2</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c
index 89911d7..e36b4d2 100644
--- a/ext/dv/gstdvdec.c
+++ b/ext/dv/gstdvdec.c
@@ -58,15 +58,15 @@
 #define PAL_FRAMERATE_NUMERATOR 25
 #define PAL_FRAMERATE_DENOMINATOR 1
 
-#define PAL_NORMAL_PAR_X        59
-#define PAL_NORMAL_PAR_Y        54
-#define PAL_WIDE_PAR_X          118
-#define PAL_WIDE_PAR_Y          81
+#define PAL_NORMAL_PAR_X        16
+#define PAL_NORMAL_PAR_Y        15
+#define PAL_WIDE_PAR_X          64
+#define PAL_WIDE_PAR_Y          45
 
-#define NTSC_NORMAL_PAR_X       10
-#define NTSC_NORMAL_PAR_Y       11
-#define NTSC_WIDE_PAR_X         40
-#define NTSC_WIDE_PAR_Y         33
+#define NTSC_NORMAL_PAR_X       8
+#define NTSC_NORMAL_PAR_Y       9
+#define NTSC_WIDE_PAR_X         32
+#define NTSC_WIDE_PAR_Y         27
 
 #define DV_DEFAULT_QUALITY DV_QUALITY_BEST
 #define DV_DEFAULT_DECODE_NTH 1
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 51eaaaf..9479e9a 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -93,15 +93,15 @@
 #define PAL_FRAMERATE_NUMERATOR 25
 #define PAL_FRAMERATE_DENOMINATOR 1
 
-#define PAL_NORMAL_PAR_X        59
-#define PAL_NORMAL_PAR_Y        54
-#define PAL_WIDE_PAR_X          118
-#define PAL_WIDE_PAR_Y          81
+#define PAL_NORMAL_PAR_X        16
+#define PAL_NORMAL_PAR_Y        15
+#define PAL_WIDE_PAR_X          64
+#define PAL_WIDE_PAR_Y          45
 
-#define NTSC_NORMAL_PAR_X       10
-#define NTSC_NORMAL_PAR_Y       11
-#define NTSC_WIDE_PAR_X         40
-#define NTSC_WIDE_PAR_Y         33
+#define NTSC_NORMAL_PAR_X       8
+#define NTSC_NORMAL_PAR_Y       9
+#define NTSC_WIDE_PAR_X         32
+#define NTSC_WIDE_PAR_Y         27
 
 GST_DEBUG_CATEGORY_STATIC (dvdemux_debug);
 #define GST_CAT_DEFAULT dvdemux_debug
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 0ccfca9..b3fda92 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -104,6 +104,8 @@
     GstVideoCodecFrame * frame);
 static gboolean gst_jpeg_dec_decide_allocation (GstVideoDecoder * bdec,
     GstQuery * query);
+static gboolean gst_jpeg_dec_sink_event (GstVideoDecoder * bdec,
+    GstEvent * event);
 
 #define gst_jpeg_dec_parent_class parent_class
 G_DEFINE_TYPE (GstJpegDec, gst_jpeg_dec, GST_TYPE_VIDEO_DECODER);
@@ -175,6 +177,7 @@
   vdec_class->set_format = gst_jpeg_dec_set_format;
   vdec_class->handle_frame = gst_jpeg_dec_handle_frame;
   vdec_class->decide_allocation = gst_jpeg_dec_decide_allocation;
+  vdec_class->sink_event = gst_jpeg_dec_sink_event;
 
   GST_DEBUG_CATEGORY_INIT (jpeg_dec_debug, "jpegdec", 0, "JPEG decoder");
   GST_DEBUG_CATEGORY_GET (GST_CAT_PERFORMANCE, "GST_PERFORMANCE");
@@ -592,11 +595,6 @@
 {
   GstJpegDec *jpeg = GST_JPEG_DEC (dec);
 
-  if (dec->input_segment.format == GST_FORMAT_TIME)
-    gst_video_decoder_set_packetized (dec, TRUE);
-  else
-    gst_video_decoder_set_packetized (dec, FALSE);
-
   if (jpeg->input_state)
     gst_video_codec_state_unref (jpeg->input_state);
   jpeg->input_state = gst_video_codec_state_ref (state);
@@ -1281,6 +1279,25 @@
 }
 
 static gboolean
+gst_jpeg_dec_sink_event (GstVideoDecoder * bdec, GstEvent * event)
+{
+  const GstSegment *segment;
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_SEGMENT)
+    goto done;
+
+  gst_event_parse_segment (event, &segment);
+
+  if (segment->format == GST_FORMAT_TIME)
+    gst_video_decoder_set_packetized (bdec, TRUE);
+  else
+    gst_video_decoder_set_packetized (bdec, FALSE);
+
+done:
+  return GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (bdec, event);
+}
+
+static gboolean
 gst_jpeg_dec_start (GstVideoDecoder * bdec)
 {
   GstJpegDec *dec = (GstJpegDec *) bdec;
diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c
index 7c98181..e8200e2 100644
--- a/ext/libpng/gstpngdec.c
+++ b/ext/libpng/gstpngdec.c
@@ -56,6 +56,8 @@
     GstVideoCodecFrame * frame);
 static gboolean gst_pngdec_decide_allocation (GstVideoDecoder * decoder,
     GstQuery * query);
+static gboolean gst_pngdec_sink_event (GstVideoDecoder * bdec,
+    GstEvent * event);
 
 #define parent_class gst_pngdec_parent_class
 G_DEFINE_TYPE (GstPngDec, gst_pngdec, GST_TYPE_VIDEO_DECODER);
@@ -97,6 +99,7 @@
   vdec_class->parse = gst_pngdec_parse;
   vdec_class->handle_frame = gst_pngdec_handle_frame;
   vdec_class->decide_allocation = gst_pngdec_decide_allocation;
+  vdec_class->sink_event = gst_pngdec_sink_event;
 
   GST_DEBUG_CATEGORY_INIT (pngdec_debug, "pngdec", 0, "PNG image decoder");
 }
@@ -165,11 +168,6 @@
     gst_video_codec_state_unref (pngdec->input_state);
   pngdec->input_state = gst_video_codec_state_ref (state);
 
-  if (decoder->input_segment.format == GST_FORMAT_TIME)
-    gst_video_decoder_set_packetized (decoder, TRUE);
-  else
-    gst_video_decoder_set_packetized (decoder, FALSE);
-
   /* We'll set format later on */
 
   return TRUE;
@@ -531,6 +529,25 @@
 }
 
 static gboolean
+gst_pngdec_sink_event (GstVideoDecoder * bdec, GstEvent * event)
+{
+  const GstSegment *segment;
+
+  if (GST_EVENT_TYPE (event) != GST_EVENT_SEGMENT)
+    goto done;
+
+  gst_event_parse_segment (event, &segment);
+
+  if (segment->format == GST_FORMAT_TIME)
+    gst_video_decoder_set_packetized (bdec, TRUE);
+  else
+    gst_video_decoder_set_packetized (bdec, FALSE);
+
+done:
+  return GST_VIDEO_DECODER_CLASS (parent_class)->sink_event (bdec, event);
+}
+
+static gboolean
 gst_pngdec_libpng_init (GstPngDec * pngdec)
 {
   g_return_val_if_fail (GST_IS_PNGDEC (pngdec), FALSE);
diff --git a/ext/soup/gstsouphttpclientsink.c b/ext/soup/gstsouphttpclientsink.c
index 108aabf..645c298 100644
--- a/ext/soup/gstsouphttpclientsink.c
+++ b/ext/soup/gstsouphttpclientsink.c
@@ -264,8 +264,10 @@
 
   g_list_free_full (souphttpsink->streamheader_buffers,
       (GDestroyNotify) gst_buffer_unref);
+  souphttpsink->streamheader_buffers = NULL;
   g_list_free_full (souphttpsink->sent_buffers,
       (GDestroyNotify) gst_buffer_unref);
+  souphttpsink->sent_buffers = NULL;
 }
 
 static gboolean
diff --git a/ext/vpx/gstvpxenc.c b/ext/vpx/gstvpxenc.c
index 11d4cc1..003d464 100644
--- a/ext/vpx/gstvpxenc.c
+++ b/ext/vpx/gstvpxenc.c
@@ -1888,7 +1888,17 @@
     duration =
         gst_util_uint64_scale (frame->duration, encoder->cfg.g_timebase.den,
         encoder->cfg.g_timebase.num * (GstClockTime) GST_SECOND);
-    encoder->last_pts += frame->duration;
+
+    if (duration > 0) {
+      encoder->last_pts += frame->duration;
+    } else {
+      /* We force the path ignoring the duration if we end up with a zero
+       * value for duration after scaling (e.g. duration value too small) */
+      GST_WARNING_OBJECT (encoder,
+          "Ignoring too small frame duration %" GST_TIME_FORMAT,
+          GST_TIME_ARGS (frame->duration));
+      duration = 1;
+    }
   } else {
     duration = 1;
   }
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index 35288c2..ea48acb 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -34,6 +34,16 @@
 
  <release>
   <Version>
+   <revision>1.8.2</revision>
+   <branch>1.8</branch>
+   <name></name>
+   <created>2016-06-09</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.2.tar.xz" />
+  </Version>
+ </release>
+
+ <release>
+  <Version>
    <revision>1.8.1</revision>
    <branch>1.8</branch>
    <name></name>
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index 195cc27..c8f50cb 100644
--- a/gst-plugins-good.spec
+++ b/gst-plugins-good.spec
@@ -4,7 +4,7 @@
 %define gst_minver   0.11.0
 
 Name: 		%{gstreamer}-plugins-good
-Version: 	1.8.1
+Version: 	1.8.2
 Release: 	1.gst
 Summary: 	GStreamer plug-ins with good code and licensing
 
diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c
index 6e6d929..10a2a05 100644
--- a/gst/auparse/gstauparse.c
+++ b/gst/auparse/gstauparse.c
@@ -421,7 +421,6 @@
   gint64 timestamp;
   gint64 duration;
   gint64 offset;
-  GstSegment segment;
 
   auparse = GST_AU_PARSE (parent);
 
@@ -443,8 +442,11 @@
     if (ret != GST_FLOW_OK)
       goto out;
 
-    gst_segment_init (&segment, GST_FORMAT_TIME);
-    gst_pad_push_event (auparse->srcpad, gst_event_new_segment (&segment));
+    if (auparse->need_segment) {
+      gst_pad_push_event (auparse->srcpad,
+          gst_event_new_segment (&auparse->segment));
+      auparse->need_segment = FALSE;
+    }
   }
 
   avail = gst_adapter_available (auparse->adapter);
@@ -690,7 +692,6 @@
     {
       gint64 start, stop, offset = 0;
       GstSegment segment;
-      GstEvent *new_event = NULL;
 
       /* some debug output */
       gst_event_copy_segment (event, &segment);
@@ -722,9 +723,17 @@
       gst_segment_init (&segment, GST_FORMAT_TIME);
       segment.start = segment.time = start;
       segment.stop = stop;
-      new_event = gst_event_new_segment (&segment);
 
-      ret = gst_pad_push_event (auparse->srcpad, new_event);
+      gst_segment_copy_into (&segment, &auparse->segment);
+
+      if (!gst_pad_has_current_caps (auparse->srcpad)) {
+        auparse->need_segment = TRUE;
+        ret = TRUE;
+      } else {
+        auparse->need_segment = FALSE;
+        ret = gst_pad_push_event (auparse->srcpad,
+            gst_event_new_segment (&segment));
+      }
 
       auparse->buffer_offset = offset;
 
diff --git a/gst/auparse/gstauparse.h b/gst/auparse/gstauparse.h
index 6d8f35a..97a0995 100644
--- a/gst/auparse/gstauparse.h
+++ b/gst/auparse/gstauparse.h
@@ -53,7 +53,8 @@
 
   GstAdapter *adapter;
 
-  /* GstSegment  segment; */
+  GstSegment  segment;
+  gboolean    need_segment;
 
   gint64      offset;        /* where sample data starts */
   gint64      buffer_offset;
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index d07a307..93bdc9f 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -300,6 +300,7 @@
   gst_adapter_clear (avi->adapter);
 
   gst_segment_init (&avi->segment, GST_FORMAT_TIME);
+  avi->segment_seqnum = 0;
 }
 
 
@@ -846,6 +847,7 @@
       gst_segment_copy_into (&segment, &avi->segment);
 
       GST_DEBUG_OBJECT (avi, "Pushing newseg %" GST_SEGMENT_FORMAT, &segment);
+      avi->segment_seqnum = gst_event_get_seqnum (event);
       segment_event = gst_event_new_segment (&segment);
       gst_event_set_seqnum (segment_event, gst_event_get_seqnum (event));
       gst_avi_demux_push_event (avi, segment_event);
@@ -1618,7 +1620,7 @@
  * Create and push a flushing seek event upstream
  */
 static gboolean
-perform_seek_to_offset (GstAviDemux * demux, guint64 offset)
+perform_seek_to_offset (GstAviDemux * demux, guint64 offset, guint32 seqnum)
 {
   GstEvent *event;
   gboolean res = 0;
@@ -1629,7 +1631,7 @@
       gst_event_new_seek (1.0, GST_FORMAT_BYTES,
       GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset,
       GST_SEEK_TYPE_NONE, -1);
-
+  gst_event_set_seqnum (event, seqnum);
   res = gst_pad_push_event (demux->sinkpad, event);
 
   if (res)
@@ -1696,7 +1698,8 @@
   }
 
   /* seek to next index */
-  return perform_seek_to_offset (avi, avi->odml_subidxs[avi->odml_subidx]);
+  return perform_seek_to_offset (avi, avi->odml_subidxs[avi->odml_subidx],
+      avi->segment_seqnum);
 }
 
 /*
@@ -2949,7 +2952,7 @@
         (8 + GST_ROUND_UP_2 (size)));
     avi->idx1_offset = offset + 8 + GST_ROUND_UP_2 (size);
     /* issue seek to allow chain function to handle it and return! */
-    perform_seek_to_offset (avi, avi->idx1_offset);
+    perform_seek_to_offset (avi, avi->idx1_offset, avi->segment_seqnum);
     return;
   }
 
@@ -3537,6 +3540,8 @@
   if (avi->seg_event)
     gst_event_unref (avi->seg_event);
   avi->seg_event = gst_event_new_segment (&avi->segment);
+  if (avi->segment_seqnum)
+    gst_event_set_seqnum (avi->seg_event, avi->segment_seqnum);
 
   gst_avi_demux_check_seekability (avi);
 
@@ -4307,6 +4312,8 @@
   if (avi->seg_event)
     gst_event_unref (avi->seg_event);
   avi->seg_event = gst_event_new_segment (&avi->segment);
+  if (avi->segment_seqnum)
+    gst_event_set_seqnum (avi->seg_event, avi->segment_seqnum);
 
   stamp = gst_util_get_timestamp () - stamp;
   GST_DEBUG_OBJECT (avi, "pulling header took %" GST_TIME_FORMAT,
@@ -4638,6 +4645,7 @@
   avi->seg_event = gst_event_new_segment (&avi->segment);
   if (seqnum)
     gst_event_set_seqnum (avi->seg_event, seqnum);
+  avi->segment_seqnum = seqnum;
 
   if (!avi->streaming) {
     gst_pad_start_task (avi->sinkpad, (GstTaskFunction) gst_avi_demux_loop,
@@ -4837,7 +4845,7 @@
   GST_DEBUG_OBJECT (avi, "seeking to chunk at offset %" G_GUINT64_FORMAT,
       min_offset);
 
-  if (!perform_seek_to_offset (avi, min_offset)) {
+  if (!perform_seek_to_offset (avi, min_offset, gst_event_get_seqnum (event))) {
     GST_DEBUG_OBJECT (avi, "seek event failed!");
     return FALSE;
   }
@@ -4887,7 +4895,7 @@
       GST_INFO_OBJECT (avi,
           "Seeking to legacy index/first subindex at %" G_GUINT64_FORMAT,
           offset);
-      return perform_seek_to_offset (avi, offset);
+      return perform_seek_to_offset (avi, offset, gst_event_get_seqnum (event));
     }
 
     /* FIXME: we have to always return true so that we don't block the seek
@@ -5667,18 +5675,25 @@
         avi->segment.position = avi->segment.start;
       if (avi->segment.flags & GST_SEEK_FLAG_SEGMENT) {
         gint64 stop;
+        GstEvent *event;
+        GstMessage *msg;
 
         if ((stop = avi->segment.stop) == -1)
           stop = avi->segment.duration;
 
         GST_INFO_OBJECT (avi, "sending segment_done");
 
-        gst_element_post_message
-            (GST_ELEMENT_CAST (avi),
+        msg =
             gst_message_new_segment_done (GST_OBJECT_CAST (avi),
-                GST_FORMAT_TIME, stop));
-        gst_avi_demux_push_event (avi,
-            gst_event_new_segment_done (GST_FORMAT_TIME, stop));
+            GST_FORMAT_TIME, stop);
+        if (avi->segment_seqnum)
+          gst_message_set_seqnum (msg, avi->segment_seqnum);
+        gst_element_post_message (GST_ELEMENT_CAST (avi), msg);
+
+        event = gst_event_new_segment_done (GST_FORMAT_TIME, stop);
+        if (avi->segment_seqnum)
+          gst_event_set_seqnum (event, avi->segment_seqnum);
+        gst_avi_demux_push_event (avi, event);
       } else {
         push_eos = TRUE;
       }
@@ -5692,9 +5707,13 @@
       push_eos = TRUE;
     }
     if (push_eos) {
+      GstEvent *event;
+
       GST_INFO_OBJECT (avi, "sending eos");
-      if (!gst_avi_demux_push_event (avi, gst_event_new_eos ()) &&
-          (res == GST_FLOW_EOS)) {
+      event = gst_event_new_eos ();
+      if (avi->segment_seqnum)
+        gst_event_set_seqnum (event, avi->segment_seqnum);
+      if (!gst_avi_demux_push_event (avi, event) && (res == GST_FLOW_EOS)) {
         GST_ELEMENT_ERROR (avi, STREAM, DEMUX,
             (NULL), ("got eos but no streams (yet)"));
       }
diff --git a/gst/avi/gstavidemux.h b/gst/avi/gstavidemux.h
index fd2af50..813ec60 100644
--- a/gst/avi/gstavidemux.h
+++ b/gst/avi/gstavidemux.h
@@ -182,6 +182,7 @@
 
   /* segment in TIME */
   GstSegment     segment;
+  guint32        segment_seqnum;
 
   /* pending tags/events */
   GstEvent      *seg_event;
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index ddfac13..818930f 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -644,6 +644,9 @@
   }
 }
 
+static void gst_avi_mux_audsink_set_fields (GstAviMux * avimux,
+    GstAviAudioPad * avipad);
+
 static GstFlowReturn
 gst_avi_mux_audsink_scan_mpeg_audio (GstAviMux * avimux, GstAviPad * avipad,
     GstBuffer * buffer)
@@ -688,9 +691,10 @@
     spf = 576;
   }
 
-  if (G_UNLIKELY (avipad->hdr.scale <= 1))
+  if (G_UNLIKELY (avipad->hdr.scale <= 1)) {
     avipad->hdr.scale = spf;
-  else if (G_UNLIKELY (avipad->hdr.scale != spf)) {
+    gst_avi_mux_audsink_set_fields (avimux, (GstAviAudioPad *) avipad);
+  } else if (G_UNLIKELY (avipad->hdr.scale != spf)) {
     GST_WARNING_OBJECT (avimux, "input mpeg audio has varying frame size");
     goto cbr_fallback;
   }
@@ -709,6 +713,7 @@
   {
     GST_WARNING_OBJECT (avimux, "falling back to CBR muxing");
     avipad->hdr.scale = 1;
+    gst_avi_mux_audsink_set_fields (avimux, (GstAviAudioPad *) avipad);
     /* no need to check further */
     avipad->hook = NULL;
     goto done;
@@ -1780,6 +1785,10 @@
   GSList *node;
   GstSegment segment;
 
+  /* Do not write index and header, if the index has no data */
+  if (avimux->idx == NULL)
+    return GST_FLOW_OK;
+
   /* if bigfile, rewrite header, else write indexes */
   /* don't bail out at once if error, still try to re-write header */
   if (avimux->video_pads > 0) {
@@ -1826,7 +1835,9 @@
         audpad->auds.blockalign = audpad->max_audio_chunk;
       if (audpad->auds.blockalign == 0)
         audpad->auds.blockalign = 1;
-      gst_avi_mux_audsink_set_fields (avimux, audpad);
+      /* note that hdr.rate is actually used by demux in cbr case */
+      if (avipad->hdr.scale <= 1)
+        avipad->hdr.rate = audpad->auds.av_bps / audpad->auds.blockalign;
       avimux->avi_hdr.max_bps += audpad->auds.av_bps;
       avipad->hdr.length = gst_util_uint64_scale (audpad->audio_time,
           avipad->hdr.rate, avipad->hdr.scale * GST_SECOND);
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c
index dcbd48b..6e05893 100644
--- a/gst/deinterlace/gstdeinterlace.c
+++ b/gst/deinterlace/gstdeinterlace.c
@@ -148,7 +148,7 @@
       "greedyh"},
   {GST_DEINTERLACE_GREEDY_L, "Motion Adaptive: Simple Detection", "greedyl"},
   {GST_DEINTERLACE_VFIR, "Blur Vertical", "vfir"},
-  {GST_DEINTERLACE_LINEAR, "Television: Full resolution", "linear"},
+  {GST_DEINTERLACE_LINEAR, "Linear", "linear"},
   {GST_DEINTERLACE_LINEAR_BLEND, "Blur: Temporal (Do Not Use)",
       "linearblend"},
   {GST_DEINTERLACE_SCALER_BOB, "Double lines", "scalerbob"},
@@ -2519,6 +2519,7 @@
       return TRUE;
     }
     gst_deinterlace_reset_history (self, FALSE);
+    gst_caps_unref (current_caps);
   }
 
   if (self->locking != GST_DEINTERLACE_LOCKING_NONE) {
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index ee54b2a..7f0ed66 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -402,8 +402,8 @@
         } else {
           gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
               GST_TAG_DATE_TIME, dt, NULL);
+          gst_date_time_unref (dt);
         }
-        gst_date_time_unref (dt);
       } else if (!strcmp (tag_name, "creator")) {
         gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
             GST_TAG_ARTIST, s, NULL);
diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c
index 48f8b66..10db67f 100644
--- a/gst/flv/gstflvmux.c
+++ b/gst/flv/gstflvmux.c
@@ -1604,7 +1604,7 @@
     }
     mux->state = GST_FLV_MUX_STATE_DATA;
 
-    if (GST_COLLECT_PADS_DTS_IS_VALID (cdata))
+    if (cdata && GST_COLLECT_PADS_DTS_IS_VALID (cdata))
       mux->first_timestamp = GST_COLLECT_PADS_DTS (cdata);
     else
       mux->first_timestamp = 0;
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 9ac7c77..5be830b 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -3461,30 +3461,38 @@
 
   /* now map onto a fourcc, and some extra properties */
   if (strcmp (mimetype, "audio/mpeg") == 0) {
-    gint mpegversion = 0;
+    gint mpegversion = 0, mpegaudioversion = 0;
     gint layer = -1;
 
     gst_structure_get_int (structure, "mpegversion", &mpegversion);
     switch (mpegversion) {
       case 1:
         gst_structure_get_int (structure, "layer", &layer);
-        switch (layer) {
-          case 3:
-            /* mp3 */
-            /* note: QuickTime player does not like mp3 either way in iso/mp4 */
-            if (format == GST_QT_MUX_FORMAT_QT)
-              entry.fourcc = FOURCC__mp3;
-            else {
-              entry.fourcc = FOURCC_mp4a;
-              ext_atom =
-                  build_esds_extension (qtpad->trak, ESDS_OBJECT_TYPE_MPEG1_P3,
-                  ESDS_STREAM_TYPE_AUDIO, codec_data, qtpad->avg_bitrate,
-                  qtpad->max_bitrate);
-            }
-            entry.samples_per_packet = 1152;
-            entry.bytes_per_sample = 2;
-            break;
+        gst_structure_get_int (structure, "mpegaudioversion",
+            &mpegaudioversion);
+
+        /* mp1/2/3 */
+        /* note: QuickTime player does not like mp3 either way in iso/mp4 */
+        if (format == GST_QT_MUX_FORMAT_QT)
+          entry.fourcc = FOURCC__mp3;
+        else {
+          entry.fourcc = FOURCC_mp4a;
+          ext_atom =
+              build_esds_extension (qtpad->trak, ESDS_OBJECT_TYPE_MPEG1_P3,
+              ESDS_STREAM_TYPE_AUDIO, codec_data, qtpad->avg_bitrate,
+              qtpad->max_bitrate);
         }
+        if (layer == 1) {
+          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4);
+          entry.samples_per_packet = 384;
+        } else if (layer == 2) {
+          g_warn_if_fail (format == GST_QT_MUX_FORMAT_MP4);
+          entry.samples_per_packet = 1152;
+        } else {
+          g_warn_if_fail (layer == 3);
+          entry.samples_per_packet = (mpegaudioversion <= 1) ? 1152 : 576;
+        }
+        entry.bytes_per_sample = 2;
         break;
       case 4:
 
diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c
index 61b11a4..5fabc92 100644
--- a/gst/isomp4/gstqtmuxmap.c
+++ b/gst/isomp4/gstqtmuxmap.c
@@ -104,6 +104,12 @@
   "layer = (int) 3, " \
   COMMON_AUDIO_CAPS (2, MAX)
 
+#define MP123_CAPS \
+  "audio/mpeg, " \
+  "mpegversion = (int) 1, " \
+  "layer = (int) [1, 3], " \
+  COMMON_AUDIO_CAPS (2, MAX)
+
 #define AAC_CAPS \
   "audio/mpeg, " \
   "mpegversion = (int) 4, " \
@@ -190,7 +196,7 @@
         GST_STATIC_CAPS ("video/quicktime, variant = (string) iso"),
         GST_STATIC_CAPS (MPEG4V_CAPS "; " H264_CAPS ";"
             "video/x-mp4-part," COMMON_VIDEO_CAPS),
-        GST_STATIC_CAPS (MP3_CAPS "; "
+        GST_STATIC_CAPS (MP123_CAPS "; "
             AAC_CAPS " ; " AC3_CAPS " ; " ALAC_CAPS " ; " OPUS_CAPS),
       GST_STATIC_CAPS (TEXT_UTF8)}
   ,
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index d21da31..db2d361 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -314,7 +314,6 @@
 
   /* the Gst segment we are processing out, used for clipping */
   GstSegment segment;
-  guint32 segment_seqnum;       /* segment event seqnum obtained from seek */
 
   /* quicktime segments */
   guint32 n_segments;
@@ -526,6 +525,11 @@
 static GstFlowReturn qtdemux_prepare_streams (GstQTDemux * qtdemux);
 static void qtdemux_do_allocation (GstQTDemux * qtdemux,
     QtDemuxStream * stream);
+static gboolean gst_qtdemux_activate_segment (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, guint32 seg_idx, GstClockTime offset);
+static gboolean gst_qtdemux_stream_update_segment (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, gint seg_idx, GstClockTime offset,
+    GstClockTime * _start, GstClockTime * _stop);
 
 static gboolean qtdemux_pull_mfro_mfra (GstQTDemux * qtdemux);
 static void check_update_duration (GstQTDemux * qtdemux, GstClockTime duration);
@@ -586,7 +590,6 @@
   qtdemux->state = QTDEMUX_STATE_INITIAL;
   qtdemux->pullbased = FALSE;
   qtdemux->posted_redirect = FALSE;
-  qtdemux->pending_configure = FALSE;
   qtdemux->neededbytes = 16;
   qtdemux->todrop = 0;
   qtdemux->adapter = gst_adapter_new ();
@@ -1489,6 +1492,7 @@
 
   /* and set all streams to the final position */
   gst_flow_combiner_reset (qtdemux->flowcombiner);
+  qtdemux->segment_seqnum = seqnum;
   for (n = 0; n < qtdemux->n_streams; n++) {
     QtDemuxStream *stream = qtdemux->streams[n];
 
@@ -1498,7 +1502,6 @@
     stream->offset_in_sample = 0;
     stream->segment_index = -1;
     stream->sent_eos = FALSE;
-    stream->segment_seqnum = seqnum;
 
     if (segment->flags & GST_SEEK_FLAG_FLUSH)
       gst_segment_init (&stream->segment, GST_FORMAT_TIME);
@@ -1965,10 +1968,6 @@
     qtdemux->have_group_id = FALSE;
     qtdemux->group_id = G_MAXUINT;
 
-    if (qtdemux->protection_system_ids) {
-      g_ptr_array_free (qtdemux->protection_system_ids, TRUE);
-      qtdemux->protection_system_ids = NULL;
-    }
     g_queue_foreach (&qtdemux->protection_event_queue, (GFunc) gst_event_unref,
         NULL);
     g_queue_clear (&qtdemux->protection_event_queue);
@@ -1976,6 +1975,7 @@
   qtdemux->offset = 0;
   gst_adapter_clear (qtdemux->adapter);
   gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
+  qtdemux->segment_seqnum = 0;
 
   if (hard) {
     for (n = 0; n < qtdemux->n_streams; n++) {
@@ -1992,7 +1992,10 @@
     gst_caps_replace (&qtdemux->media_caps, NULL);
     qtdemux->timescale = 0;
     qtdemux->got_moov = FALSE;
-    qtdemux->pending_configure = FALSE;
+    if (qtdemux->protection_system_ids) {
+      g_ptr_array_free (qtdemux->protection_system_ids, TRUE);
+      qtdemux->protection_system_ids = NULL;
+    }
   } else if (qtdemux->mss_mode) {
     gst_flow_combiner_reset (qtdemux->flowcombiner);
     for (n = 0; n < qtdemux->n_streams; n++)
@@ -2001,12 +2004,14 @@
     gst_flow_combiner_reset (qtdemux->flowcombiner);
     for (n = 0; n < qtdemux->n_streams; n++) {
       qtdemux->streams[n]->sent_eos = FALSE;
-      qtdemux->streams[n]->segment_seqnum = 0;
       qtdemux->streams[n]->time_position = 0;
       qtdemux->streams[n]->accumulated_base = 0;
     }
     if (!qtdemux->pending_newsegment) {
       qtdemux->pending_newsegment = gst_event_new_segment (&qtdemux->segment);
+      if (qtdemux->segment_seqnum)
+        gst_event_set_seqnum (qtdemux->pending_newsegment,
+            qtdemux->segment_seqnum);
     }
   }
 }
@@ -2034,6 +2039,9 @@
       GST_DEBUG_OBJECT (demux, "received newsegment %" GST_SEGMENT_FORMAT,
           &segment);
 
+      /* erase any previously set segment */
+      gst_event_replace (&demux->pending_newsegment, NULL);
+
       if (segment.format == GST_FORMAT_TIME) {
         GST_DEBUG_OBJECT (demux, "new pending_newsegment");
         gst_event_replace (&demux->pending_newsegment, event);
@@ -2106,11 +2114,12 @@
 
       gst_segment_copy_into (&segment, &demux->segment);
       GST_DEBUG_OBJECT (demux, "Pushing newseg %" GST_SEGMENT_FORMAT, &segment);
-      segment_event = gst_event_new_segment (&segment);
-      gst_event_set_seqnum (segment_event, gst_event_get_seqnum (event));
-      /* erase any previously set segment */
-      gst_event_replace (&demux->pending_newsegment, NULL);
-      gst_qtdemux_push_event (demux, segment_event);
+      if (demux->n_streams) {
+        gst_event_replace (&demux->pending_newsegment, NULL);
+        segment_event = gst_event_new_segment (&segment);
+        gst_event_set_seqnum (segment_event, gst_event_get_seqnum (event));
+        gst_qtdemux_push_event (demux, segment_event);
+      }
 
       /* clear leftover in current segment, if any */
       gst_adapter_clear (demux->adapter);
@@ -2693,6 +2702,20 @@
           stream->segments[0].stop_time = duration;
           stream->segments[0].duration = duration;
           stream->segments[0].media_stop = duration;
+
+          /* let downstream know we possibly have a new stop time */
+          if (stream->segment_index != -1) {
+            GstClockTime pos;
+
+            if (qtdemux->segment.rate >= 0) {
+              pos = stream->segment.start;
+            } else {
+              pos = stream->segment.stop;
+            }
+
+            gst_qtdemux_stream_update_segment (qtdemux, stream,
+                stream->segment_index, pos, NULL, NULL);
+          }
         }
       }
     }
@@ -4174,48 +4197,20 @@
   return GST_FLOW_EOS;
 }
 
-/* activate the given segment number @seg_idx of @stream at time @offset.
- * @offset is an absolute global position over all the segments.
- *
- * This will push out a NEWSEGMENT event with the right values and
- * position the stream index to the first decodable sample before
- * @offset.
+/*
+ * Gets the current qt segment start, stop and position for the
+ * given time offset. This is used in update_segment()
  */
-static gboolean
-gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
-    guint32 seg_idx, GstClockTime offset)
+static void
+gst_qtdemux_stream_segment_get_boundaries (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, GstClockTime offset,
+    GstClockTime * _start, GstClockTime * _stop, GstClockTime * _time)
 {
-  GstEvent *event;
-  QtDemuxSegment *segment;
-  guint32 index, kf_index;
   GstClockTime seg_time;
   GstClockTime start, stop, time;
-  gdouble rate;
+  QtDemuxSegment *segment;
 
-  GST_LOG_OBJECT (stream->pad, "activate segment %d, offset %" GST_TIME_FORMAT,
-      seg_idx, GST_TIME_ARGS (offset));
-
-  /* update the current segment */
-  stream->segment_index = seg_idx;
-
-  /* get the segment */
-  segment = &stream->segments[seg_idx];
-
-  if (G_UNLIKELY (offset < segment->time)) {
-    GST_WARNING_OBJECT (stream->pad, "offset < segment->time %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (segment->time));
-    return FALSE;
-  }
-
-  /* segment lies beyond total indicated duration */
-  if (G_UNLIKELY (qtdemux->segment.duration != GST_CLOCK_TIME_NONE &&
-          segment->time > qtdemux->segment.duration)) {
-    GST_WARNING_OBJECT (stream->pad, "file duration %" GST_TIME_FORMAT
-        " < segment->time %" GST_TIME_FORMAT,
-        GST_TIME_ARGS (qtdemux->segment.duration),
-        GST_TIME_ARGS (segment->time));
-    return FALSE;
-  }
+  segment = &stream->segments[stream->segment_index];
 
   /* get time in this segment */
   seg_time = offset - segment->time;
@@ -4234,7 +4229,9 @@
    * segment->media_stop is in track-time-realm.
    *
    * In order to compare the two, we need to bring segment.stop
-   * into the track-time-realm */
+   * into the track-time-realm
+   *
+   * FIXME - does this comment still hold? Don't see any conversion here */
 
   stop = qtdemux->segment.stop;
   if (stop == GST_CLOCK_TIME_NONE)
@@ -4263,6 +4260,50 @@
     stop = MIN (segment->media_start + seg_time, stop);
   }
 
+  *_start = start;
+  *_stop = stop;
+  *_time = time;
+}
+
+/*
+ * Updates the qt segment used for the stream and pushes a new segment event
+ * downstream on this stream's pad.
+ */
+static gboolean
+gst_qtdemux_stream_update_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
+    gint seg_idx, GstClockTime offset, GstClockTime * _start,
+    GstClockTime * _stop)
+{
+  QtDemuxSegment *segment;
+  GstClockTime start = 0, stop = GST_CLOCK_TIME_NONE, time = 0;
+  gdouble rate;
+  GstEvent *event;
+
+  /* update the current segment */
+  stream->segment_index = seg_idx;
+
+  /* get the segment */
+  segment = &stream->segments[seg_idx];
+
+  if (G_UNLIKELY (offset < segment->time)) {
+    GST_WARNING_OBJECT (stream->pad, "offset < segment->time %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (segment->time));
+    return FALSE;
+  }
+
+  /* segment lies beyond total indicated duration */
+  if (G_UNLIKELY (qtdemux->segment.duration != GST_CLOCK_TIME_NONE &&
+          segment->time > qtdemux->segment.duration)) {
+    GST_WARNING_OBJECT (stream->pad, "file duration %" GST_TIME_FORMAT
+        " < segment->time %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (qtdemux->segment.duration),
+        GST_TIME_ARGS (segment->time));
+    return FALSE;
+  }
+
+  gst_qtdemux_stream_segment_get_boundaries (qtdemux, stream, offset,
+      &start, &stop, &time);
+
   GST_DEBUG_OBJECT (stream->pad, "new segment %d from %" GST_TIME_FORMAT
       " to %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, seg_idx,
       GST_TIME_ARGS (start), GST_TIME_ARGS (stop), GST_TIME_ARGS (time));
@@ -4291,8 +4332,8 @@
   /* now prepare and send the segment */
   if (stream->pad) {
     event = gst_event_new_segment (&stream->segment);
-    if (stream->segment_seqnum) {
-      gst_event_set_seqnum (event, stream->segment_seqnum);
+    if (qtdemux->segment_seqnum) {
+      gst_event_set_seqnum (event, qtdemux->segment_seqnum);
     }
     gst_pad_push_event (stream->pad, event);
     /* assume we can send more data now */
@@ -4301,6 +4342,38 @@
     gst_qtdemux_push_tags (qtdemux, stream);
   }
 
+  if (_start)
+    *_start = start;
+  if (_stop)
+    *_stop = stop;
+
+  return TRUE;
+}
+
+/* activate the given segment number @seg_idx of @stream at time @offset.
+ * @offset is an absolute global position over all the segments.
+ *
+ * This will push out a NEWSEGMENT event with the right values and
+ * position the stream index to the first decodable sample before
+ * @offset.
+ */
+static gboolean
+gst_qtdemux_activate_segment (GstQTDemux * qtdemux, QtDemuxStream * stream,
+    guint32 seg_idx, GstClockTime offset)
+{
+  QtDemuxSegment *segment;
+  guint32 index, kf_index;
+  GstClockTime start = 0, stop = GST_CLOCK_TIME_NONE;
+
+  GST_LOG_OBJECT (stream->pad, "activate segment %d, offset %" GST_TIME_FORMAT,
+      seg_idx, GST_TIME_ARGS (offset));
+
+  if (!gst_qtdemux_stream_update_segment (qtdemux, stream, seg_idx, offset,
+          &start, &stop))
+    return FALSE;
+
+  segment = &stream->segments[stream->segment_index];
+
   /* in the fragmented case, we pick a fragment that starts before our
    * desired position and rely on downstream to wait for a keyframe
    * (FIXME: doesn't seem to work so well with ismv and wmv, as no parser; the
@@ -4618,10 +4691,15 @@
         GST_TIME_ARGS (demux->segment.position), GST_TIME_ARGS (end_time));
     if (GST_CLOCK_TIME_IS_VALID (end_time)
         && (end_time + 2 * GST_SECOND < demux->segment.position)) {
+      GstEvent *event;
+
       GST_DEBUG_OBJECT (demux, "sending EOS for stream %s",
           GST_PAD_NAME (stream->pad));
       stream->sent_eos = TRUE;
-      gst_pad_push_event (stream->pad, gst_event_new_eos ());
+      event = gst_event_new_eos ();
+      if (demux->segment_seqnum)
+        gst_event_set_seqnum (event, demux->segment_seqnum);
+      gst_pad_push_event (stream->pad, event);
     }
   }
 }
@@ -5398,25 +5476,44 @@
           stop = qtdemux->segment.duration;
 
         if (qtdemux->segment.rate >= 0) {
+          GstMessage *message;
+          GstEvent *event;
+
           GST_LOG_OBJECT (qtdemux, "Sending segment done, at end of segment");
-          gst_element_post_message (GST_ELEMENT_CAST (qtdemux),
-              gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
-                  GST_FORMAT_TIME, stop));
-          gst_qtdemux_push_event (qtdemux,
-              gst_event_new_segment_done (GST_FORMAT_TIME, stop));
+          message = gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
+              GST_FORMAT_TIME, stop);
+          event = gst_event_new_segment_done (GST_FORMAT_TIME, stop);
+          if (qtdemux->segment_seqnum) {
+            gst_message_set_seqnum (message, qtdemux->segment_seqnum);
+            gst_event_set_seqnum (event, qtdemux->segment_seqnum);
+          }
+          gst_element_post_message (GST_ELEMENT_CAST (qtdemux), message);
+          gst_qtdemux_push_event (qtdemux, event);
         } else {
+          GstMessage *message;
+          GstEvent *event;
+
           /*  For Reverse Playback */
           GST_LOG_OBJECT (qtdemux, "Sending segment done, at start of segment");
-          gst_element_post_message (GST_ELEMENT_CAST (qtdemux),
-              gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
-                  GST_FORMAT_TIME, qtdemux->segment.start));
-          gst_qtdemux_push_event (qtdemux,
-              gst_event_new_segment_done (GST_FORMAT_TIME,
-                  qtdemux->segment.start));
+          message = gst_message_new_segment_done (GST_OBJECT_CAST (qtdemux),
+              GST_FORMAT_TIME, qtdemux->segment.start);
+          event = gst_event_new_segment_done (GST_FORMAT_TIME,
+              qtdemux->segment.start);
+          if (qtdemux->segment_seqnum) {
+            gst_message_set_seqnum (message, qtdemux->segment_seqnum);
+            gst_event_set_seqnum (event, qtdemux->segment_seqnum);
+          }
+          gst_element_post_message (GST_ELEMENT_CAST (qtdemux), message);
+          gst_qtdemux_push_event (qtdemux, event);
         }
       } else {
+        GstEvent *event;
+
         GST_LOG_OBJECT (qtdemux, "Sending EOS at end of segment");
-        gst_qtdemux_push_event (qtdemux, gst_event_new_eos ());
+        event = gst_event_new_eos ();
+        if (qtdemux->segment_seqnum)
+          gst_event_set_seqnum (event, qtdemux->segment_seqnum);
+        gst_qtdemux_push_event (qtdemux, event);
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       GST_ELEMENT_ERROR (qtdemux, STREAM, FAILED,
@@ -5841,7 +5938,6 @@
             &fourcc);
         if (fourcc == FOURCC_moov) {
           gint n;
-          gboolean got_samples = FALSE;
 
           /* in usual fragmented setup we could try to scan for more
            * and end up at the the moov (after mdat) again */
@@ -5862,9 +5958,13 @@
               demux->moov_node_compressed = NULL;
             } else {
               /* prepare newsegment to send when streaming actually starts */
-              if (!demux->pending_newsegment)
+              if (!demux->pending_newsegment) {
                 demux->pending_newsegment =
                     gst_event_new_segment (&demux->segment);
+                if (demux->segment_seqnum)
+                  gst_event_set_seqnum (demux->pending_newsegment,
+                      demux->segment_seqnum);
+              }
             }
 
             demux->last_moov_offset = demux->offset;
@@ -5873,27 +5973,19 @@
             qtdemux_node_dump (demux, demux->moov_node);
             qtdemux_parse_tree (demux);
             qtdemux_prepare_streams (demux);
+            if (!demux->got_moov)
+              qtdemux_expose_streams (demux);
+            else {
 
-            for (n = 0; n < demux->n_streams; n++) {
-              QtDemuxStream *stream = demux->streams[n];
-              got_samples |= stream->stbl_index >= 0;
-            }
-            if (!demux->fragmented || got_samples) {
-              if (!demux->got_moov) {
-                qtdemux_expose_streams (demux);
-              } else {
-                for (n = 0; n < demux->n_streams; n++) {
-                  QtDemuxStream *stream = demux->streams[n];
-                  gst_qtdemux_configure_stream (demux, stream);
-                }
+              for (n = 0; n < demux->n_streams; n++) {
+                QtDemuxStream *stream = demux->streams[n];
+
+                gst_qtdemux_configure_stream (demux, stream);
               }
-              gst_qtdemux_check_send_pending_segment (demux);
-              demux->pending_configure = FALSE;
-            } else {
-              demux->pending_configure = TRUE;
             }
 
             demux->got_moov = TRUE;
+            gst_qtdemux_check_send_pending_segment (demux);
 
             /* fragmented streams headers shouldn't contain edts atoms */
             if (!demux->fragmented) {
@@ -5912,7 +6004,6 @@
             guint64 dist = 0;
             GstClockTime prev_pts;
             guint64 prev_offset;
-            gint n;
 
             GST_DEBUG_OBJECT (demux, "Parsing [moof]");
 
@@ -5946,25 +6037,17 @@
               ret = GST_FLOW_ERROR;
               goto done;
             }
-            /* in MSS we need to expose the pads after the first moof as we won't get a moov 
-             * Also, fragmented format need to be exposed if a moov have no valid sample data */
-            if (demux->mss_mode || demux->pending_configure) {
-              if (!demux->exposed) {
-                if (!demux->pending_newsegment) {
-                  GstSegment segment;
-                  gst_segment_init (&segment, GST_FORMAT_TIME);
-                  GST_DEBUG_OBJECT (demux, "new pending_newsegment");
-                  demux->pending_newsegment = gst_event_new_segment (&segment);
-                }
-                qtdemux_expose_streams (demux);
-              } else {
-                for (n = 0; n < demux->n_streams; n++) {
-                  QtDemuxStream *stream = demux->streams[n];
-                  gst_qtdemux_configure_stream (demux, stream);
-                }
+            /* in MSS we need to expose the pads after the first moof as we won't get a moov */
+            if (demux->mss_mode && !demux->exposed) {
+              if (!demux->pending_newsegment) {
+                GST_DEBUG_OBJECT (demux, "new pending_newsegment");
+                demux->pending_newsegment =
+                    gst_event_new_segment (&demux->segment);
+                if (demux->segment_seqnum)
+                  gst_event_set_seqnum (demux->pending_newsegment,
+                      demux->segment_seqnum);
               }
-              gst_qtdemux_check_send_pending_segment (demux);
-              demux->pending_configure = FALSE;
+              qtdemux_expose_streams (demux);
             }
           } else {
             GST_DEBUG_OBJECT (demux, "Discarding [moof]");
@@ -6994,6 +7077,8 @@
   if (stream->subtype == FOURCC_vide) {
     /* fps is calculated base on the duration of the average framerate since
      * qt does not have a fixed framerate. */
+    gboolean fps_available = TRUE;
+
     if ((stream->n_samples == 1) && (stream->first_duration == 0)) {
       /* still frame */
       stream->fps_n = 0;
@@ -7002,6 +7087,7 @@
       if (stream->duration == 0 || stream->n_samples < 2) {
         stream->fps_n = stream->timescale;
         stream->fps_d = 1;
+        fps_available = FALSE;
       } else {
         GstClockTime avg_duration;
         guint64 duration;
@@ -7034,10 +7120,11 @@
 
         gst_video_guess_framerate (avg_duration, &stream->fps_n,
             &stream->fps_d);
+
+        GST_DEBUG_OBJECT (qtdemux,
+            "Calculating framerate, timescale %u gave fps_n %d fps_d %d",
+            stream->timescale, stream->fps_n, stream->fps_d);
       }
-      GST_DEBUG_OBJECT (qtdemux,
-          "Calculating framerate, timescale %u gave fps_n %d fps_d %d",
-          stream->timescale, stream->fps_n, stream->fps_d);
     }
 
     if (stream->caps) {
@@ -7045,8 +7132,13 @@
 
       gst_caps_set_simple (stream->caps,
           "width", G_TYPE_INT, stream->width,
-          "height", G_TYPE_INT, stream->height,
-          "framerate", GST_TYPE_FRACTION, stream->fps_n, stream->fps_d, NULL);
+          "height", G_TYPE_INT, stream->height, NULL);
+
+      /* set framerate if calculated framerate is reliable */
+      if (fps_available) {
+        gst_caps_set_simple (stream->caps,
+            "framerate", GST_TYPE_FRACTION, stream->fps_n, stream->fps_d, NULL);
+      }
 
       /* calculate pixel-aspect-ratio using display width and height */
       GST_DEBUG_OBJECT (qtdemux,
@@ -8094,10 +8186,11 @@
   if ((edts = qtdemux_tree_get_child_by_type (trak, FOURCC_edts))) {
     GNode *elst;
     gint n_segments;
-    gint i, count;
+    gint i, count, entry_size;
     guint64 time;
     GstClockTime stime;
     guint8 *buffer;
+    guint8 version;
 
     GST_DEBUG_OBJECT (qtdemux, "looking for edit list");
     if (!(elst = qtdemux_tree_get_child_by_type (edts, FOURCC_elst)))
@@ -8105,6 +8198,9 @@
 
     buffer = elst->data;
 
+    version = QT_UINT8 (buffer + 8);
+    entry_size = (version == 1) ? 20 : 12;
+
     n_segments = QT_UINT32 (buffer + 12);
 
     /* we might allocate a bit too much, at least allocate 1 segment */
@@ -8117,14 +8213,24 @@
     for (i = 0; i < n_segments; i++) {
       guint64 duration;
       guint64 media_time;
+      gboolean time_valid = TRUE;
       QtDemuxSegment *segment;
       guint32 rate_int;
       GstClockTime media_start = GST_CLOCK_TIME_NONE;
 
-      media_time = QT_UINT32 (buffer + 20 + i * 12);
-      duration = QT_UINT32 (buffer + 16 + i * 12);
+      if (version == 1) {
+        media_time = QT_UINT64 (buffer + 24 + i * entry_size);
+        duration = QT_UINT64 (buffer + 16 + i * entry_size);
+        if (media_time == G_MAXUINT64)
+          time_valid = FALSE;
+      } else {
+        media_time = QT_UINT32 (buffer + 20 + i * entry_size);
+        duration = QT_UINT32 (buffer + 16 + i * entry_size);
+        if (media_time == G_MAXUINT32)
+          time_valid = FALSE;
+      }
 
-      if (media_time != G_MAXUINT32)
+      if (time_valid)
         media_start = QTSTREAMTIME_TO_GSTTIME (stream, media_time);
 
       segment = &stream->segments[count++];
@@ -8140,7 +8246,7 @@
         /* zero duration does not imply media_start == media_stop
          * but, only specify media_start.*/
         stime = QTTIME_TO_GSTTIME (qtdemux, qtdemux->duration);
-        if (GST_CLOCK_TIME_IS_VALID (stime) && media_time != G_MAXUINT32
+        if (GST_CLOCK_TIME_IS_VALID (stime) && time_valid
             && stime >= media_start) {
           segment->duration = stime - media_start;
         } else {
@@ -8151,7 +8257,7 @@
 
       segment->trak_media_start = media_time;
       /* media_time expressed in stream timescale */
-      if (media_time != G_MAXUINT32) {
+      if (time_valid) {
         segment->media_start = media_start;
         segment->media_stop = segment->media_start + segment->duration;
         media_segments_count++;
@@ -8159,7 +8265,8 @@
         segment->media_start = GST_CLOCK_TIME_NONE;
         segment->media_stop = GST_CLOCK_TIME_NONE;
       }
-      rate_int = GST_READ_UINT32_BE (buffer + 24 + i * 12);
+      rate_int =
+          QT_UINT32 (buffer + ((version == 1) ? 32 : 24) + i * entry_size);
 
       if (rate_int <= 1) {
         /* 0 is not allowed, some programs write 1 instead of the floating point
@@ -10669,8 +10776,13 @@
 
   for (iter = oldpads; iter; iter = g_slist_next (iter)) {
     GstPad *oldpad = iter->data;
+    GstEvent *event;
 
-    gst_pad_push_event (oldpad, gst_event_new_eos ());
+    event = gst_event_new_eos ();
+    if (qtdemux->segment_seqnum)
+      gst_event_set_seqnum (event, qtdemux->segment_seqnum);
+
+    gst_pad_push_event (oldpad, event);
     gst_pad_set_active (oldpad, FALSE);
     gst_element_remove_pad (GST_ELEMENT (qtdemux), oldpad);
     gst_flow_combiner_remove_pad (qtdemux->flowcombiner, oldpad);
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index 165435c..0b9a4f3 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -89,7 +89,6 @@
   gboolean posted_redirect;
 
   /* push based variables */
-  gboolean pending_configure;
   guint neededbytes;
   guint todrop;
   GstAdapter *adapter;
@@ -118,6 +117,7 @@
   /* configured playback region */
   GstSegment segment;
   GstEvent *pending_newsegment;
+  guint32 segment_seqnum;
   gboolean upstream_format_is_time; /* qtdemux received upstream
                                      * newsegment in TIME format which likely
                                      * means that upstream is driving the pipeline
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 391e274..c82d84e 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -2228,6 +2228,7 @@
     demux->to_time = demux->common.segment.position;
   else
     demux->to_time = GST_CLOCK_TIME_NONE;
+  demux->segment_seqnum = seqnum;
   GST_OBJECT_UNLOCK (demux);
 
   /* restart our task since it might have been stopped when we did the
@@ -2753,8 +2754,6 @@
 {
   gint stream_nr;
 
-  GST_OBJECT_LOCK (demux);
-
   g_assert (demux->common.num_streams == demux->common.src->len);
   for (stream_nr = 0; stream_nr < demux->common.src->len; stream_nr++) {
     GstMatroskaTrackContext *stream;
@@ -2779,7 +2778,6 @@
     }
   }
 
-  GST_OBJECT_UNLOCK (demux);
 }
 
 static GstFlowReturn
@@ -4734,6 +4732,8 @@
       }
 
       if (demux->common.segment.flags & GST_SEEK_FLAG_SEGMENT) {
+        GstEvent *event;
+        GstMessage *msg;
         gint64 stop;
 
         /* for segment playback we need to post when (in stream time)
@@ -4742,11 +4742,16 @@
           stop = demux->last_stop_end;
 
         GST_LOG_OBJECT (demux, "Sending segment done, at end of segment");
-        gst_element_post_message (GST_ELEMENT (demux),
-            gst_message_new_segment_done (GST_OBJECT (demux), GST_FORMAT_TIME,
-                stop));
-        gst_matroska_demux_send_event (demux,
-            gst_event_new_segment_done (GST_FORMAT_TIME, stop));
+        msg = gst_message_new_segment_done (GST_OBJECT (demux), GST_FORMAT_TIME,
+            stop);
+        if (demux->segment_seqnum)
+          gst_message_set_seqnum (msg, demux->segment_seqnum);
+        gst_element_post_message (GST_ELEMENT (demux), msg);
+
+        event = gst_event_new_segment_done (GST_FORMAT_TIME, stop);
+        if (demux->segment_seqnum)
+          gst_event_set_seqnum (event, demux->segment_seqnum);
+        gst_matroska_demux_send_event (demux, event);
       } else {
         push_eos = TRUE;
       }
@@ -4757,9 +4762,14 @@
       push_eos = TRUE;
     }
     if (push_eos) {
+      GstEvent *event;
+
       /* send EOS, and prevent hanging if no streams yet */
       GST_LOG_OBJECT (demux, "Sending EOS, at end of stream");
-      if (!gst_matroska_demux_send_event (demux, gst_event_new_eos ()) &&
+      event = gst_event_new_eos ();
+      if (demux->segment_seqnum)
+        gst_event_set_seqnum (event, demux->segment_seqnum);
+      if (!gst_matroska_demux_send_event (demux, event) &&
           (ret == GST_FLOW_EOS)) {
         GST_ELEMENT_ERROR (demux, STREAM, DEMUX,
             (NULL), ("got eos but no streams (yet)"));
diff --git a/gst/multifile/gstsplitmuxpartreader.c b/gst/multifile/gstsplitmuxpartreader.c
index 2ba5e00..5e98166 100644
--- a/gst/multifile/gstsplitmuxpartreader.c
+++ b/gst/multifile/gstsplitmuxpartreader.c
@@ -737,8 +737,11 @@
   /* Look up or create the output pad */
   if (reader->get_pad_cb)
     out_pad = reader->get_pad_cb (reader, pad, reader->cb_data);
-  if (out_pad == NULL)
+  if (out_pad == NULL) {
+    GST_DEBUG_OBJECT (reader,
+        "No output pad for %" GST_PTR_FORMAT ". Ignoring", pad);
     return;
+  }
 
   /* Create our proxy pad to interact with this new pad */
   proxy_pad = gst_splitmux_part_reader_new_proxy_pad (reader, out_pad);
@@ -911,16 +914,16 @@
     return;
   }
 
-  gst_element_set_locked_state (demux, TRUE);
-  gst_bin_add (GST_BIN_CAST (reader), demux);
-  gst_element_link_pads (reader->typefind, "src", demux, NULL);
-  gst_element_sync_state_with_parent (reader->demux);
-  gst_element_set_locked_state (demux, FALSE);
-
   /* Connect to demux signals */
   g_signal_connect (demux,
       "pad-added", G_CALLBACK (new_decoded_pad_added_cb), reader);
   g_signal_connect (demux, "no-more-pads", G_CALLBACK (no_more_pads), reader);
+
+  gst_element_set_locked_state (demux, TRUE);
+  gst_bin_add (GST_BIN_CAST (reader), demux);
+  gst_element_link_pads (reader->typefind, "src", demux, NULL);
+  gst_element_set_state (reader->demux, GST_STATE_TARGET (reader));
+  gst_element_set_locked_state (demux, FALSE);
 }
 
 static void
diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c
index e547cbe..ae9b7e8 100644
--- a/gst/multifile/gstsplitmuxsink.c
+++ b/gst/multifile/gstsplitmuxsink.c
@@ -248,6 +248,7 @@
   splitmux->max_files = DEFAULT_MAX_FILES;
 
   GST_OBJECT_FLAG_SET (splitmux, GST_ELEMENT_FLAG_SINK);
+  g_object_set (splitmux, "async-handling", TRUE, NULL);
 }
 
 static void
@@ -590,7 +591,7 @@
   GstSplitMuxSink *splitmux = ctx->splitmux;
   MqStreamBuf *buf_info = NULL;
 
-  GST_LOG_OBJECT (pad, "Fired probe type 0x%x\n", info->type);
+  GST_LOG_OBJECT (pad, "Fired probe type 0x%x", info->type);
 
   /* FIXME: Handle buffer lists, until then make it clear they won't work */
   if (info->type & GST_PAD_PROBE_TYPE_BUFFER_LIST) {
@@ -755,13 +756,17 @@
 start_next_fragment (GstSplitMuxSink * splitmux)
 {
   /* 1 change to new file */
+  gst_element_set_locked_state (splitmux->muxer, TRUE);
+  gst_element_set_locked_state (splitmux->active_sink, TRUE);
   gst_element_set_state (splitmux->muxer, GST_STATE_NULL);
   gst_element_set_state (splitmux->active_sink, GST_STATE_NULL);
 
   set_next_filename (splitmux);
 
-  gst_element_sync_state_with_parent (splitmux->active_sink);
-  gst_element_sync_state_with_parent (splitmux->muxer);
+  gst_element_set_state (splitmux->active_sink, GST_STATE_TARGET (splitmux));
+  gst_element_set_state (splitmux->muxer, GST_STATE_TARGET (splitmux));
+  gst_element_set_locked_state (splitmux->muxer, FALSE);
+  gst_element_set_locked_state (splitmux->active_sink, FALSE);
 
   g_list_foreach (splitmux->contexts, (GFunc) restart_context, splitmux);
 
@@ -942,6 +947,11 @@
     }
   }
 
+  /* If upstream reached EOS we are not expecting more data, no need to wait
+   * here. */
+  if (ctx->in_eos)
+    return;
+
   /* Some pad is not yet ready, or GOP is being pushed
    * either way, sleep and wait to get woken */
   current_max_in_running_time = splitmux->max_in_running_time;
diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c
index 2791ef4..964a090 100644
--- a/gst/rtp/gstrtpj2kpay.c
+++ b/gst/rtp/gstrtpj2kpay.c
@@ -502,6 +502,7 @@
     offset = pos;
   } while (offset < map.size);
 
+  gst_buffer_unmap (buffer, &map);
   gst_buffer_unref (buffer);
 
   /* push the whole buffer list at once */
diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c
index c804aea..d968781 100644
--- a/gst/rtp/gstrtpjpegdepay.c
+++ b/gst/rtp/gstrtpjpegdepay.c
@@ -531,6 +531,13 @@
   width = payload[6] * 8;
   height = payload[7] * 8;
 
+  /* saw a packet with fragment offset > 0 and we don't already have data queued
+   * up (most importantly, we don't have a header for this data) -- drop it
+   * XXX: maybe we can check if the jpeg is progressive and salvage the data?
+   * XXX: not implemented yet because jpegenc can't create progressive jpegs */
+  if (frag_offset > 0 && gst_adapter_available (rtpjpegdepay->adapter) == 0)
+    goto no_header_packet;
+
   /* allow frame dimensions > 2040, passed in SDP session or media attributes
    * from gstrtspsrc.c (gst_rtspsrc_sdp_attributes_to_caps), or in caps */
   if (!width)
@@ -747,6 +754,12 @@
         gst_adapter_available (rtpjpegdepay->adapter));
     return NULL;
   }
+no_header_packet:
+  {
+    GST_WARNING_OBJECT (rtpjpegdepay,
+        "discarding data packets received when we have no header");
+    return NULL;
+  }
 }
 
 
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 610eff2..e201723 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -1227,11 +1227,12 @@
 
 static gboolean
 gst_jitter_buffer_sink_parse_caps (GstRtpJitterBuffer * jitterbuffer,
-    GstCaps * caps)
+    GstCaps * caps, gint pt)
 {
   GstRtpJitterBufferPrivate *priv;
   GstStructure *caps_struct;
   guint val;
+  gint payload = -1;
   GstClockTime tval;
 
   priv = jitterbuffer->priv;
@@ -1239,7 +1240,19 @@
   /* first parse the caps */
   caps_struct = gst_caps_get_structure (caps, 0);
 
-  GST_DEBUG_OBJECT (jitterbuffer, "got caps");
+  GST_DEBUG_OBJECT (jitterbuffer, "got caps %" GST_PTR_FORMAT, caps);
+
+  if (gst_structure_get_int (caps_struct, "payload", &payload) && pt != -1
+      && payload != pt) {
+    GST_ERROR_OBJECT (jitterbuffer,
+        "Got caps with wrong payload type (got %d, expected %d)", payload, pt);
+    return FALSE;
+  }
+
+  if (payload != -1) {
+    GST_DEBUG_OBJECT (jitterbuffer, "Got payload type %d", payload);
+    priv->last_pt = payload;
+  }
 
   /* we need a clock-rate to convert the rtp timestamps to GStreamer time and to
    * measure the amount of data in the buffer */
@@ -1542,7 +1555,7 @@
       GstCaps *caps;
 
       gst_event_parse_caps (event, &caps);
-      gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps);
+      gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps, -1);
       break;
     }
     case GST_EVENT_SEGMENT:
@@ -1714,7 +1727,7 @@
   if (!caps)
     goto no_caps;
 
-  res = gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps);
+  res = gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps, pt);
   gst_caps_unref (caps);
 
   if (G_UNLIKELY (!res))
@@ -1982,6 +1995,30 @@
   return delay;
 }
 
+/* Check if packet with seqnum is already considered definitely lost by being
+ * part of a "lost timer" for multiple packets */
+static gboolean
+already_lost (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum)
+{
+  GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
+  gint i, len;
+
+  len = priv->timers->len;
+  for (i = 0; i < len; i++) {
+    TimerData *test = &g_array_index (priv->timers, TimerData, i);
+    gint gap = gst_rtp_buffer_compare_seqnum (test->seqnum, seqnum);
+
+    if (test->num > 1 && test->type == TIMER_TYPE_LOST && gap >= 0 &&
+        gap < test->num) {
+      GST_DEBUG ("seqnum #%d already considered definitely lost (#%d->#%d)",
+          seqnum, test->seqnum, (test->seqnum + test->num - 1) & 0xffff);
+      return TRUE;
+    }
+  }
+
+  return FALSE;
+}
+
 /* we just received a packet with seqnum and dts.
  *
  * First check for old seqnum that we are still expecting. If the gap with the
@@ -2188,7 +2225,7 @@
     GST_DEBUG_OBJECT (jitterbuffer,
         "lost packets (%d, #%d->#%d) duration too large %" GST_TIME_FORMAT
         " > %" GST_TIME_FORMAT ", consider %u lost (%" GST_TIME_FORMAT ")",
-        gap, expected, seqnum, GST_TIME_ARGS (total_duration),
+        gap, expected, seqnum - 1, GST_TIME_ARGS (total_duration),
         GST_TIME_ARGS (priv->latency_ns), lost_packets,
         GST_TIME_ARGS (gap_time));
 
@@ -2481,7 +2518,7 @@
     /* Try to get the clock-rate from the caps first if we can. If there are no
      * caps we must fire the signal to get the clock-rate. */
     if ((caps = gst_pad_get_current_caps (pad))) {
-      gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps);
+      gst_jitter_buffer_sink_parse_caps (jitterbuffer, caps, pt);
       gst_caps_unref (caps);
     }
   }
@@ -2700,6 +2737,9 @@
       goto too_late;
   }
 
+  if (already_lost (jitterbuffer, seqnum))
+    goto already_lost;
+
   /* let's drop oldest packet if the queue is already full and drop-on-latency
    * is set. We can only do this when there actually is a latency. When no
    * latency is set, we just pump it in the queue and let the other end push it
@@ -2816,6 +2856,14 @@
     gst_buffer_unref (buffer);
     goto finished;
   }
+already_lost:
+  {
+    GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d too late as it was already "
+        "considered lost", seqnum);
+    priv->num_late++;
+    gst_buffer_unref (buffer);
+    goto finished;
+  }
 duplicate:
   {
     GST_DEBUG_OBJECT (jitterbuffer, "Duplicate packet #%d detected, dropping",
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index 75908c0..c1bfdd3 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -726,6 +726,7 @@
   GValue source_stats_v = G_VALUE_INIT;
   guint size;
 
+  RTP_SESSION_LOCK (sess);
   s = gst_structure_new ("application/x-rtp-session-stats",
       "rtx-drop-count", G_TYPE_UINT, sess->stats.nacks_dropped,
       "sent-nack-count", G_TYPE_UINT, sess->stats.nacks_sent,
@@ -735,6 +736,7 @@
   source_stats = g_value_array_new (size);
   g_hash_table_foreach (sess->ssrcs[sess->mask_idx],
       (GHFunc) create_source_stats, source_stats);
+  RTP_SESSION_UNLOCK (sess);
 
   g_value_init (&source_stats_v, G_TYPE_VALUE_ARRAY);
   g_value_take_boxed (&source_stats_v, source_stats);
@@ -2423,21 +2425,18 @@
   for (i = 0; i < count; i++) {
     guint32 ssrc;
     RTPSource *source;
-    gboolean created, prevactive, prevsender;
+    gboolean prevactive, prevsender;
     guint pmembers, members;
 
     ssrc = gst_rtcp_packet_bye_get_nth_ssrc (packet, i);
     GST_DEBUG ("SSRC: %08x", ssrc);
 
     /* find src and mark bye, no probation when dealing with RTCP */
-    source = obtain_source (sess, ssrc, &created, pinfo, FALSE);
-    if (!source)
-      return;
-
-    if (source->internal) {
-      /* our own source, something weird with this packet */
-      g_object_unref (source);
-      continue;
+    source = find_source (sess, ssrc);
+    if (!source || source->internal) {
+      GST_DEBUG ("Ignoring suspicious BYE packet (reason: %s)",
+          !source ? "can't find source" : "has internal source SSRC");
+      break;
     }
 
     /* store time for when we need to time out this source */
@@ -2495,12 +2494,7 @@
       }
     }
 
-    if (created)
-      on_new_ssrc (sess, source);
-
     on_bye_ssrc (sess, source);
-
-    g_object_unref (source);
   }
   if (reconsider) {
     RTP_SESSION_UNLOCK (sess);
@@ -2509,6 +2503,7 @@
       sess->callbacks.reconsider (sess, sess->reconsider_user_data);
     RTP_SESSION_LOCK (sess);
   }
+
   g_free (reason);
 }
 
@@ -3982,9 +3977,6 @@
   /* update point-to-point status */
   session_update_ptp (sess);
 
-  /* notify about updated statistics */
-  g_object_notify (G_OBJECT (sess), "stats");
-
   /* see if we need to generate SR or RR packets */
   if (!is_rtcp_time (sess, current_time, &data))
     goto done;
@@ -4024,6 +4016,9 @@
 done:
   RTP_SESSION_UNLOCK (sess);
 
+  /* notify about updated statistics */
+  g_object_notify (G_OBJECT (sess), "stats");
+
   /* push out the RTCP packets */
   while ((output = g_queue_pop_head (&data.output))) {
     gboolean do_not_suppress, empty_buffer;
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 0f265a1..362fed2 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -3930,8 +3930,10 @@
       GST_DEBUG_OBJECT (src, "stream %p, pt %d, caps %" GST_PTR_FORMAT, stream,
           item->pt, caps);
 
-      if (item->pt == stream->default_pt && stream->udpsrc[0]) {
-        g_object_set (stream->udpsrc[0], "caps", caps, NULL);
+      if (item->pt == stream->default_pt) {
+        if (stream->udpsrc[0])
+          g_object_set (stream->udpsrc[0], "caps", caps, NULL);
+        stream->need_caps = TRUE;
       }
     }
   }
@@ -4423,6 +4425,7 @@
               gst_pad_send_event (ostream->channelpad[0],
                   gst_event_new_caps (caps));
           }
+          ostream->need_caps = FALSE;
 
           if (ostream->profile == GST_RTSP_PROFILE_SAVP ||
               ostream->profile == GST_RTSP_PROFILE_SAVPF)
@@ -4486,6 +4489,28 @@
     gst_rtspsrc_push_event (src, gst_event_new_segment (&segment));
   }
 
+  if (stream->need_caps) {
+    GstCaps *caps;
+
+    if ((caps = stream_get_caps_for_pt (stream, stream->default_pt))) {
+      /* only streams that have a connection to the outside world */
+      if (stream->setup) {
+        /* Only need to update the TCP caps here, UDP is already handled */
+        if (stream->channelpad[0]) {
+          if (GST_PAD_IS_SRC (stream->channelpad[0]))
+            gst_pad_push_event (stream->channelpad[0],
+                gst_event_new_caps (caps));
+          else
+            gst_pad_send_event (stream->channelpad[0],
+                gst_event_new_caps (caps));
+        }
+        stream->need_caps = FALSE;
+      }
+    }
+
+    stream->need_caps = FALSE;
+  }
+
   if (stream->discont && !is_rtcp) {
     /* mark first RTP buffer as discont */
     GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
@@ -7139,7 +7164,10 @@
     item->caps = gst_caps_make_writable (item->caps);
     s = gst_caps_get_structure (item->caps, 0);
     gst_structure_remove_fields (s, "clock-base", "seqnum-base", NULL);
+    if (item->pt == stream->default_pt && stream->udpsrc[0])
+      g_object_set (stream->udpsrc[0], "caps", item->caps, NULL);
   }
+  stream->need_caps = TRUE;
 }
 
 static GstRTSPResult
@@ -7772,6 +7800,16 @@
       ret = GST_STATE_CHANGE_SUCCESS;
       break;
     default:
+      /* Otherwise it's success, we don't want to return spurious
+       * NO_PREROLL or ASYNC from internal elements as we care for
+       * state changes ourselves here
+       *
+       * This is to catch PAUSED->PAUSED and PLAYING->PLAYING transitions.
+       */
+      if (GST_STATE_TRANSITION_NEXT (transition) == GST_STATE_PAUSED)
+        ret = GST_STATE_CHANGE_NO_PREROLL;
+      else
+        ret = GST_STATE_CHANGE_SUCCESS;
       break;
   }
 
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index 0781884..e317c56 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -103,6 +103,7 @@
   gboolean      skipped;
   gboolean      eos;
   gboolean      discont;
+  gboolean      need_caps;
 
   /* for interleaved mode */
   guint8        channel[2];
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index 905e3fd..4c925f2 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -1312,7 +1312,7 @@
 
   if (sink->socket_v6) {
     GST_DEBUG_OBJECT (sink, "using configured IPv6 socket");
-    g_return_val_if_fail (g_socket_get_family (sink->socket) !=
+    g_return_val_if_fail (!sink->socket || g_socket_get_family (sink->socket) !=
         G_SOCKET_FAMILY_IPV6, FALSE);
 
     if (sink->used_socket_v6 && sink->used_socket_v6 != sink->socket_v6) {
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index 1525b05..106c67c 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -942,20 +942,10 @@
 
     GST_DEBUG_OBJECT (src, "binding on port %d", src->port);
 
-    /* On Windows it's not possible to bind to a multicast address
-     * but the OS will make sure to filter out all packets that
-     * arrive not for the multicast address the socket joined.
-     *
-     * On Linux and others it is necessary to bind to a multicast
-     * address to let the OS filter out all packets that are received
-     * on the same port but for different addresses than the multicast
-     * address
-     */
-#ifdef G_OS_WIN32
+    /* For multicast, bind to ANY and join the multicast group later */
     if (g_inet_address_get_is_multicast (addr))
       bind_addr = g_inet_address_new_any (g_inet_address_get_family (addr));
     else
-#endif
       bind_addr = G_INET_ADDRESS (g_object_ref (addr));
 
     g_object_unref (addr);
@@ -981,25 +971,22 @@
     if (!local_addr)
       goto getsockname_error;
 
-    /* See above for the reasons. Without this we would behave different on
-     * Windows and Linux, joining multicast groups below for provided sockets
-     * on Linux but not on Windows
-     */
-#ifdef G_OS_WIN32
     addr = gst_udpsrc_resolve (src, src->address);
     if (!addr)
       goto name_resolve;
 
+    /* If bound to ANY and address points to a multicast address, make
+     * sure that address is not overridden with ANY but we have the
+     * opportunity later to join the multicast address. This ensures that we
+     * have the same behaviour as for sockets created by udpsrc */
     if (!src->auto_multicast ||
         !g_inet_address_get_is_any (g_inet_socket_address_get_address
             (local_addr))
         || !g_inet_address_get_is_multicast (addr)) {
       g_object_unref (addr);
-#endif
       if (src->addr)
         g_object_unref (src->addr);
       src->addr = local_addr;
-#ifdef G_OS_WIN32
     } else {
       g_object_unref (local_addr);
       if (src->addr)
@@ -1008,7 +995,6 @@
           G_INET_SOCKET_ADDRESS (g_inet_socket_address_new (addr, src->port));
       g_object_unref (addr);
     }
-#endif
   }
 
   {
diff --git a/po/af.gmo b/po/af.gmo
index 26c39a7..1096f00 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index 4f17087..274e27e 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-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index 6e9a335..ebfa36e 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index ff6c60b..fe9e1de 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-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index 4f202da..d466bf1 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index 70fa607..49850dd 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\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 12f55ee..895ec9f 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index 397588f..72cc7a4 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 6df8ae6..138c84f 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 6bc42e6..800d129 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-27 16:40+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 73a3a39..0bd9643 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 5346e9f..15148ff 100644
--- a/po/da.po
+++ b/po/da.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-03-27 23:54+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
diff --git a/po/de.gmo b/po/de.gmo
index 5a9cde3..0390ebd 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 81051a9..83b3994 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-22 23:42+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 0dee157..3b37aaf 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index c6a69fc..7c3006b 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2012-05-05 19:05+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 e79967e..4c10bd5 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 cfa1973..6363a7a 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-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index 2e691b0..1e0da0b 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index b253f4e..e6b3de4 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2011-06-04 21:48+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 518f513..4e1780e 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index f01e92c..0adc3a8 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2011-02-12 18:30+0100\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 e891514..ca2b9ff 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index d46e77a..9016d9b 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.18.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2010-03-25 12:37+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 780c0c8..49eb297 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index cee1bf6..dd9a749 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2010-11-17 23:03+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 3b73106..1acd5f5 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 332fd7f..c039822 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-20 16:27+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index bbfd2c9..01969b0 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index 8b2a1b9..d04aeab 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2012-12-15 03:46+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index da0b1d7..fcb59e1 100644
--- a/po/gst-plugins-good-1.0.pot
+++ b/po/gst-plugins-good-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.8.1\n"
+"Project-Id-Version: gst-plugins-good 1.8.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,10 +20,10 @@
 msgid "Jack server not found"
 msgstr ""
 
-#: ext/jpeg/gstjpegdec.c:917 ext/jpeg/gstjpegdec.c:1183
-#: ext/jpeg/gstjpegdec.c:1195 ext/jpeg/gstjpegdec.c:1224
-#: ext/jpeg/gstjpegdec.c:1233 ext/jpeg/gstjpegdec.c:1242
-#: ext/jpeg/gstjpegdec.c:1250
+#: ext/jpeg/gstjpegdec.c:915 ext/jpeg/gstjpegdec.c:1181
+#: ext/jpeg/gstjpegdec.c:1193 ext/jpeg/gstjpegdec.c:1222
+#: ext/jpeg/gstjpegdec.c:1231 ext/jpeg/gstjpegdec.c:1240
+#: ext/jpeg/gstjpegdec.c:1248
 msgid "Failed to decode JPEG image"
 msgstr ""
 
@@ -66,47 +66,47 @@
 msgid "Server sent bad data."
 msgstr ""
 
-#: gst/avi/gstavidemux.c:5690
+#: gst/avi/gstavidemux.c:5705
 msgid "Internal data stream error."
 msgstr ""
 
-#: gst/avi/gstavimux.c:1819
+#: gst/avi/gstavimux.c:1828
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:645 gst/isomp4/qtdemux.c:649
+#: gst/isomp4/qtdemux.c:648 gst/isomp4/qtdemux.c:652
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:695 gst/isomp4/qtdemux.c:5748 gst/isomp4/qtdemux.c:5815
-#: gst/isomp4/qtdemux.c:6084
+#: gst/isomp4/qtdemux.c:698 gst/isomp4/qtdemux.c:5845 gst/isomp4/qtdemux.c:5912
+#: gst/isomp4/qtdemux.c:6167
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2495
+#: gst/isomp4/qtdemux.c:2504
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3581 gst/isomp4/qtdemux.c:6817
-#: gst/isomp4/qtdemux.c:6824 gst/isomp4/qtdemux.c:7637
-#: gst/isomp4/qtdemux.c:8066 gst/isomp4/qtdemux.c:8073
-#: gst/isomp4/qtdemux.c:10423
+#: gst/isomp4/qtdemux.c:3604 gst/isomp4/qtdemux.c:6900
+#: gst/isomp4/qtdemux.c:6907 gst/isomp4/qtdemux.c:7729
+#: gst/isomp4/qtdemux.c:8158 gst/isomp4/qtdemux.c:8165
+#: gst/isomp4/qtdemux.c:10530
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3823
+#: gst/isomp4/qtdemux.c:3846
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3901
+#: gst/isomp4/qtdemux.c:3924
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:9032
+#: gst/isomp4/qtdemux.c:9139
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:10464
+#: gst/isomp4/qtdemux.c:10571
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
@@ -115,13 +115,13 @@
 msgid "Internal data flow error."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:6381
+#: gst/rtsp/gstrtspsrc.c:6406
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:6386
+#: gst/rtsp/gstrtspsrc.c:6411
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -266,75 +266,75 @@
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2798
+#: sys/v4l2/gstv4l2object.c:2799
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2806
+#: sys/v4l2/gstv4l2object.c:2807
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2813
+#: sys/v4l2/gstv4l2object.c:2814
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3436 sys/v4l2/gstv4l2object.c:3447
+#: sys/v4l2/gstv4l2object.c:3437 sys/v4l2/gstv4l2object.c:3448
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3453 sys/v4l2/gstv4l2object.c:3465
+#: sys/v4l2/gstv4l2object.c:3454 sys/v4l2/gstv4l2object.c:3466
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3476
+#: sys/v4l2/gstv4l2object.c:3477
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3489
+#: sys/v4l2/gstv4l2object.c:3490
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3500
+#: sys/v4l2/gstv4l2object.c:3501
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3508
+#: sys/v4l2/gstv4l2object.c:3509
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3613
+#: sys/v4l2/gstv4l2object.c:3616
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3619
+#: sys/v4l2/gstv4l2object.c:3622
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3627
+#: sys/v4l2/gstv4l2object.c:3630
 msgid "Video devices uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3634
+#: sys/v4l2/gstv4l2object.c:3637
 msgid "Video devices uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4059
+#: sys/v4l2/gstv4l2object.c:4064
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4065
+#: sys/v4l2/gstv4l2object.c:4070
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4080
+#: sys/v4l2/gstv4l2object.c:4085
 msgid "No downstream pool to import from."
 msgstr ""
 
@@ -368,11 +368,11 @@
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2sink.c:615
+#: sys/v4l2/gstv4l2sink.c:620
 msgid "Failed to allocated required memory."
 msgstr ""
 
-#: sys/v4l2/gstv4l2src.c:510 sys/v4l2/gstv4l2videodec.c:610
+#: sys/v4l2/gstv4l2src.c:543 sys/v4l2/gstv4l2videodec.c:709
 msgid "Failed to allocate required memory."
 msgstr ""
 
@@ -396,11 +396,11 @@
 msgid "Encoder on device %s has no supported output format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:624
+#: sys/v4l2/gstv4l2videodec.c:723
 msgid "Failed to start decoding thread."
 msgstr ""
 
-#: sys/v4l2/gstv4l2videodec.c:632
+#: sys/v4l2/gstv4l2videodec.c:731
 msgid "Failed to process frame."
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 3fc43cd..437abd0 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 0618c48..c10dee2 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -1,160 +1,166 @@
 # Translation of gst-plugins-good to Croatian.
 # This file is put in the public domain.
-# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
 #
+# Tomislav Krznar <tomislav.krznar@gmail.com>, 2012.
+# Božidar Putanec <bozidarp@yahoo.com>, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 0.10.28.2\n"
+"Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
-"PO-Revision-Date: 2012-04-16 03:04+0200\n"
-"Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
+"PO-Revision-Date: 2016-05-27 12:47-0700\n"
+"Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
-"Language: \n"
+"Language: hr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "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-Generator: Lokalize 2.0\n"
 
 msgid "Jack server not found"
-msgstr ""
+msgstr "‘Jack’ poslužitelj nije pronađen"
 
 msgid "Failed to decode JPEG image"
-msgstr "Nisam uspio dekodirati JPEG sliku"
+msgstr "Nije uspjelo dekodirati JPEG sliku"
 
 #. TRANSLATORS: 'song title' by 'artist name'
 #, c-format
 msgid "'%s' by '%s'"
-msgstr "„%s” („%s”)"
+msgstr "‘%s’ (‘%s’)"
 
 msgid "Could not connect to server"
-msgstr "Ne mogu se spojiti na poslužitelj"
+msgstr "Spajanje na poslužitelj nije moguće"
 
 msgid "No URL set."
-msgstr "Nije postavljen URL."
+msgstr "URL adresa nije imenovana."
 
 msgid "Server does not support seeking."
-msgstr "Poslužitelj ne podržava traženje"
+msgstr "Poslužitelj ne podržava traženje."
 
 msgid "Could not resolve server name."
-msgstr "Rezolucija imena poslužitelja nije moguća."
+msgstr "Nije moguće razriješiti ime poslužitelja."
 
 msgid "Could not establish connection to server."
-msgstr "Ne mogu ostvariti vezu prema poslužitelju."
+msgstr "Nije moguće uspostaviti vezu s poslužiteljem."
 
 msgid "Secure connection setup failed."
-msgstr "Postavljanje sigurne veze nije uspjelo."
+msgstr "Uspostavljanje sigurne veze nije uspjelo."
 
-#, fuzzy
 msgid ""
 "A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
-"Dogodila se greška mreže, ili je poslužitelj neočekivano zatvorio vezu."
+"Dogodila se mrežna greška, ili je poslužitelj neočekivano zatvorio vezu."
 
 msgid "Server sent bad data."
 msgstr "Poslužitelj je poslao neispravne podatke."
 
 msgid "Internal data stream error."
-msgstr "Greška unutarnjeg niza podataka."
+msgstr "Interna greška toka (stream) podataka."
 
 msgid "No or invalid input audio, AVI stream will be corrupt."
-msgstr "AVI niz nema ili ima neispravan ulazni zvuk, zbog čega je oštećen."
+msgstr "Nema audio ulaza ili je neispravan, AVI stream će biti iskvaren."
 
 msgid "This file contains no playable streams."
-msgstr "Datoteka ne sadrži nizove koji se mogu reproducirati."
+msgstr "Ova datoteka ne sadrži nijedan upotrebljivi stream (tok podataka)."
 
 msgid "This file is invalid and cannot be played."
 msgstr "Datoteka je neispravna i ne može se reproducirati."
 
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
+"Ovaj stream nije moguće reproducirati jer je kriptiran s PlayReady DRM."
 
 msgid "This file is corrupt and cannot be played."
-msgstr "Datoteka je oštećena i ne može se reproducirati."
+msgstr "Datoteka je iskvarena i ne može se reproducirati."
 
 msgid "Invalid atom size."
-msgstr "Neispravna veličina elementa."
+msgstr "Veličina atoma je neispravna."
 
 msgid "This file is incomplete and cannot be played."
-msgstr "Ova datoteka je nepotpuna i ne može se reproducirati."
+msgstr "Datoteka je nepotpuna i ne može se reproducirati."
 
 msgid "The video in this file might not play correctly."
-msgstr "Videozapis u ovoj datoteci se možda neće ispravno reproducirati."
+msgstr "Video iz ove datoteke se možda neće ispravno reproducirati."
 
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
-msgstr "Ova datoteka sadrži previše nizova. Reproduciram samo prvih %d"
+msgstr ""
+"U ovoj datoteci ima previše streamova (streams). Samo prvih %d će se "
+"reproducirati"
 
 msgid "Internal data flow error."
-msgstr "Greška unutarnjeg toka podataka."
+msgstr "Interna greška protoka podataka."
 
+# https://gstreamer.freedesktop.org/documentation/rtp.html
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
 msgstr ""
-"Nisu pronađeni podržani nizovi. Morate instalirati GStreamer RTSP priključak "
-"proširenja za Real medijske nizove."
+"Nijedan podržani stream nije nađen. Možda ćete morati instalirati GStreamer "
+"RTSP dodatni plugin za Real medijske streamove."
 
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
 "plugin."
 msgstr ""
-"Nisu pronađeni podržani nizovi. Morate dozvoliti više protokola prijenosa "
-"ili vam možda nedostaje odgovarajući GStreamer RTSP priključak proširenja."
+"Nijedan podržani stream nije nađen. Možda ćete morati dopustiti više "
+"prijenosnih protokola ili možda vam nedostaje odgovarajući GStreamer RTSP "
+"dodatni plugin."
 
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Uređaj trenutno koristi "
-"drugi program."
+"Audiouređaj nije moguće otvoriti za reprodukciju. Uređaj trenutačno koristi "
+"neka druga aplikacija."
 
 msgid ""
 "Could not open audio device for playback. You don't have permission to open "
 "the device."
 msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Nemate dozvole za otvaranje "
-"uređaja."
+"Audiouređaj nije moguće otvoriti za reprodukciju. Nemate dopuštenje za "
+"otvaranje uređaja."
 
 msgid "Could not open audio device for playback."
-msgstr "Ne mogu otvoriti zvučni uređaj za reprodukciju."
+msgstr "Audiouređaj nije moguće otvoriti za reprodukciju."
 
 msgid ""
 "Could not open audio device for playback. This version of the Open Sound "
 "System is not supported by this element."
 msgstr ""
-"Ne mogu otvoriti zvučni uređaj za reprodukciju. Ovaj element ne podržava ovu "
-"inačicu Open Sound System sustava."
+"Audiouređaj nije moguće otvoriti za reprodukciju. Ovaj element ne podržava "
+"ovu inačicu Open Sound System."
 
 msgid "Playback is not supported by this audio device."
-msgstr "Ovaj zvučni uređaj ne podržava reprodukciju."
+msgstr "Ovaj audiouređaj ne podržava reprodukciju."
 
 msgid "Audio playback error."
-msgstr "Greška reprodukcije zvuka."
+msgstr "Greška u audio reprodukciji."
 
 msgid "Recording is not supported by this audio device."
-msgstr "Ovaj zvučni uređaj ne podržava snimanje."
+msgstr "Ovaj audiouređaj ne podržava snimanje."
 
 msgid "Error recording from audio device."
-msgstr "Greška snimanja sa zvučnog uređaja."
+msgstr "Greška snimanja s audiouređaja."
 
 msgid ""
 "Could not open audio device for recording. You don't have permission to open "
 "the device."
 msgstr ""
-"Ne mogu otvoriti zvučni uređaj za snimanje. Nemate dozvole za otvaranje "
+"Audiouređaj nije moguće otvoriti za snimanje. Nemate dopuštenje za otvaranje "
 "uređaja."
 
 msgid "Could not open audio device for recording."
-msgstr "Ne mogu otvoriti zvučni uređaj za snimanje."
+msgstr "Audiouređaj nije moguće otvoriti za snimanje."
 
 msgid "CoreAudio device not found"
-msgstr ""
+msgstr "CoreAudio uređaj nije pronađen"
 
 msgid "CoreAudio device could not be opened"
-msgstr ""
+msgstr "CoreAudio uređaj nije moguće otvoriti"
 
 msgid "Record Source"
 msgstr "Izvor snimanja"
@@ -177,13 +183,11 @@
 msgid "AUX 2 In"
 msgstr "AUX 2 ulaz"
 
-#, fuzzy
 msgid "Codec Loopback"
-msgstr "Povratna petlja"
+msgstr "Kodek-povratna petlja"
 
-#, fuzzy
 msgid "SunVTS Loopback"
-msgstr "Povratna petlja"
+msgstr "SunVTS-povratna petlja"
 
 msgid "Volume"
 msgstr "Glasnoća"
@@ -214,226 +218,223 @@
 
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
-msgstr "Greška čitanja %d bajtova s uređaja „%s”."
+msgstr "Greška čitanja %d bajtova s uređaja ‘%s’."
 
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
+"Nije uspjelo nabrojati sve moguće video formate s kojima uređaj ‘%s’ može "
+"raditi"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
-msgstr "Ne mogu mapirati međuspremnike iz uređaja „%s”"
+msgstr "Nije moguće preslikati (map) međuspremnike iz uređaja ‘%s’"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
+msgstr "Upravljački program uređaja ‘%s’ ne podržava IO metodu %d"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
+msgstr ""
+"Upravljački program uređaja ‘%s’ ne podržava nijednu poznatu IO metodu."
 
 #, c-format
 msgid "Device '%s' is busy"
-msgstr ""
+msgstr "Uređaj ‘%s’ je zauzet"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Uređaj „%s” nije uređaj za snimanje."
+msgstr "Uređaj ‘%s’ ne može snimati s razlučivosti od %dx%d"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Uređaj „%s” nije uređaj za snimanje."
+msgstr "Uređaj ‘%s’ ne može snimati u specificiranom formatu."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' does support non-contiguous planes"
-msgstr "Uređaj „%s” nije izlazni uređaj."
+msgstr "Device ‘%s’ ne podržava prekinute ravnine"
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
-msgstr "Nisam uspio dobiti parametre uređaja „%s”"
+msgstr "Parametre uređaja ‘%s’ nije moguće dobiti"
 
-#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Videouređaj nije prihvatio novu frekvenciju slika (ili poluslika)."
 
-#, fuzzy
 msgid "Video device did not provide output format."
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Videouređaj nije predočio izlazni format."
 
 msgid "Video device returned invalid dimensions."
-msgstr ""
+msgstr "Videouređaj je uzvratio s neispravnim dimenzijama."
 
-#, fuzzy
 msgid "Video devices uses an unsupported interlacing method."
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
+msgstr ""
+"Videouređaj koristi nepodržanu metodu poluslika (prored i frekvenciju)."
 
 msgid "Video devices uses an unsupported pixel format."
-msgstr ""
+msgstr "Videouređaj koristi nepodržani format piksela."
 
 msgid "Failed to configure internal buffer pool."
-msgstr ""
+msgstr "Nije uspjelo konfigurirati internu zalihu međuspremnika."
 
-#, fuzzy
 msgid "Video device did not suggest any buffer size."
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Videouređaj nije predložio nijednu veličinu međuspremnika."
 
 msgid "No downstream pool to import from."
-msgstr ""
+msgstr "Nema se od nikuda uvesti ‘downstream’ zaliha."
 
-#, fuzzy, c-format
+# tuner > štelanje frekvencije, mijenjanje (biranje) kanala
+#, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
-msgstr "Nisam uspio dobiti postavke birača %d uređaja „%s”."
+msgstr "Nije uspjelo dobiti postavke tunera %d na uređaj ‘%s’."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Greška čitanja %d bajtova s uređaja „%s”."
+msgstr "Greška pri dobivanju podataka o mogućnostima uređaja ‘%s’."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Uređaj „%s” nije izlazni uređaj."
+msgstr "Uređaj ‘%s’ nije tuner."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Nisam uspio postaviti ulaz %d na uređaj %s."
+msgstr "Nije uspjelo dobiti radijski ulaz na uređaju ‘%s’. "
 
 #, c-format
 msgid "Failed to set input %d on device %s."
-msgstr "Nisam uspio postaviti ulaz %d na uređaj %s."
+msgstr "Nije uspjelo postaviti ulaz %d na uređaj %s."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Nisam uspio dobiti snagu signala za uređaj „%s”."
+msgstr "Nije uspjelo promijeniti status mute (Zvûk (da/ne) za uređaj ‘%s’."
 
 msgid "Failed to allocated required memory."
-msgstr ""
+msgstr "Nije uspjelo izdvojiti potrebnu memoriju."
 
 msgid "Failed to allocate required memory."
-msgstr ""
+msgstr "Nije uspjelo dodijeliti potrebnu memoriju."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Converter on device %s has no supported input format"
-msgstr "Upravljački program uređaja „%s” ne podržava poznate metode snimanja."
+msgstr "Konverter na uređaju %s nema podržani ulazni format"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Converter on device %s has no supported output format"
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Konverter na uređaju %s nema podržani izlazni format"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Encoder on device %s has no supported input format"
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Koder na uređaju %s nema podržani ulazni format"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Encoder on device %s has no supported output format"
-msgstr "Ulazni video uređaj nije prihvatio nove postavke broja okvira."
+msgstr "Koder na uređaju %s nema podržani izlazni format"
 
-#, fuzzy
 msgid "Failed to start decoding thread."
-msgstr "Nisam uspio dekodirati JPEG sliku"
+msgstr "Nije uspjelo započeti dekodiranje niti (thread)."
 
 msgid "Failed to process frame."
-msgstr ""
+msgstr "Nije uspjelo obraditi sliku (polusliku)."
 
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
-"Greška dobivanja mogućnosti uređaja „%s”: To nije v4l2 upravljački program. "
-"Provjerite je li v4l1 upravljački program."
+"Greška pri dobivanja mogućnosti za uređaj ‘%s’: To nije v4l2 upravljački "
+"program. Provjerite da li je v4l1 upravljački program."
 
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
-msgstr "Nisam uspio ispitati svojstva ulaza %d uređaja %s"
+msgstr "Nije uspjelo ispitati svojstva ulaza %d uređaja %s"
 
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
-msgstr "Nisam uspio dobiti postavke birača %d uređaja „%s”."
+msgstr "Nije uspjelo dobiti postavke tunera %d uređaja ‘%s’."
 
 #, c-format
 msgid "Failed to query norm on device '%s'."
-msgstr "Nisam uspio ispitati norm na uređaju „%s”."
+msgstr "Nije uspjelo ispitati normu (standard) na uređaju ‘%s’."
 
 #, c-format
 msgid "Failed getting controls attributes on device '%s'."
-msgstr "Nisam uspio dobiti svojstva upravljanja na uređaju „%s”."
+msgstr "Nije uspjelo dobiti upravljačka svojstva uređaja ‘%s’."
 
 #, c-format
 msgid "Cannot identify device '%s'."
-msgstr "Ne mogu identificirati uređaj „%s”."
+msgstr "Ne može se identificirati uređaj ‘%s’."
 
 #, c-format
 msgid "This isn't a device '%s'."
-msgstr "Ovo nije uređaj „%s”."
+msgstr "Ovo nije uređaj ‘%s’."
 
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
-msgstr "Ne mogu otvoriti uređaj „%s” za čitanje i pisanje."
+msgstr "Uređaj ‘%s’nije moguće otvoriti za čitanje i pisanje."
 
 #, c-format
 msgid "Device '%s' is not a capture device."
-msgstr "Uređaj „%s” nije uređaj za snimanje."
+msgstr "Uređaj ‘%s’ nije uređaj za snimanje."
 
 #, c-format
 msgid "Device '%s' is not a output device."
-msgstr "Uređaj „%s” nije izlazni uređaj."
+msgstr "Uređaj ‘%s’ nije izlazni uređaj."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is not a M2M device."
-msgstr "Uređaj „%s” nije izlazni uređaj."
+msgstr "Uređaj ‘%s’ nije M2M uređaj."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not dup device '%s' for reading and writing."
-msgstr "Ne mogu otvoriti uređaj „%s” za čitanje i pisanje."
+msgstr "Uređaj ‘%s’nije moguće duplicirati za čitanje i pisanje."
 
 #, c-format
 msgid "Failed to set norm for device '%s'."
-msgstr "Nisam uspio postaviti norm za uređaj „%s”."
+msgstr "Nije uspjelo postaviti normu (standard) za uređaj ‘%s’."
 
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
-msgstr "Nisam uspio dobiti trenutnu frekvenciju birača za uređaj „%s”."
+msgstr "Nije uspjelo dobiti trenutačnu frekvenciju tunera za uređaj ‘%s’."
 
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
-"Nisam uspio postaviti trenutnu frekvenciju birača za uređaj „%s” na %lu Hz."
+"Nije uspjelo postaviti trenutačnu frekvenciju tunera za uređaj ‘%s’ na %lu "
+"Hz."
 
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
-msgstr "Nisam uspio dobiti snagu signala za uređaj „%s”."
+msgstr "Nije uspjelo dobiti snagu signala za uređaj ‘%s’."
 
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
-msgstr "Nisam uspio dobiti vrijednost za kontrolu %d na uređaju „%s”."
+msgstr "Nije uspjelo dobiti vrijednost za kontrolu %d na uređaju ‘%s’."
 
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
-msgstr "Nisam uspio postaviti vrijednost %d za kontrolu %d na uređaju „%s”."
+msgstr "Nije uspjelo postaviti vrijednost %d za kontrolu %d na uređaju ‘%s’."
 
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
-"Nisam uspio dobiti trenutni ulaz na uređaju „%s”. Možda je to radio uređaj"
+"Nije uspjelo dobiti trenutačni ulaz na uređaju ‘%s’. Možda je to radiouređaj"
 
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
-"Nisam uspio dobiti trenutni izlaz na uređaju „%s”. Možda je to radio uređaj"
+"Nije uspjelo dobiti trenutačni izlaz na uređaju ‘%s’. Možda je to radiouređaj"
 
 #, c-format
 msgid "Failed to set output %d on device %s."
-msgstr "Nisam uspio postaviti izlaz %d na uređaj %s."
+msgstr "Nije uspjelo postaviti izlaz %d na uređaj %s."
 
 msgid "Changing resolution at runtime is not yet supported."
-msgstr "Promjena rezolucije pri izvođenju još nije podržana."
+msgstr "Promjena rezolucije u tijeku rada (runtime) još nije podržana."
 
 msgid "Cannot operate without a clock"
-msgstr "Ne mogu raditi bez takta"
-
-#, fuzzy
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Uređaj „%s” nije izlazni uređaj."
+msgstr "Ne mogu raditi bez takta (sata)"
 
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Ne mogu ostvariti vezu prema poslužitelju zvuka"
diff --git a/po/hu.gmo b/po/hu.gmo
index 6b5b789..fe2b2a5 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 8fb6b42..f65a266 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-03-14 18:35+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 be8616d..be500c3 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index a5e280a..64d3567 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2014-07-06 21:37+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 c12c186..3a4c85c 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 54d48b8..ef9eb96 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2010-10-25 10:11+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 8945a88..12080e7 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index 05f3441..4708f17 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2012-12-22 20:13+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
diff --git a/po/lt.gmo b/po/lt.gmo
index f315fb2..c47136a 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index cfe7cb2..e663b82 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2010-07-16 19:34+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
diff --git a/po/lv.gmo b/po/lv.gmo
index b911c41..0319a51 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index aba0f63..84ac15e 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2014-04-20 16:38+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
diff --git a/po/mt.gmo b/po/mt.gmo
index 83433e1..97e79fd 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index 25abcd2..d14f2c1 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.10.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2008-10-26 19:09+0100\n"
 "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
 "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
diff --git a/po/nb.gmo b/po/nb.gmo
index 01dfb2c..62faead 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 8d29835..bb5a167 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.6.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2015-12-22 21:12+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
diff --git a/po/nl.gmo b/po/nl.gmo
index 103da20..53473fc 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index a136f39..bf47425 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-20 16:40+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 608f73d..3552c8b 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index 3cb97bd..1e07b3a 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-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 7ef5d58..676e0aa 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index 20ca6da..bdcbb4e 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-20 21:43+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 2a1cf7c..a1b21df 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 628ef46..9c8e73f 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,7 +1,7 @@
 # Brazilian Portuguese translation of gst-plugins-good.
 # This file is distributed under the same license as the gst-plugins-good package.
-# Copyright (C) 2008-2015 Free Software Foundation, Inc.
-# Fabrício Godoy <skarllot@gmail.com>, 2008-2015.
+# Copyright (C) 2008-2016 Free Software Foundation, Inc.
+# Fabrício Godoy <skarllot@gmail.com>, 2008-2016.
 #
 # data flow -> fluxo de dados
 # streaming -> fluxo contínuo
@@ -11,10 +11,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-1.7.1\n"
+"Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
-"PO-Revision-Date: 2015-12-28 19:47-0200\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
+"PO-Revision-Date: 2016-05-06 17:49-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
 "net>\n"
@@ -160,10 +160,10 @@
 msgstr "Não foi possível abrir o dispositivo de áudio para gravação."
 
 msgid "CoreAudio device not found"
-msgstr ""
+msgstr "Dispositivo CoreAudio não encontrado"
 
 msgid "CoreAudio device could not be opened"
-msgstr ""
+msgstr "Dispositivo CoreAudio não pôde ser aberto"
 
 msgid "Record Source"
 msgstr "Origem de gravação"
diff --git a/po/ro.gmo b/po/ro.gmo
index eb2194d..5843436 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index bf2e172..cfab19d 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2010-08-16 03:22+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 ece9712..faf284d 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 98204a2..01e0528 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-21 09:55+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 a2d2650..cec9cc4 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index 891c590..7b8b170 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,22 +1,21 @@
 # Slovak translations for gst-plugins-good.
 # This file is put in the public domain.
 #
-# Peter Tuhársky <tuharsky@misbb.sk>, 2007, 2008, 2009, 2010, 2014.
+# Peter Tuhársky <tuharsky@misbb.sk>, 2007, 2008, 2009, 2010, 2014, 2016.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.2.1\n"
+"Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
-"PO-Revision-Date: 2014-01-30 11:08+0100\n"
-"Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
+"PO-Revision-Date: 2016-05-20 12:31+0100\n"
+"Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
 "Language: sk\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\\n\n"
-"X-Generator: KBabel 1.11.4\n"
-"X-Poedit-Country: SLOVAKIA\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\\n;\n"
+"X-Generator: Poedit 1.6.10\n"
 
 msgid "Jack server not found"
 msgstr "Jack server sa nenašiel"
@@ -47,7 +46,6 @@
 msgid "Secure connection setup failed."
 msgstr "Nastavenie bezpečného pripojenia zlyhalo."
 
-#, fuzzy
 msgid ""
 "A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Vyskytla sa sieťová chyba, alebo server nečakane uzavrel spojenie."
@@ -246,9 +244,9 @@
 msgid "Device '%s' cannot capture in the specified format"
 msgstr "Zariadenie '%s' nedokáže nahrávať v uvedenom formáte"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' does support non-contiguous planes"
-msgstr "Zariadenie '%s' nie je určené pre nahrávanie videa"
+msgstr "Zariadenie '%s' podporuje nespojité roviny"
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
@@ -257,27 +255,23 @@
 msgid "Video device did not accept new frame rate setting."
 msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snímok."
 
-#, fuzzy
 msgid "Video device did not provide output format."
-msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snímok."
+msgstr "ideo zariadenie neposkytlo výstupný formát."
 
 msgid "Video device returned invalid dimensions."
-msgstr ""
+msgstr "Video zariadenie udáva nesprávne rozmery."
 
-#, fuzzy
 msgid "Video devices uses an unsupported interlacing method."
-msgstr "Tento ovládač zariadenia '%s' nepodporuje IO metódu %d"
+msgstr "Video zariadenie používa nepodporovanú metódu prekladania snímok."
 
 msgid "Video devices uses an unsupported pixel format."
-msgstr ""
+msgstr "Video zariadenie používa nepodporovaný formát pixelov."
 
-#, fuzzy
 msgid "Failed to configure internal buffer pool."
-msgstr "Video zariadenie nemohlo vytvoriť oblasť vyrovnávacej pamäte."
+msgstr "Nepodarilo sa nastaviť vnútornú oblasť vyrovnávacej pamäte."
 
-#, fuzzy
 msgid "Video device did not suggest any buffer size."
-msgstr "Video zariadenie nemohlo vytvoriť oblasť vyrovnávacej pamäte."
+msgstr "Video zariadenie neodporučilo žiadnu veľkosť vyrovnávacej pamäte."
 
 msgid "No downstream pool to import from."
 msgstr ""
@@ -307,33 +301,32 @@
 msgstr "Nepodarilo sa zmeniť stav stlmenia pre zariadenie '%s'."
 
 msgid "Failed to allocated required memory."
-msgstr ""
+msgstr "Nepodarilo sa uvoľniť dostatok pamäte."
 
 msgid "Failed to allocate required memory."
-msgstr ""
+msgstr "Nepodarilo sa uvoľniť dostatok pamäte."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Converter on device %s has no supported input format"
-msgstr "Tento ovládač zariadenia '%s' nepodporuje IO metódu %d"
+msgstr "Konvertor na zariadení %s nepodporuje žiadny vstupný formát"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Converter on device %s has no supported output format"
-msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snímok."
+msgstr "Konvertor na zariadení %s nepodporuje žiadny výstupný formát"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Encoder on device %s has no supported input format"
-msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snímok."
+msgstr "Enkodér na zariadení %s nepodporuje žiadny vstupný formát"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Encoder on device %s has no supported output format"
-msgstr "Video zariadenie odmietlo nové nastavenie frekvencie snímok."
+msgstr "Enkodér na zariadení %s nepodporuje žiadny výstupný formát"
 
-#, fuzzy
 msgid "Failed to start decoding thread."
-msgstr "Nepodarilo sa dekódovať obrázok JPEG"
+msgstr "Nepodarilo sa spustiť dekódovacie vlákno."
 
 msgid "Failed to process frame."
-msgstr ""
+msgstr "Nepodarilo sa spracovať snímok."
 
 #, c-format
 msgid ""
@@ -379,11 +372,11 @@
 msgid "Device '%s' is not a output device."
 msgstr "Zariadenie '%s' nie je určené pre výstup."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is not a M2M device."
-msgstr "Zariadenie '%s' nie je určené pre výstup."
+msgstr "Zariadenie '%s' nie je typu M2M."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Could not dup device '%s' for reading and writing."
 msgstr "Nepodarilo sa otvoriť zariadenie '%s' pre čítanie a zápis."
 
@@ -436,9 +429,6 @@
 msgid "Cannot operate without a clock"
 msgstr "Nemôžem fungovať bez hodín"
 
-#~ msgid "Device '%s' does not support video capture"
-#~ msgstr "Zariadenie '%s' nie je určené pre nahrávanie videa"
-
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Nepodarilo sa nadviazať spojenie so zvukovým serverom"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index b00b499..c7318e2 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index 15c1605..ec2020c 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2014-04-09 22:52+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 a5c2839..d90b491 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index 20148b0..713e727 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-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\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 d4e34d7..ebd731f 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 5f6176c..bc51935 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-03-05 09:52+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
diff --git a/po/sv.gmo b/po/sv.gmo
index 1a3e925..0786f85 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index dc63056..10cc946 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-20 16:13+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 385db77..9ae083b 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index 8cb7bf8..f342199 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2015-01-10 21:07+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 0dc6b1d..173490d 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index cf80cb6..04e9c32 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-20 17:27+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 3827676..9963d93 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 40b088b..876761d 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-21 07:25+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 b4324b3..36ab4da 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 0d7284e..b3e818b 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2016-02-21 16:52+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index 4bdbde7..c5bfe5d 100644
--- a/po/zh_HK.gmo
+++ b/po/zh_HK.gmo
Binary files differ
diff --git a/po/zh_HK.po b/po/zh_HK.po
index a8be355..243c2a5 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index a0344fb..c382a13 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 0738aea..bcd0dc0 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-04-20 15:30+0300\n"
+"POT-Creation-Date: 2016-06-09 11:20+0300\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index c9648e2..3184bd8 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -1725,14 +1725,23 @@
 
           if ((*buf)->pool == bpool) {
             guint num_queued;
+            gsize size = gst_buffer_get_size (*buf);
 
-            if (gst_buffer_get_size (*buf) == 0) {
+            if (size == 0) {
               if (GST_BUFFER_FLAG_IS_SET (*buf, GST_BUFFER_FLAG_CORRUPTED))
                 goto buffer_corrupted;
               else
                 goto eos;
             }
 
+            /* verify that buffer contains a full frame for raw video */
+            if (GST_VIDEO_INFO_FORMAT (&obj->info) != GST_VIDEO_FORMAT_ENCODED
+                && size < GST_VIDEO_INFO_SIZE (&obj->info)) {
+              GST_WARNING_OBJECT (pool, "Invalid buffer size, this is likely "
+                  "due to a bug in your driver, dropping");
+              goto buffer_corrupted;
+            }
+
             num_queued = g_atomic_int_get (&pool->num_queued);
             GST_TRACE_OBJECT (pool, "Only %i buffer left in the capture queue.",
                 num_queued);
diff --git a/sys/v4l2/gstv4l2deviceprovider.c b/sys/v4l2/gstv4l2deviceprovider.c
index e606f84..d521838 100644
--- a/sys/v4l2/gstv4l2deviceprovider.c
+++ b/sys/v4l2/gstv4l2deviceprovider.c
@@ -100,7 +100,7 @@
 gst_v4l2_device_provider_probe_device (GstV4l2DeviceProvider * provider,
     const gchar * device_path, const gchar * device_name, GstStructure * props)
 {
-  GstV4l2Object *v4l2obj;
+  GstV4l2Object *v4l2obj = NULL;
   GstCaps *caps;
   GstV4l2Device *device = NULL;
   struct stat st;
@@ -109,10 +109,10 @@
   g_return_val_if_fail (props != NULL, NULL);
 
   if (stat (device_path, &st) == -1)
-    return NULL;
+    goto destroy;
 
   if (!S_ISCHR (st.st_mode))
-    return NULL;
+    goto destroy;
 
   v4l2obj = gst_v4l2_object_new ((GstElement *) provider,
       V4L2_BUF_TYPE_VIDEO_CAPTURE, device_path, NULL, NULL, NULL);
@@ -172,7 +172,8 @@
 
 destroy:
 
-  gst_v4l2_object_destroy (v4l2obj);
+  if (v4l2obj)
+    gst_v4l2_object_destroy (v4l2obj);
 
   if (props)
     gst_structure_free (props);
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 21c16fa..549e06f 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -1661,6 +1661,7 @@
         break;
       case GST_VIDEO_FORMAT_RGB15:
         fourcc = V4L2_PIX_FMT_RGB555;
+        fourcc_nc = V4L2_PIX_FMT_XRGB555;
         break;
       case GST_VIDEO_FORMAT_RGB16:
         fourcc = V4L2_PIX_FMT_RGB565;
@@ -3024,7 +3025,7 @@
 
 static gboolean
 gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
-    gboolean try_only)
+    gboolean try_only, GstV4l2Error * error)
 {
   gint fd = v4l2object->video_fd;
   struct v4l2_format format;
@@ -3432,7 +3433,7 @@
 try_fmt_failed:
   {
     if (errno == EBUSY) {
-      GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, BUSY,
+      GST_V4L2_ERROR (error, RESOURCE, BUSY,
           (_("Device '%s' is busy"), v4l2object->videodev),
           ("Call to TRY_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
               GST_FOURCC_ARGS (pixelformat), width, height,
@@ -3443,13 +3444,13 @@
 set_fmt_failed:
   {
     if (errno == EBUSY) {
-      GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, BUSY,
+      GST_V4L2_ERROR (error, RESOURCE, BUSY,
           (_("Device '%s' is busy"), v4l2object->videodev),
           ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
               GST_FOURCC_ARGS (pixelformat), width, height,
               g_strerror (errno)));
     } else {
-      GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
           (_("Device '%s' cannot capture at %dx%d"),
               v4l2object->videodev, width, height),
           ("Call to S_FMT failed for %" GST_FOURCC_FORMAT " @ %dx%d: %s",
@@ -3461,7 +3462,7 @@
 invalid_dimensions:
   {
     if (!try_only) {
-      GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
           (_("Device '%s' cannot capture at %dx%d"),
               v4l2object->videodev, width, height),
           ("Tried to capture at %dx%d, but device returned size %dx%d",
@@ -3472,7 +3473,7 @@
 invalid_pixelformat:
   {
     if (!try_only) {
-      GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
           (_("Device '%s' cannot capture in the specified format"),
               v4l2object->videodev),
           ("Tried to capture in %" GST_FOURCC_FORMAT
@@ -3485,7 +3486,7 @@
 invalid_planes:
   {
     if (!try_only) {
-      GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
           (_("Device '%s' does support non-contiguous planes"),
               v4l2object->videodev),
           ("Device wants %d planes", format.fmt.pix_mp.num_planes));
@@ -3496,7 +3497,7 @@
   {
     /* it's possible that this call is not supported */
     if (errno != EINVAL && errno != ENOTTY) {
-      GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS,
+      GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
           (_("Could not get parameters on device '%s'"),
               v4l2object->videodev), GST_ERROR_SYSTEM);
     }
@@ -3504,7 +3505,7 @@
   }
 set_parm_failed:
   {
-    GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS,
+    GST_V4L2_ERROR (error, RESOURCE, SETTINGS,
         (_("Video device did not accept new frame rate setting.")),
         GST_ERROR_SYSTEM);
     goto done;
@@ -3517,15 +3518,17 @@
 }
 
 gboolean
-gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps)
+gst_v4l2_object_set_format (GstV4l2Object * v4l2object, GstCaps * caps,
+    GstV4l2Error * error)
 {
-  return gst_v4l2_object_set_format_full (v4l2object, caps, FALSE);
+  return gst_v4l2_object_set_format_full (v4l2object, caps, FALSE, error);
 }
 
 gboolean
-gst_v4l2_object_try_format (GstV4l2Object * v4l2object, GstCaps * caps)
+gst_v4l2_object_try_format (GstV4l2Object * v4l2object, GstCaps * caps,
+    GstV4l2Error * error)
 {
-  return gst_v4l2_object_set_format_full (v4l2object, caps, TRUE);
+  return gst_v4l2_object_set_format_full (v4l2object, caps, TRUE, error);
 }
 
 /**
@@ -3780,9 +3783,11 @@
   }
 
   if (filter) {
+    GstCaps *tmp;
+
+    tmp = ret;
     ret = gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
-  } else {
-    ret = gst_caps_ref (ret);
+    gst_caps_unref (tmp);
   }
 
   return ret;
diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
index e3728c4..7117d43 100644
--- a/sys/v4l2/gstv4l2object.h
+++ b/sys/v4l2/gstv4l2object.h
@@ -25,6 +25,7 @@
 #define __GST_V4L2_OBJECT_H__
 
 #include "ext/videodev2.h"
+#include "v4l2-utils.h"
 
 #include <gst/gst.h>
 #include <gst/base/gstpushsrc.h>
@@ -250,8 +251,8 @@
 gint          gst_v4l2_object_extrapolate_stride (const GstVideoFormatInfo * finfo,
                                                   gint plane, gint stride);
 
-gboolean      gst_v4l2_object_set_format  (GstV4l2Object * v4l2object, GstCaps * caps);
-gboolean      gst_v4l2_object_try_format  (GstV4l2Object * v4l2object, GstCaps * caps);
+gboolean      gst_v4l2_object_set_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error *error);
+gboolean      gst_v4l2_object_try_format  (GstV4l2Object * v4l2object, GstCaps * caps, GstV4l2Error *error);
 
 gboolean      gst_v4l2_object_caps_equal  (GstV4l2Object * v4l2object, GstCaps * caps);
 
diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
index 5ea374b..ae4a3c2 100644
--- a/sys/v4l2/gstv4l2sink.c
+++ b/sys/v4l2/gstv4l2sink.c
@@ -250,7 +250,10 @@
     struct v4l2_format format;
 
     memset (&format, 0x00, sizeof (struct v4l2_format));
-    format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
+    if ( v4l2sink->v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT_OVERLAY )
+		format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY;
+	else
+		format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
 
     if (v4l2_ioctl (fd, VIDIOC_G_FMT, &format) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_G_FMT failed");
@@ -490,6 +493,7 @@
 static gboolean
 gst_v4l2sink_set_caps (GstBaseSink * bsink, GstCaps * caps)
 {
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
   GstV4l2Sink *v4l2sink = GST_V4L2SINK (bsink);
   GstV4l2Object *obj = v4l2sink->v4l2object;
 
@@ -507,7 +511,7 @@
   if (!gst_v4l2_object_stop (obj))
     goto stop_failed;
 
-  if (!gst_v4l2_object_set_format (obj, caps))
+  if (!gst_v4l2_object_set_format (obj, caps, &error))
     goto invalid_format;
 
   gst_v4l2sink_sync_overlay_fields (v4l2sink);
@@ -535,6 +539,7 @@
 invalid_format:
   {
     /* error already posted */
+    gst_v4l2_error (v4l2sink, &error);
     GST_DEBUG_OBJECT (v4l2sink, "can't set format");
     return FALSE;
   }
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index 235eda4..a6d34b1 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -425,6 +425,7 @@
 static gboolean
 gst_v4l2src_set_format (GstV4l2Src * v4l2src, GstCaps * caps)
 {
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
   GstV4l2Object *obj;
 
   obj = v4l2src->v4l2object;
@@ -432,9 +433,10 @@
   g_signal_emit (v4l2src, gst_v4l2_signals[SIGNAL_PRE_SET_FORMAT], 0,
       v4l2src->v4l2object->video_fd, caps);
 
-  if (!gst_v4l2_object_set_format (obj, caps))
-    /* error already posted */
+  if (!gst_v4l2_object_set_format (obj, caps, &error)) {
+    gst_v4l2_error (v4l2src, &error);
     return FALSE;
+  }
 
   return TRUE;
 }
@@ -453,17 +455,20 @@
     return TRUE;
 
   if (GST_V4L2_IS_ACTIVE (obj)) {
+    GstV4l2Error error = GST_V4L2_ERROR_INIT;
     /* Just check if the format is acceptable, once we know
      * no buffers should be outstanding we try S_FMT.
      *
      * Basesrc will do an allocation query that
      * should indirectly reclaim buffers, after that we can
      * set the format and then configure our pool */
-    if (gst_v4l2_object_try_format (obj, caps)) {
+    if (gst_v4l2_object_try_format (obj, caps, &error)) {
       v4l2src->renegotiation_adjust = v4l2src->offset + 1;
       v4l2src->pending_set_fmt = TRUE;
-    } else
+    } else {
+      gst_v4l2_error (v4l2src, &error);
       return FALSE;
+    }
   } else {
     /* make sure we stop capturing and dealloc buffers */
     if (!gst_v4l2_object_stop (obj))
@@ -489,6 +494,34 @@
     ret = gst_v4l2src_set_format (src, caps);
     gst_caps_unref (caps);
     src->pending_set_fmt = FALSE;
+  } else if (gst_buffer_pool_is_active (src->v4l2object->pool)) {
+    /* Trick basesrc into not deactivating the active pool. Renegotiating here
+     * would otherwise turn off and on the camera. */
+    GstAllocator *allocator;
+    GstAllocationParams params;
+    GstBufferPool *pool;
+
+    gst_base_src_get_allocator (bsrc, &allocator, &params);
+    pool = gst_base_src_get_buffer_pool (bsrc);
+
+    if (gst_query_get_n_allocation_params (query))
+      gst_query_set_nth_allocation_param (query, 0, allocator, &params);
+    else
+      gst_query_add_allocation_param (query, allocator, &params);
+
+    if (gst_query_get_n_allocation_pools (query))
+      gst_query_set_nth_allocation_pool (query, 0, pool,
+          src->v4l2object->info.size, 1, 0);
+    else
+      gst_query_add_allocation_pool (query, pool, src->v4l2object->info.size, 1,
+          0);
+
+    if (pool)
+      gst_object_unref (pool);
+    if (allocator)
+      gst_object_unref (allocator);
+
+    return GST_BASE_SRC_CLASS (parent_class)->decide_allocation (bsrc, query);
   }
 
   if (ret) {
diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c
index 342d998..3090ff6 100644
--- a/sys/v4l2/gstv4l2transform.c
+++ b/sys/v4l2/gstv4l2transform.c
@@ -195,6 +195,7 @@
 gst_v4l2_transform_set_caps (GstBaseTransform * trans, GstCaps * incaps,
     GstCaps * outcaps)
 {
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
   GstV4l2Transform *self = GST_V4L2_TRANSFORM (trans);
 
   if (self->incaps && self->outcaps) {
@@ -212,10 +213,10 @@
   gst_caps_replace (&self->incaps, incaps);
   gst_caps_replace (&self->outcaps, outcaps);
 
-  if (!gst_v4l2_object_set_format (self->v4l2output, incaps))
+  if (!gst_v4l2_object_set_format (self->v4l2output, incaps, &error))
     goto incaps_failed;
 
-  if (!gst_v4l2_object_set_format (self->v4l2capture, outcaps))
+  if (!gst_v4l2_object_set_format (self->v4l2capture, outcaps, &error))
     goto outcaps_failed;
 
   /* FIXME implement fallback if crop not supported */
@@ -231,6 +232,7 @@
   {
     GST_ERROR_OBJECT (self, "failed to set input caps: %" GST_PTR_FORMAT,
         incaps);
+    gst_v4l2_error (self, &error);
     goto failed;
   }
 outcaps_failed:
@@ -238,6 +240,7 @@
     gst_v4l2_object_stop (self->v4l2output);
     GST_ERROR_OBJECT (self, "failed to set output caps: %" GST_PTR_FORMAT,
         outcaps);
+    gst_v4l2_error (self, &error);
     goto failed;
   }
 failed:
@@ -375,7 +378,7 @@
         && gst_caps_features_is_equal (f,
             GST_CAPS_FEATURES_MEMORY_SYSTEM_MEMORY))
       gst_structure_remove_fields (st, "format", "colorimetry", "chroma-site",
-          "width", "height", NULL);
+          "width", "height", "pixel-aspect-ratio", NULL);
 
     gst_caps_append_structure_full (res, st, gst_caps_features_copy (f));
   }
@@ -428,6 +431,17 @@
   ins = gst_caps_get_structure (caps, 0);
   outs = gst_caps_get_structure (othercaps, 0);
 
+  {
+    const gchar *in_format;
+
+    in_format = gst_structure_get_string (ins, "format");
+    if (in_format) {
+      /* Try to set output format for pass through */
+      gst_structure_fixate_field_string (outs, "format", in_format);
+    }
+
+  }
+
   from_par = gst_structure_get_value (ins, "pixel-aspect-ratio");
   to_par = gst_structure_get_value (outs, "pixel-aspect-ratio");
 
@@ -687,9 +701,11 @@
       to_par_n = gst_value_get_fraction_numerator (to_par);
       to_par_d = gst_value_get_fraction_denominator (to_par);
 
+      GST_DEBUG_OBJECT (trans, "PAR is fixed %d/%d", to_par_n, to_par_d);
+
       /* Calculate scale factor for the PAR change */
-      if (!gst_util_fraction_multiply (from_dar_n, from_dar_d, to_par_n,
-              to_par_d, &num, &den)) {
+      if (!gst_util_fraction_multiply (from_dar_n, from_dar_d, to_par_d,
+              to_par_n, &num, &den)) {
         GST_ELEMENT_ERROR (trans, CORE, NEGOTIATION, (NULL),
             ("Error calculating the output scaled size - integer overflow"));
         goto done;
@@ -845,6 +861,9 @@
   if (to_par == &tpar)
     g_value_unset (&tpar);
 
+  /* fixate remaining fields */
+  othercaps = gst_caps_fixate (othercaps);
+
   return othercaps;
 }
 
diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c
index a1f0573..8ca5e38 100644
--- a/sys/v4l2/gstv4l2videodec.c
+++ b/sys/v4l2/gstv4l2videodec.c
@@ -229,6 +229,7 @@
 gst_v4l2_video_dec_set_format (GstVideoDecoder * decoder,
     GstVideoCodecState * state)
 {
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
   gboolean ret = TRUE;
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder);
 
@@ -245,10 +246,12 @@
     /* FIXME we probably need to do more work if pools are active */
   }
 
-  ret = gst_v4l2_object_set_format (self->v4l2output, state->caps);
+  ret = gst_v4l2_object_set_format (self->v4l2output, state->caps, &error);
 
   if (ret)
     self->input_state = gst_video_codec_state_ref (state);
+  else
+    gst_v4l2_error (self, &error);
 
 done:
   return ret;
@@ -293,6 +296,37 @@
   return GST_VIDEO_DECODER_CLASS (parent_class)->negotiate (decoder);
 }
 
+static gboolean
+gst_v4l2_decoder_cmd (GstV4l2Object * v4l2object, guint cmd, guint flags)
+{
+  struct v4l2_decoder_cmd dcmd = { 0, };
+
+  GST_DEBUG_OBJECT (v4l2object->element,
+      "sending v4l2 decoder command %u with flags %u", cmd, flags);
+
+  if (!GST_V4L2_IS_OPEN (v4l2object))
+    return FALSE;
+
+  dcmd.cmd = cmd;
+  dcmd.flags = flags;
+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_DECODER_CMD, &dcmd) < 0)
+    goto dcmd_failed;
+
+  return TRUE;
+
+dcmd_failed:
+  if (errno == ENOTTY) {
+    GST_INFO_OBJECT (v4l2object->element,
+        "Failed to send decoder command %u with flags %u for '%s'. (%s)",
+        cmd, flags, v4l2object->videodev, g_strerror (errno));
+  } else {
+    GST_ERROR_OBJECT (v4l2object->element,
+        "Failed to send decoder command %u with flags %u for '%s'. (%s)",
+        cmd, flags, v4l2object->videodev, g_strerror (errno));
+  }
+  return FALSE;
+}
+
 static GstFlowReturn
 gst_v4l2_video_dec_finish (GstVideoDecoder * decoder)
 {
@@ -305,15 +339,28 @@
 
   GST_DEBUG_OBJECT (self, "Finishing decoding");
 
-  /* Keep queuing empty buffers until the processing thread has stopped,
-   * _pool_process() will return FLUSHING when that happened */
   GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
-  while (ret == GST_FLOW_OK) {
-    buffer = gst_buffer_new ();
-    ret =
-        gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self->
-            v4l2output->pool), &buffer);
-    gst_buffer_unref (buffer);
+
+  if (gst_v4l2_decoder_cmd (self->v4l2output, V4L2_DEC_CMD_STOP, 0)) {
+    GstTask *task = decoder->srcpad->task;
+
+    /* If the decoder stop command succeeded, just wait until processing is
+     * finished */
+    GST_OBJECT_LOCK (task);
+    while (GST_TASK_STATE (task) == GST_TASK_STARTED)
+      GST_TASK_WAIT (task);
+    GST_OBJECT_UNLOCK (task);
+    ret = GST_FLOW_FLUSHING;
+  } else {
+    /* otherwise keep queuing empty buffers until the processing thread has
+     * stopped, _pool_process() will return FLUSHING when that happened */
+    while (ret == GST_FLOW_OK) {
+      buffer = gst_buffer_new ();
+      ret =
+          gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self->
+              v4l2output->pool), &buffer);
+      gst_buffer_unref (buffer);
+    }
   }
 
   /* and ensure the processing thread has stopped in case another error
@@ -441,12 +488,42 @@
       gst_flow_get_name (self->output_flow));
 }
 
+static gboolean
+gst_v4l2_video_remove_padding(GstCapsFeatures * features,
+    GstStructure * structure, gpointer user_data)
+{
+  GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (user_data);
+  GstVideoAlignment *align = &self->v4l2capture->align;
+  GstVideoInfo *info = &self->v4l2capture->info;
+  int width, height;
+
+  if (!gst_structure_get_int(structure, "width", &width))
+    return TRUE;
+
+  if (!gst_structure_get_int(structure, "height", &height))
+    return TRUE;
+
+  if (align->padding_left != 0 || align->padding_top != 0 ||
+      width != info->width + align->padding_right ||
+      height != info->height + align->padding_bottom)
+    return TRUE;
+
+  gst_structure_set(structure,
+      "width", G_TYPE_INT, width - align->padding_right,
+      "height", G_TYPE_INT, height - align->padding_bottom, NULL);
+
+  return TRUE;
+}
+
 static GstFlowReturn
 gst_v4l2_video_dec_handle_frame (GstVideoDecoder * decoder,
     GstVideoCodecFrame * frame)
 {
+  GstV4l2Error error = GST_V4L2_ERROR_INIT;
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (decoder);
   GstFlowReturn ret = GST_FLOW_OK;
+  gboolean processed = FALSE;
+  GstBuffer *tmp;
 
   GST_DEBUG_OBJECT (self, "Handling frame %d", frame->system_frame_number);
 
@@ -456,7 +533,8 @@
   if (G_UNLIKELY (!GST_V4L2_IS_ACTIVE (self->v4l2output))) {
     if (!self->input_state)
       goto not_negotiated;
-    if (!gst_v4l2_object_set_format (self->v4l2output, self->input_state->caps))
+    if (!gst_v4l2_object_set_format (self->v4l2output, self->input_state->caps,
+          &error))
       goto not_negotiated;
   }
 
@@ -465,7 +543,7 @@
     GstVideoInfo info;
     GstVideoCodecState *output_state;
     GstBuffer *codec_data;
-    GstCaps *acquired_caps, *caps, *filter;
+    GstCaps *acquired_caps, *available_caps, *caps, *filter;
     GstStructure *st;
 
     GST_DEBUG_OBJECT (self, "Sending header");
@@ -479,8 +557,8 @@
     if (codec_data) {
       gst_buffer_ref (codec_data);
     } else {
-      codec_data = frame->input_buffer;
-      frame->input_buffer = NULL;
+      codec_data = gst_buffer_ref (frame->input_buffer);
+      processed = TRUE;
     }
 
     /* Ensure input internal pool is active */
@@ -505,6 +583,10 @@
 
     gst_buffer_unref (codec_data);
 
+    /* For decoders G_FMT returns coded size, G_SELECTION returns visible size
+     * in the compose rectangle. gst_v4l2_object_acquire_format() checks both
+     * and returns the visible size as with/height and the coded size as
+     * padding. */
     if (!gst_v4l2_object_acquire_format (self->v4l2capture, &info))
       goto not_negotiated;
 
@@ -514,8 +596,17 @@
     gst_structure_remove_field (st, "format");
 
     /* Probe currently available pixel formats */
-    filter = gst_v4l2_object_probe_caps (self->v4l2capture, acquired_caps);
+    available_caps = gst_v4l2_object_probe_caps (self->v4l2capture, NULL);
+    available_caps = gst_caps_make_writable (available_caps);
+
+    /* Replace coded size with visible size, we want to negotiate visible size
+     * with downstream, not coded size. */
+    gst_caps_map_in_place (available_caps, gst_v4l2_video_remove_padding, self);
+
+    filter = gst_caps_intersect_full (available_caps, acquired_caps,
+        GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (acquired_caps);
+    gst_caps_unref (available_caps);
     caps = gst_pad_peer_query_caps (decoder->srcpad, filter);
     gst_caps_unref (filter);
 
@@ -531,8 +622,10 @@
     GST_DEBUG_OBJECT (self, "Chosen decoded caps: %" GST_PTR_FORMAT, caps);
 
     /* Try to set negotiated format, on success replace acquired format */
-    if (gst_v4l2_object_set_format (self->v4l2capture, caps))
+    if (gst_v4l2_object_set_format (self->v4l2capture, caps, &error))
       gst_video_info_from_caps (&info, caps);
+    else
+      gst_v4l2_clear_error (&error);
     gst_caps_unref (caps);
 
     output_state = gst_video_decoder_set_output_state (decoder,
@@ -575,7 +668,7 @@
       goto start_task_failed;
   }
 
-  if (frame->input_buffer) {
+  if (!processed) {
     GST_VIDEO_DECODER_STREAM_UNLOCK (decoder);
     ret =
         gst_v4l2_buffer_pool_process (GST_V4L2_BUFFER_POOL (self->v4l2output->
@@ -589,11 +682,16 @@
     } else if (ret != GST_FLOW_OK) {
       goto process_failed;
     }
-
-    /* No need to keep input arround */
-    gst_buffer_replace (&frame->input_buffer, NULL);
   }
 
+  /* No need to keep input arround */
+  tmp = frame->input_buffer;
+  frame->input_buffer = gst_buffer_new ();
+  gst_buffer_copy_into (frame->input_buffer, tmp,
+      GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS |
+      GST_BUFFER_COPY_META, 0, 0);
+  gst_buffer_unref (tmp);
+
   gst_video_codec_frame_unref (frame);
   return ret;
 
@@ -602,6 +700,7 @@
   {
     GST_ERROR_OBJECT (self, "not negotiated");
     ret = GST_FLOW_NOT_NEGOTIATED;
+    gst_v4l2_error (self, &error);
     goto drop;
   }
 activate_failed:
diff --git a/sys/v4l2/v4l2-utils.c b/sys/v4l2/v4l2-utils.c
index 899c191..ce364a0 100644
--- a/sys/v4l2/v4l2-utils.c
+++ b/sys/v4l2/v4l2-utils.c
@@ -164,3 +164,38 @@
 }
 
 #endif
+
+void
+gst_v4l2_clear_error (GstV4l2Error * v4l2err)
+{
+  if (v4l2err) {
+    g_clear_error (&v4l2err->error);
+    g_free (v4l2err->dbg_message);
+  }
+}
+
+void
+gst_v4l2_error (gpointer element, GstV4l2Error * v4l2err)
+{
+  GError *error;
+
+  if (!v4l2err || !v4l2err->error)
+    return;
+
+  error = v4l2err->error;
+
+  if (error->message)
+    GST_WARNING_OBJECT (element, "error: %s", error->message);
+
+  if (v4l2err->dbg_message)
+    GST_WARNING_OBJECT (element, "error: %s", v4l2err->dbg_message);
+
+  gst_element_message_full (GST_ELEMENT (element), GST_MESSAGE_ERROR,
+      error->domain, error->code, error->message, v4l2err->dbg_message,
+      v4l2err->file, v4l2err->func, v4l2err->line);
+
+  error->message = NULL;
+  v4l2err->dbg_message = NULL;
+
+  gst_v4l2_clear_error (v4l2err);
+}
diff --git a/sys/v4l2/v4l2-utils.h b/sys/v4l2/v4l2-utils.h
index 9a73bd9..1bc0062 100644
--- a/sys/v4l2/v4l2-utils.h
+++ b/sys/v4l2/v4l2-utils.h
@@ -26,7 +26,23 @@
 
 G_BEGIN_DECLS
 
+#define GST_V4L2_ERROR_INIT { NULL, NULL }
+#define GST_V4L2_ERROR(v4l2err,domain,code,msg,dbg) \
+{\
+  if (v4l2err) { \
+    gchar *_msg = _gst_element_error_printf msg; \
+    v4l2err->error = g_error_new_literal (GST_##domain##_ERROR, \
+        GST_##domain##_ERROR_##code, _msg); \
+    g_free (_msg); \
+    v4l2err->dbg_message = _gst_element_error_printf dbg; \
+    v4l2err->file = __FILE__; \
+    v4l2err->func = GST_FUNCTION; \
+    v4l2err->line = __LINE__; \
+  } \
+}
+
 typedef struct _GstV4l2Iterator GstV4l2Iterator;
+typedef struct _GstV4l2Error GstV4l2Error;
 
 struct _GstV4l2Iterator
 {
@@ -35,6 +51,15 @@
     const gchar *sys_path;
 };
 
+struct _GstV4l2Error
+{
+    GError *error;
+    gchar *dbg_message;
+    const gchar *file;
+    const gchar *func;
+    gint line;
+};
+
 GstV4l2Iterator *  gst_v4l2_iterator_new (void);
 gboolean           gst_v4l2_iterator_next (GstV4l2Iterator *it);
 void               gst_v4l2_iterator_free (GstV4l2Iterator *it);
@@ -43,6 +68,9 @@
 const gchar *      gst_v4l2_iterator_get_device_name (GstV4l2Iterator *it);
 const gchar *      gst_v4l2_iterator_get_sys_path (GstV4l2Iterator *it);
 
+void               gst_v4l2_clear_error (GstV4l2Error *error);
+void               gst_v4l2_error (gpointer element, GstV4l2Error *error);
+
 G_END_DECLS
 
 #endif /* __V4L2_UTILS_H__ */
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index 356d42f..bfb6557 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -923,9 +923,9 @@
   /* ERRORS */
 ctrl_failed:
   {
-    GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS,
-        (_("Failed to get value for control %d on device '%s'."),
-            attribute_num, v4l2object->videodev), GST_ERROR_SYSTEM);
+    GST_WARNING_OBJECT (v4l2object,
+        _("Failed to get value for control %d on device '%s'."),
+        attribute_num, v4l2object->videodev);
     return FALSE;
   }
 }
@@ -958,9 +958,9 @@
   /* ERRORS */
 ctrl_failed:
   {
-    GST_ELEMENT_WARNING (v4l2object->element, RESOURCE, SETTINGS,
-        (_("Failed to set value %d for control %d on device '%s'."),
-            value, attribute_num, v4l2object->videodev), GST_ERROR_SYSTEM);
+    GST_WARNING_OBJECT (v4l2object,
+        _("Failed to set value %d for control %d on device '%s'."),
+        value, attribute_num, v4l2object->videodev);
     return FALSE;
   }
 }
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index bc78f9f..3aec98c 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -561,7 +561,7 @@
 elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
 
 elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
+elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 
 elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index 12d0f6f..ae6b0de 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -684,7 +684,7 @@
 elements_rtpsession_OBJECTS =  \
 	elements/elements_rtpsession-rtpsession.$(OBJEXT)
 elements_rtpsession_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_2)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
 elements_rtpsession_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_rtpsession_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
@@ -1852,7 +1852,7 @@
 elements_rtprtx_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
 elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
+elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 elements_rtpaux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c
index 28c04fe..3b519e0 100644
--- a/tests/check/elements/rtpjitterbuffer.c
+++ b/tests/check/elements/rtpjitterbuffer.c
@@ -459,7 +459,7 @@
 }
 
 static void
-verify_lost_event (GstEvent * event, guint32 expected_seqnum,
+verify_lost_event (GstEvent * event, guint16 expected_seqnum,
     GstClockTime expected_timestamp, GstClockTime expected_duration)
 {
   const GstStructure *s = gst_event_get_structure (event);
@@ -1407,6 +1407,87 @@
 
 GST_END_TEST;
 
+typedef struct
+{
+  guint seqnum_offset;
+  guint late_buffer;
+} TestLateArrivalInput;
+
+static const TestLateArrivalInput
+    test_considered_lost_packet_in_large_gap_arrives_input[] = {
+  {0, 1}, {0, 2}, {65535, 1}, {65535, 2}, {65534, 1}, {65534, 2}
+};
+
+GST_START_TEST (test_considered_lost_packet_in_large_gap_arrives)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstClockID id;
+  GstBuffer *buffer;
+  gint jb_latency_ms = 20;
+  GstEvent *event;
+  const TestLateArrivalInput *test_input =
+      &test_considered_lost_packet_in_large_gap_arrives_input[__i__];
+  guint seq_offset = test_input->seqnum_offset;
+  guint late_buffer = test_input->late_buffer;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
+
+  /* first push buffer 0 */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer_full (0 * PCMU_BUF_DURATION,
+              TRUE, 0 + seq_offset, 0 * PCMU_RTP_TS_DURATION)));
+  fail_unless (gst_harness_crank_single_clock_wait (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (gint i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* hop over 3 packets, and push buffer 4 (gap of 3) */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer_full (4 * PCMU_BUF_DURATION,
+              TRUE, 4 + seq_offset, 4 * PCMU_RTP_TS_DURATION)));
+
+  /* the jitterbuffer should be waiting for the timeout of a "large gap timer"
+   * for buffer 1 and 2 */
+  gst_test_clock_wait_for_next_pending_id (testclock, &id);
+  fail_unless_equals_uint64 (1 * PCMU_BUF_DURATION +
+      jb_latency_ms * GST_MSECOND, gst_clock_id_get_time (id));
+  gst_clock_id_unref (id);
+
+  /* now buffer 1 sneaks in before the lost event for buffer 1 and 2 is
+   * processed */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h,
+          generate_test_buffer_full (late_buffer * PCMU_BUF_DURATION, TRUE,
+              late_buffer + seq_offset, late_buffer * PCMU_RTP_TS_DURATION)));
+
+  /* time out for lost packets 1 and 2 (one event, double duration) */
+  fail_unless (gst_harness_crank_single_clock_wait (h));
+  event = gst_harness_pull_event (h);
+  verify_lost_event (event, 1 + seq_offset, 1 * PCMU_BUF_DURATION,
+      2 * PCMU_BUF_DURATION);
+
+  /* time out for lost packets 3 */
+  fail_unless (gst_harness_crank_single_clock_wait (h));
+  event = gst_harness_pull_event (h);
+  verify_lost_event (event, 3 + seq_offset, 3 * PCMU_BUF_DURATION,
+      1 * PCMU_BUF_DURATION);
+
+  /* buffer 4 is pushed as normal */
+  buffer = gst_harness_pull (h);
+  fail_unless_equals_int ((4 + seq_offset) & 0xffff, get_rtp_seq_num (buffer));
+  gst_buffer_unref (buffer);
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtpjitterbuffer_suite (void)
 {
@@ -1431,6 +1512,10 @@
   tcase_add_test (tc_chain, test_dts_gap_larger_than_latency);
   tcase_add_test (tc_chain, test_push_big_gap);
 
+  tcase_add_loop_test (tc_chain,
+      test_considered_lost_packet_in_large_gap_arrives, 0,
+      G_N_ELEMENTS (test_considered_lost_packet_in_large_gap_arrives_input));
+
   return s;
 }
 
diff --git a/tests/check/elements/rtpsession.c b/tests/check/elements/rtpsession.c
index f7c1bdf..88c2f3d 100644
--- a/tests/check/elements/rtpsession.c
+++ b/tests/check/elements/rtpsession.c
@@ -20,12 +20,15 @@
  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
 
 #include <gst/check/gstcheck.h>
 #include <gst/check/gsttestclock.h>
+#include <gst/check/gstharness.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/rtp/gstrtcpbuffer.h>
+#include <gst/net/gstnetaddressmeta.h>
 
 static const guint payload_size = 160;
 static const guint clock_rate = 8000;
@@ -576,6 +579,109 @@
 
 GST_END_TEST;
 
+static void
+suspicious_bye_cb (GObject * object, GParamSpec * spec, gpointer data)
+{
+  GValueArray *stats_arr;
+  GstStructure *stats, *internal_stats;
+  gboolean *cb_called = data;
+  gboolean internal = FALSE, sent_bye = TRUE;
+  guint ssrc = 0;
+  guint i;
+
+  g_assert (*cb_called == FALSE);
+  *cb_called = TRUE;
+
+  g_object_get (object, "stats", &stats, NULL);
+  stats_arr =
+      g_value_get_boxed (gst_structure_get_value (stats, "source-stats"));
+  g_assert (stats_arr != NULL);
+  fail_unless (stats_arr->n_values >= 1);
+
+  for (i = 0; i < stats_arr->n_values; i++) {
+    internal_stats = g_value_get_boxed (g_value_array_get_nth (stats_arr, i));
+    g_assert (internal_stats != NULL);
+
+    gst_structure_get (internal_stats,
+        "ssrc", G_TYPE_UINT, &ssrc,
+        "internal", G_TYPE_BOOLEAN, &internal,
+        "received-bye", G_TYPE_BOOLEAN, &sent_bye, NULL);
+
+    if (ssrc == 0xDEADBEEF) {
+      fail_unless (internal);
+      fail_unless (!sent_bye);
+      break;
+    }
+  }
+  fail_unless_equals_int (ssrc, 0xDEADBEEF);
+
+  gst_structure_free (stats);
+}
+
+static GstBuffer *
+create_bye_rtcp (guint32 ssrc)
+{
+  GstRTCPPacket packet;
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GSocketAddress *saddr;
+  GstBuffer *buffer = gst_rtcp_buffer_new (1000);
+
+  fail_unless (gst_rtcp_buffer_map (buffer, GST_MAP_READWRITE, &rtcp));
+  fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_BYE, &packet));
+  gst_rtcp_packet_bye_add_ssrc (&packet, ssrc);
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  /* Need to add meta to trigger collision detection */
+  saddr = g_inet_socket_address_new_from_string ("127.0.0.1", 3490);
+  gst_buffer_add_net_address_meta (buffer, saddr);
+  g_object_unref (saddr);
+  return buffer;
+}
+
+GST_START_TEST (test_ignore_suspicious_bye)
+{
+  GstHarness *h_rtcp = NULL;
+  GstHarness *h_send = NULL;
+  gboolean cb_called = FALSE;
+  GstTestClock *testclock = GST_TEST_CLOCK (gst_test_clock_new ());
+
+  /* use testclock as the systemclock to capture the rtcp thread waits */
+  gst_system_clock_set_default (GST_CLOCK (testclock));
+
+  h_rtcp =
+      gst_harness_new_with_padnames ("rtpsession", "recv_rtcp_sink",
+      "send_rtcp_src");
+  h_send =
+      gst_harness_new_with_element (h_rtcp->element, "send_rtp_sink",
+      "send_rtp_src");
+
+  /* connect to the stats-reporting */
+  g_signal_connect (h_rtcp->element, "notify::stats",
+      G_CALLBACK (suspicious_bye_cb), &cb_called);
+
+  /* Push RTP buffer making our internal SSRC=0xDEADBEEF */
+  gst_harness_set_src_caps_str (h_send,
+      "application/x-rtp,ssrc=(uint)0xDEADBEEF,"
+      "clock-rate=90000,seqnum-offset=(uint)12345");
+  gst_harness_push (h_send,
+      generate_test_buffer (0, FALSE, 12345, 0, 0xDEADBEEF));
+
+  /* Push BYE RTCP with internal SSRC (0xDEADBEEF) */
+  gst_harness_set_src_caps_str (h_rtcp, "application/x-rtcp");
+  gst_harness_push (h_rtcp, create_bye_rtcp (0xDEADBEEF));
+
+  /* "crank" and check the stats */
+  g_assert (gst_test_clock_crank (testclock));
+  gst_buffer_unref (gst_harness_pull (h_rtcp));
+  fail_unless (cb_called);
+
+  gst_harness_teardown (h_send);
+  gst_harness_teardown (h_rtcp);
+  gst_object_unref (testclock);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtpsession_suite (void)
 {
@@ -586,6 +692,7 @@
   tcase_add_test (tc_chain, test_multiple_ssrc_rr);
   tcase_add_test (tc_chain, test_multiple_senders_roundrobin_rbs);
   tcase_add_test (tc_chain, test_internal_sources_timeout);
+  tcase_add_test (tc_chain, test_ignore_suspicious_bye);
 
   return s;
 }
diff --git a/win32/common/config.h b/win32/common/config.h
index 74af961..f05ed03 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -64,7 +64,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-04-20"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-06-09"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -395,7 +395,7 @@
 #define PACKAGE_NAME "GStreamer Good Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Good Plug-ins 1.8.1"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.8.2"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-good"
@@ -404,7 +404,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.1"
+#define PACKAGE_VERSION "1.8.2"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -435,7 +435,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.8.1"
+#define VERSION "1.8.2"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */