diff --git a/ChangeLog b/ChangeLog
index 36f60b8a3651d0eff32c87232fe8c72bf6f5b3a3..dc50812b69ccd03339af2739f9cdaf7438897ec0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,507 @@
+=== release 1.2.1 ===
+
+2013-11-09  Sebastian Dröge <slomo@coaxion.net>
+
+	* configure.ac:
+	  releasing 1.2.1
+
+2013-11-09 12:01:55 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/de.po:
+	* po/id.po:
+	* po/sr.po:
+	  po: Update translations
+
+2013-11-08 17:59:24 +0100  Philippe Normand <philn@igalia.com>
+
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: generate a non-empty data header
+	  Restore the behavior of the element to the state before commit
+	  db29522a430e44450415ca3676abd1b77ee923d9. A non-empty header is
+	  generated and when the EOS event is received the header is generated
+	  again, this time with the correct size.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=711699
+
+2013-10-07 14:27:21 -0300  Thiago Santos <ts.santos@partner.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: do not emit EOS when connection drops
+	  If the pipeline is stalled for too long, souphttpsrc will block and
+	  stop fetching data from the network. This can cause the connection to
+	  drop and souphttpsrc would handle it as an EOS. This patch makes it
+	  persist and try to fetch more data until the end of the content length
+	  or until receiving an error that it is beyong limits in case the content
+	  is unknown.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=683536
+
+2013-10-25 11:30:36 -0300  Thiago Santos <ts.santos@partner.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: check if the end_time is defined before using it
+	  Avoids sending EOS too soon because of overflow. Can happen on
+	  fragmented mp4 playback.
+
+2013-10-25 18:22:00 -0300  Thiago Santos <ts.santos@partner.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: handle fragmented files with mdat before moofs
+	  Assume a file with atoms in the following order: moov, mdat, moof,
+	  mdat, moof ...
+	  The first moov usually doesn't contain any sample entries atoms (or
+	  they are all set to 0 length), because the real samples are signaled
+	  at the moofs. In push mode, qtdemux parses the moov and then finds the mdat,
+	  but then it has 0 entries and assumes it is EOS.
+	  This patch makes it continue parsing in case it is a fragmented file so that
+	  it might find the moofs and play the media.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=710623
+
+2013-10-25 11:42:37 -0300  Thiago Santos <ts.santos@partner.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: When using a buffered mdat, store all received data for later use
+	  In push mode, when qtdemux can't use a seek to skip the mdat buffer it has
+	  to buffer it for later use.
+	  The issue is that after parsing the next moov/moof, there might be some
+	  trailing bytes from the next atom in the file. This data was being discarded
+	  along with the already parsed moov/moof and playback would fail to continue
+	  after the contents of this moov/moof are played.
+	  This is particularly bad on fragmented files that have the mdat before the
+	  corresponding moof. So you'd get:
+	  mdat|moof|mdat|moof ...
+	  When a moof was received, it usually came with some extra bytes that would
+	  belong to the next mdat (because upstream doesn't care about atoms alignment).
+	  So those bytes were being discarded and playback would fail.
+	  This patch makes qtdemux store those extra bytes to reuse them later after the
+	  mdat is emptied.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=710623
+
+2013-11-07 09:49:55 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/udp/gstmultiudpsink.c:
+	  multiudpsink: Also use the bind-port property if no bind-address was given
+
+2013-11-07 00:51:12 +0100  Andoni Morales Alastruey <ylatuya@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	  osxaudiosink: fix segfault when we can't get the channels layout
+
+2013-11-05 17:26:49 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpvp8pay.c:
+	  rtpvp8pay: Make Picture ID mode configurable and default to no picture ID
+	  Some implementations (linphone) only support no picture at all in the
+	  stream and will fail if one is provided.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=711497
+
+2013-11-02 22:50:47 +0100  Rico Tzschichholz <ricotz@ubuntu.com>
+
+	* gst/rtsp/Makefile.am:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtsp: Add missing gio-2.0 deps and includes
+
+2013-11-01 18:10:51 +0000  Olivier Crête <olivier.crete@collabora.com>
+
+	* configure.ac:
+	  Revert "configure: Require gst-plugins-base >= 1.2.1 for the TLS validation check flags in GstRTSPConnection"
+	  Version 1.2.1 doesn't exist yet, re-apply when it does
+	  This reverts commit c98380985db3483ea78a8e738d544d1201d8ed1e.
+
+2013-11-01 18:31:36 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audiofx/audioiirfilter.c:
+	  audioiirfilter: Fix initialization coefficient handling
+	  Broke unit test.
+
+2013-11-01 16:59:11 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  configure: Require gst-plugins-base >= 1.2.1 for the TLS validation check flags in GstRTSPConnection
+
+2013-10-31 14:05:43 -0700  Aleix Conchillo Flaque <aleix@oblong.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: allow setting tls certificate validation flags
+	  Added a new property "tls-validation-flags". If the url transport is
+	  TLS, the validation flags will be set to the rtsp connection.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=711230
+
+2013-10-31 22:43:49 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audiofx/audiofxbaseiirfilter.c:
+	* gst/audiofx/audioiirfilter.c:
+	  audioiirfilter: Don't crash if no filter coefficients are provided
+	  ...and by default use a identity filter.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=710215
+
+2013-10-31 19:15:12 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/wavpack/gstwavpackenc.c:
+	  wavpackenc: Fix writing of MD5 sums and other metadata blocks
+	  These don't have the FINAL_BLOCK flag set.
+
+2013-10-14 16:23:25 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/udp/gstmultiudpsink.c:
+	  multiudpsink: Fix memory leak
+	  Unmap all GstMemory of the current buffer when flushing.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=710110
+
+2013-10-12 20:37:41 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* gst/flv/gstflvmux.c:
+	  flvmux: require stream-format=raw for mpeg-2 too, but don't require framed field
+	  raw implies that it's framed already. Fixes .. ! faac ! flvmux
+
+2013-10-10 13:52:35 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/dv/gstdvdec.c:
+	* ext/dv/gstdvdec.h:
+	  dvdec: Don't send segment event before caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709728
+
+2013-10-09 17:46:33 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Send stream-start, caps and segment events in the right order
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709728
+
+2013-10-08 11:28:04 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/wavenc/gstwavenc.c:
+	  wavenc: A-Law and Mu-Law don't have width/depth/signed caps fields
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709614
+
+2013-10-07 12:54:11 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/deinterlace/tvtime/greedyh.c:
+	  deinterlace: Fix handling of planar video formats in greedyh method
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709507
+
+2013-10-04 13:34:09 +0200  Peter Korsgaard <peter@korsgaard.com>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE
+	  On some systems (E.G. uClibc and older Glibc versions), O_CLOEXEC is only
+	  defined when _GNU_SOURCE is specified, so do so.
+	  _GNU_SOURCE needs to be defined before any system headers are included,
+	  so move the fcntl.h section up.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709423
+
+2013-10-04 14:42:59 -0700  Reynaldo H. Verdejo Pinochet <r.verdejo@partner.samsung.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroska: Do not write SegmentUID for WebM mux
+	  WebM spec states SegmentUID is Unsupported. Files produced
+	  with gstreamer without this change will spit an error like
+	  this when passed to mkvalidator:
+	  ERR201: Invalid 'SegmentUID' for profile 'webm' in Info at 192
+
+2013-10-03 22:38:43 +0200  Mathieu Duponchelle <mduponchelle1@gmail.com>
+
+	* gst/videomixer/videoconvert.c:
+	  videomixer: Update videoconvert copy
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709390
+
+2013-10-03 21:36:34 +0200  Mathieu Duponchelle <mduponchelle1@gmail.com>
+
+	* gst/videomixer/videomixer2.c:
+	  videomixer: Check if the pad needs reconfiguration in collected
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709384
+
+2013-10-03 11:59:25 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Add support for the mp2v fourcc for MPEG-2 video
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709270
+
+2013-10-04 12:11:56 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: fix race in flush-start/flush-stop
+	  When flush-stop arrives before we process the result of the _push() in the
+	  loop function, we might pause even though we are not flushing anymore. Fix this
+	  race by waiting for the srcpad loop function to completely pause after doing the
+	  flush-start.
+
+2013-10-03 14:39:35 +0100  Matthieu Bouron <matthieu.bouron@collabora.com>
+
+	* ext/jpeg/gstjpegdec.c:
+	  jpegdec: Relax sink caps
+	  Since jpegdec already parse the jpeg stream, the sink caps could be
+	  relaxed. This will allow jpegdec to be selected in more case and in
+	  particular when the jpeg typefinder does not find the width and height.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709352
+
+2013-10-02 15:56:53 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: Fix memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709266
+
+2013-09-30 12:24:32 +0200  Ognyan Tonchev <ognyan@axis.com>
+
+	* gst/rtp/gstrtpgstpay.c:
+	  rtpgstpay: Fix memory leak
+	  We were leaking the GList nodes of the pending buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=709079
+
+2013-09-30 12:31:00 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* gst/rtpmanager/rtpjitterbuffer.h:
+	  rtpjitterbuffer: fix race when updating the next_seqnum
+	  If we were not waiting for the missing seqnum when we insert the lost packet
+	  event in the jitterbuffer, we end up not updating the next_seqnum and wait
+	  forever for the lost packets to arrive. Instead, keep track of the amount of
+	  packets contained by the jitterbuffer item and update the next expected
+	  seqnum only after pushing the buffer/event. This makes sure we correctly handle
+	  GAPS in the sequence numbers.
+
+2013-09-30 12:30:23 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: small debug improvement
+
+2013-09-30 11:53:08 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  rtpjitterbuffer: reset skew does not reset clock-rate
+	  Don't reset the clock-rate when we reset the skew correction algorithm.
+	  Reset the skew correction algorithm when we change the clock-rate.
+
+2013-09-30 11:16:32 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: pause timer when PAUSED
+	  Also pause the timer when we go to the PAUSED state. It is possible that we
+	  don't have a clock or base-time in PAUSED to perform the timeouts.
+
+2013-09-30 11:15:25 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: improve debug
+
+2013-09-27 15:05:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: also go into the loop function after connect
+	  When we have opened the stream, go into the loop function so that we can
+	  receive messages from the server.
+
+2013-09-26 16:20:04 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  rtpjitterbuffer: don't calculate skew without rtptime
+	  Skip trying to calculate the skew when we don't have an rtptime.
+	  It causes problems when lost packet events are placed in the jitterbuffer.
+
+2013-09-25 17:42:02 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: disable checks when linking pads
+	  We know the pad links will work (and we don't check the return value
+	  anyway).
+
+2013-09-25 17:36:15 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	  rtpbin: avoid some pad link checks
+	  Link pads without checks, we know it will work.
+
+2013-09-24 04:02:09 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: calculate some stats
+
+2013-09-23 17:05:44 +0200  Wim Taymans <wim.taymans@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: move send_lost_event function
+	  Move the send_lost_event function to the do_lost_event handling, there is no
+	  need to have a separate function.
+
+2013-10-03 18:33:01 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2src: print probed caps as caps again in debug log
+	  This got lost during refactoring.
+
+2013-09-26 20:41:26 +0200  Hans MÃ¥nsson <hansm@axis.com>
+
+	* gst/isomp4/gstqtmuxmap.c:
+	  mp4mux: Do not require framerate in peer video caps
+	  Remove the framerate restriction on the caps.
+	  Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708864
+
+2013-09-16 11:20:51 -0300  Thiago Santos <thiago.sousa.santos@collabora.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: add code to parse creation time earlier than 1970
+	  Use g_date_time seconds manipulation to allow to cover the quicktime
+	  spec for creation_time. It uses seconds since 1904.
+	  Both paths could be done using the generic approach of seconds since
+	  1904 with GDateTime handling, but the first path using seconds from
+	  1970 should be more commonly found and avoids a few objects creation and
+	  ref/unref, so keep it there for performance.
+	  Additionally, the code for handling seconds since 1970 changed from >
+	  to >= because having 0 seconds since 1970 is also a valid case for that
+	  path to handle.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707975
+
+2013-09-21 00:55:26 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: update stream->pos when sending buffers so that gap events are not sent unnecessarily
+	  https://bugzilla.gnome.org/show_bug.cgi?id=708505
+
+2013-09-27 12:53:06 +0200  Matej Knopp <matej.knopp@gmail.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: move the check for subtitle buffer being null terminated before validating UTF-8
+	  https://bugzilla.gnome.org/show_bug.cgi?id=707933
+
+2013-09-25 12:55:21 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Don't error out if downstream is not seekable for non-fragmented variants
+	  Doing so would be a regression over 1.0 and breaks the unit test.
+	  However the result will be most likely unusable, so let's post
+	  a warning message on the bus.
+
+2013-09-24 17:24:26 +0100  Tim-Philipp Müller <tim@centricular.net>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From 6b03ba7 to 7412249
+
 === release 1.2.0 ===
 
-2013-09-24  Sebastian Dröge <sebastian.droege@collabora.co.uk>
+2013-09-24 14:21:08 +0200  Sebastian Dröge <slomo@circular-chaos.org>
 
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
 	* configure.ac:
-	  releasing 1.2.0
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* 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.2.0
+
+2013-09-24 14:20:51 +0200  Sebastian Dröge <slomo@circular-chaos.org>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/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
 
 2013-09-20 19:43:21 +0200  Andoni Morales Alastruey <ylatuya@gmail.com>
 
diff --git a/NEWS b/NEWS
index 56255fa9f714a9ba69f089c540918b0a39fd105d..8f91fc5c5e089fc53e1da57fb9405053f8c42352 100644
--- a/NEWS
+++ b/NEWS
@@ -1,123 +1,2 @@
-This is GStreamer Good Plugins 1.2.0
-
-Changes since 1.0:
-
-New API:
- • GstContext negotiation / sharing / announcing for sharing a
-   generic context between elements, e.g. a display handle
- • GL texture upload conversion meta for allowing different
-   buffer types to be converted to an OpenGL texture
- • GstCapsFeatures as extension to GstCaps for allowing the
-   negotiation of specific memory or meta requirements between
-   elements
- • GstMemory flags for contiguous and non-mappable memory
- • The stream-start event has optional flags now, e.g. for signalling
-   sparse streams
- • The stream-start even has an optional group-id field now to signal
-   all streams that should be played together
- • Allocators library in gst-plugins-base, currently only with generic
-   dmabuf memory support
- • insertbin library for easier handling of dynamically linked
-   pipelines (in -bad for now)
- • EGL helper library (in -bad for now)
- • MPEG-TS data structure library (in -bad for now)
- • New GstVideoRegionOfInterestMeta to describe a region of interest on
-   video frames.
- • GstVideoDecoder/Encoder has new ::flush() vfunc to replace the
-   ill-defined ::reset() vfunc.
- • The URI query allows to query the redirected URI now.
-
-Major changes:
- • New tool: gst-play-1.0 in gst-plugins-base for basic playback
-   testing on the command line.
- • New plugins:
-   ∘ mssdemux for Microsoft Smooth Streaming
-   ∘ dashdemux for DASH adaptive streaming protocol
-   ∘ bluez for interaction with Bluetooth devices
-   ∘ openjpeg for JPEG2000 decoding and encoding
-   ∘ daala for experimental Daala decoding and encoding
-   ∘ vpx plugin has experimental VP9 decoding and encoding support
-   ∘ webp plugin for WebP decoding (encoding to be added later)
-   ∘ Various others: yadif, srtp, sbc, fluidsynth, midiparse,
-     mfc, ivtv, accuraterip and audiofxbad
-
- • Moved plugins:
-   ∘ dtmf, vp8rtp, scaletempo and rtpmux plugins are in
-     gst-plugins-good now
-
- • Video:
-   ∘ Fix handling of interlaced video in converters such as videoscale
-     and videoconvert (e.g. scale both fields independently)
-   ∘ videoconvert will try harder to minimise quality losses when
-     conversion is necessary
-   ∘ The experimental GstSurfaceConverter, GstSurfaceMeta and
-     GstVideoContext APIs from the (confusingly-named) 
-     libgstbasevideo-1.0 library in gst-plugins-bad have now been
-     removed and been replaced by new APIs in GStreamer Core and
-     gst-plugins-base (see above). Since that was all that was left in
-     this library, the entire experimental libgstbasevideo-1.0 library
-     has been removed from gst-plugins-bad
-   ∘ Chroma subsampling and chroma siting conversion is better handled
-     in videoconvert and the support for interlaced video was improved.
-   ∘ New pinwheel and spoke patterns in videotestsrc
-   ∘ videomixer can now accept different video formats on its sinkpads
-     and converts to a common format during mixing
-
- • Audio:
-   ∘ audioconvert will try harder to minimise quality losses when
-     conversion is necessary
-   ∘ adder now allows muting/unmuting of its input streams, and also
-     per-input stream volume 
-   ∘ pulseaudio elements can switch between devices during playback now
-   ∘ aacparse can convert between ADTS←→RAW
-
- • Platform specific changes:
-   ∘ Caps, events, etc. are now printed in the GStreamer debug logs
-     with their content instead of just the pointer address even on
-     non-glibc platforms (e.g. Windows, OSX, Android).
-   ∘ Network elements (UDP/TCP) now work better with platforms,
-     where IPv6 sockets can't handle IPv4 (e.g. Windows)
-   ∘ Linux/BSD: v4l2 had many improvements and cleanups
-
- • Other changes:
-   ∘ gst-libav now uses libav 9
-   ∘ Static linking of plugins is supported now (also in 1.0.7)
-   ∘ rtspsrc: add support for NetClientClock: when the server suggests a
-     GstNetTimeProvider in the SDP, set up a GstNetClientClock that
-     slaves to the remote clock and suggest this clock in provide_clock.
-     Simplifies synchronized playback of a resource from an RTSP server.
-     gst-rtsp-server now supports adding this to the SDP and can provide
-     a network clock
-   ∘ RTP retransmission / NACK support and big RTP jitterbuffer improvements
-   ∘ SRTP and DTLS support
-   ∘ Changes to many elements and core to use the correct sticky event
-     order and also not lose any important sticky events during flushing
-   ∘ >1000 fixed bug reports, and many other bug fixes and other
-     improvements everywhere that had no bug report
-
-Things to look out for:
- • Single header includes for all libraries, e.g. #include
-   <gst/video/video.h> - this was needed for some bindings.
- • Stricter (correct) caps subset checking in some cases where this was
-   not correct before. Caps will now always fail to be a compatible
-   subset of another set of caps if the subset caps are missing some
-   fields that the superset caps have. This might lead to not-negotiated
-   errors if caps are incomplete now. However, it also prevents possible
-   data corruption caused by piping data formatted in an
-   incompatible/unexpected way into some elements. Check your h264 caps
-   for stream-format and alignment fields and AAC caps for the
-   stream-format field. This change will also be included in the next
-   stable 1.0.8 release.
- • Stricter checking for missing events and correct sticky event order
-   (stream-start, caps, segment) in some places; this is not enabled in
-   stable releases by default, but you may get warnings when using git
-   builds, development releases or when compiling with
-   -UG_DISABLE_ASSERT in CFLAGS
- • x264enc now outputs data in byte-stream by default if downstream has
-   ANY caps (e.g. appsink without caps set, filesink, udpsink,
-   tcpserversink etc.)
- • The MPEG TS demuxer posts messages contain the PMT, PAT, etc. in a
-   different format now. This new format uses the data structures from
-   the new MPEGTS library
- • The GstContext API has changed between 1.1.4 and 1.1.90
+This is GStreamer Good Plugins 1.2.1
 
diff --git a/README b/README
index 5df2d2b0568d51477124192db80693694201d266..a8f26f0c067b7ddcabf2f2d966a16f561efe5ecf 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.1.x development series
+GStreamer 1.2.x stable series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index 3a80727ac431fc051906c68de2f9f0f4fb389c14..500e1defb2d4a5867770cfce3ddeabfbd640be24 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,8 +1,8 @@
 
-Release notes for GStreamer Good Plugins 1.2.0
+Release notes for GStreamer Good Plugins 1.2.1
 
 
-The GStreamer team is proud to announce a new feature release
+The GStreamer team is proud to announce a new bug-fix release
 in the 1.x stable series of the
 core of the GStreamer streaming media framework.
 
@@ -57,11 +57,26 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
 
 Bugs fixed in this release
      
-      * 706083 : v4l2src: UVC Allocated buffers wrapped in GstBuffer get orphaned by GstBuffer API
-      * 707242 : qtmux: streamable and faststart property have no effect
+      * 683536 : souphttpsrc: Handles long pause (long enough to timeout TCP socket connection) as EOS
       * 707933 : matroskademux: Wrong UTF8 detection causes wrong detection of subtitle encoding
-      * 708501 : osxvideosink: fix segfault releasing the element
-      * 708622 : rtpjitterbuffer: fix various regressions
+      * 707975 : qtdemux: Can't handle datetimes before 1970 yet
+      * 708505 : matroskademux: sends unnecessary gap events
+      * 708864 : mp4mux: Does not negotiate due to framerate caps not set on peer pad
+      * 709270 : qtdemux: Does not support mp2v fourcc for MPEG-2 video
+      * 709352 : jpegdec: Does not require width/height on caps or parsed input
+      * 709384 : videomixer: Check if the source pad needs reconfiguration and update the source caps in that case
+      * 709390 : videomixer: Update videoconversion code
+      * 709423 : v4l2bufferpool: O_CLOEXEC needs _GNU_SOURCE
+      * 709457 : Do not write out SegmentUID when muxing to WebM
+      * 709507 : deinterlace: Segfault in handling of planar YUV video formats
+      * 709614 : wavenc: Uses invalid caps for alaw and mulaw
+      * 709728 : dvdemux/dvdec: Sends stream-start, caps and segment events in wrong order
+      * 710110 : multiudpsink: Leaks GstMemories when flushing
+      * 710215 : audioiirfilter: Crashes when no coefficients are provided
+      * 710623 : qtdemux: Video captured by iPad couldn't play in push mode
+      * 711230 : rtspsrc: allow setting certificate validation flags
+      * 711497 : rtpvp8pay: Compatibility issue with linphone due to always sending a picture id
+      * 711699 : wavenc: bogus header generated
 
 ==== Download ====
 
@@ -98,11 +113,20 @@ subscribe to the gstreamer-devel list.
         
 Contributors to this release
     
+      * Aleix Conchillo Flaque
       * Andoni Morales Alastruey
-      * Edward Hervey
+      * Hans MÃ¥nsson
+      * Matej Knopp
+      * Mathieu Duponchelle
+      * Matthieu Bouron
+      * Ognyan Tonchev
       * Olivier Crête
-      * Robert Krakora
+      * Peter Korsgaard
+      * Philippe Normand
+      * Reynaldo H. Verdejo Pinochet
+      * Rico Tzschichholz
       * Sebastian Dröge
+      * Thiago Santos
       * Tim-Philipp Müller
       * Wim Taymans
  
\ No newline at end of file
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index 0b9273462613d21f6a0f577559ea7b4bdfbc2fa5..3af5547b4bfa814e1750c33f9de491b79939cc86 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -34,7 +34,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   AC_ARG_ENABLE(gobject-cast-checks,
     AS_HELP_STRING([--enable-gobject-cast-checks[=@<:@no/auto/yes@:>@]],
-      [Enable GObject cast checks]),, 
+      [Enable GObject cast checks]),[enable_gobject_cast_checks=$enableval],
     [enable_gobject_cast_checks=auto])
 
   if test "x$enable_gobject_cast_checks" = "xauto"; then
@@ -52,7 +52,7 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
 
   AC_ARG_ENABLE(glib-asserts,
     AS_HELP_STRING([--enable-glib-asserts[=@<:@no/auto/yes@:>@]],
-      [Enable GLib assertion]),, 
+      [Enable GLib assertion]),[enable_glib_assertions=$enableval],
     [enable_glib_assertions=auto])
 
   if test "x$enable_glib_assertions" = "xauto"; then
diff --git a/compile b/compile
index b1f4749152a70326fda249f12dbcf90da29348ab..531136b068ef00e23d38429e6ee9a57d581a0870 100755
--- a/compile
+++ b/compile
@@ -1,10 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2012-01-04.17; # UTC
+scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009, 2010, 2012 Free
-# Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -79,6 +78,53 @@ func_file_conv ()
   esac
 }
 
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+  func_file_conv "$1"
+  if test -z "$lib_path"; then
+    lib_path=$file
+  else
+    lib_path="$lib_path;$file"
+  fi
+  linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+  lib=$1
+  found=no
+  save_IFS=$IFS
+  IFS=';'
+  for dir in $lib_path $LIB
+  do
+    IFS=$save_IFS
+    if $shared && test -f "$dir/$lib.dll.lib"; then
+      found=yes
+      lib=$dir/$lib.dll.lib
+      break
+    fi
+    if test -f "$dir/$lib.lib"; then
+      found=yes
+      lib=$dir/$lib.lib
+      break
+    fi
+    if test -f "$dir/lib$lib.a"; then
+      found=yes
+      lib=$dir/lib$lib.a
+      break
+    fi
+  done
+  IFS=$save_IFS
+
+  if test "$found" != yes; then
+    lib=$lib.lib
+  fi
+}
+
 # func_cl_wrapper cl arg...
 # Adjust compile command to suit cl
 func_cl_wrapper ()
@@ -109,43 +155,34 @@ func_cl_wrapper ()
 	      ;;
 	  esac
 	  ;;
+	-I)
+	  eat=1
+	  func_file_conv "$2" mingw
+	  set x "$@" -I"$file"
+	  shift
+	  ;;
 	-I*)
 	  func_file_conv "${1#-I}" mingw
 	  set x "$@" -I"$file"
 	  shift
 	  ;;
+	-l)
+	  eat=1
+	  func_cl_dashl "$2"
+	  set x "$@" "$lib"
+	  shift
+	  ;;
 	-l*)
-	  lib=${1#-l}
-	  found=no
-	  save_IFS=$IFS
-	  IFS=';'
-	  for dir in $lib_path $LIB
-	  do
-	    IFS=$save_IFS
-	    if $shared && test -f "$dir/$lib.dll.lib"; then
-	      found=yes
-	      set x "$@" "$dir/$lib.dll.lib"
-	      break
-	    fi
-	    if test -f "$dir/$lib.lib"; then
-	      found=yes
-	      set x "$@" "$dir/$lib.lib"
-	      break
-	    fi
-	  done
-	  IFS=$save_IFS
-
-	  test "$found" != yes && set x "$@" "$lib.lib"
+	  func_cl_dashl "${1#-l}"
+	  set x "$@" "$lib"
 	  shift
 	  ;;
+	-L)
+	  eat=1
+	  func_cl_dashL "$2"
+	  ;;
 	-L*)
-	  func_file_conv "${1#-L}"
-	  if test -z "$lib_path"; then
-	    lib_path=$file
-	  else
-	    lib_path="$lib_path;$file"
-	  fi
-	  linker_opts="$linker_opts -LIBPATH:$file"
+	  func_cl_dashL "${1#-L}"
 	  ;;
 	-static)
 	  shared=false
diff --git a/config.guess b/config.guess
index d622a44e551f209d5e8c5462b3fe53a162f7b330..b79252d6b1034cbcce18ed21d4ed21a405f987e9 100755
--- a/config.guess
+++ b/config.guess
@@ -1,14 +1,12 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2013-06-10'
 
 # 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
-# the Free Software Foundation; either version 2 of the License, or
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -22,19 +20,17 @@ timestamp='2012-02-10'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches@gnu.org> and include a ChangeLog
-# entry.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 #
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
+# Originally written by Per Bothner.
 #
 # 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
+#
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
+
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -54,9 +50,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -138,6 +132,27 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
+case "${UNAME_SYSTEM}" in
+Linux|GNU|GNU/*)
+	# If the system lacks a compiler, then just pick glibc.
+	# We could probably try harder.
+	LIBC=gnu
+
+	eval $set_cc_for_build
+	cat <<-EOF > $dummy.c
+	#include <features.h>
+	#if defined(__UCLIBC__)
+	LIBC=uclibc
+	#elif defined(__dietlibc__)
+	LIBC=dietlibc
+	#else
+	LIBC=gnu
+	#endif
+	EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	;;
+esac
+
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -200,6 +215,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
 	exit ;;
+    *:Bitrig:*:*)
+	UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE}
+	exit ;;
     *:OpenBSD:*:*)
 	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
 	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
@@ -302,7 +321,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
 	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
+    arm*:riscos:*:*|arm*:RISCOS:*:*)
 	echo arm-unknown-riscos
 	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
@@ -801,6 +820,9 @@ EOF
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
+    *:MINGW64*:*)
+	echo ${UNAME_MACHINE}-pc-mingw64
+	exit ;;
     *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
@@ -852,21 +874,21 @@ EOF
 	exit ;;
     *:GNU:*:*)
 	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
 	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/[-(].*//'`-gnu
+	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
 	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     aarch64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -879,59 +901,54 @@ EOF
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
 	esac
 	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
+    arc:Linux:*:* | arceb:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     arm*:Linux:*:*)
 	eval $set_cc_for_build
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	else
 	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
 		| grep -q __ARM_PCS_VFP
 	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi
 	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
+		echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf
 	    fi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     cris:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     crisv32:Linux:*:*)
-	echo ${UNAME_MACHINE}-axis-linux-gnu
+	echo ${UNAME_MACHINE}-axis-linux-${LIBC}
 	exit ;;
     frv:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     hexagon:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
+	echo ${UNAME_MACHINE}-pc-linux-${LIBC}
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -950,54 +967,63 @@ EOF
 	#endif
 EOF
 	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
 	;;
+    or1k:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	exit ;;
     or32:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
+	echo sparc-unknown-linux-${LIBC}
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
+	echo hppa64-unknown-linux-${LIBC}
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
+	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
+	  *)    echo hppa-unknown-linux-${LIBC} ;;
 	esac
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
+	echo powerpc64-unknown-linux-${LIBC}
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
+	echo powerpc-unknown-linux-${LIBC}
+	exit ;;
+    ppc64le:Linux:*:*)
+	echo powerpc64le-unknown-linux-${LIBC}
+	exit ;;
+    ppcle:Linux:*:*)
+	echo powerpcle-unknown-linux-${LIBC}
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
+	echo ${UNAME_MACHINE}-ibm-linux-${LIBC}
 	exit ;;
     sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
+	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
 	exit ;;
     x86_64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
 	exit ;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
@@ -1201,6 +1227,9 @@ EOF
     BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
 	echo i586-pc-haiku
 	exit ;;
+    x86_64:Haiku:*:*)
+	echo x86_64-unknown-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1227,19 +1256,21 @@ EOF
 	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		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) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
+	eval $set_cc_for_build
+	if test "$UNAME_PROCESSOR" = unknown ; then
+	    UNAME_PROCESSOR=powerpc
+	fi
+	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) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		case $UNAME_PROCESSOR in
+		    i386) UNAME_PROCESSOR=x86_64 ;;
+		    powerpc) UNAME_PROCESSOR=powerpc64 ;;
+		esac
+	    fi
+	fi
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
 	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
@@ -1256,7 +1287,7 @@ EOF
     NEO-?:NONSTOP_KERNEL:*:*)
 	echo neo-tandem-nsk${UNAME_RELEASE}
 	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
+    NSE-*:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
 	exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
@@ -1330,9 +1361,6 @@ EOF
 	exit ;;
 esac
 
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
 eval $set_cc_for_build
 cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
diff --git a/config.sub b/config.sub
index c894da45500c4af1bf5688e713a8895622d18182..9633db704678e91ad221adc4f30a22ce0bc61e1b 100755
--- a/config.sub
+++ b/config.sub
@@ -1,24 +1,18 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011, 2012 Free Software Foundation, Inc.
+#   Copyright 1992-2013 Free Software Foundation, Inc.
 
-timestamp='2012-02-10'
+timestamp='2013-08-10'
 
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# 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
-# the Free Software Foundation; either version 2 of the License, or
+# 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
+# the Free Software Foundation; either version 3 of the License, or
 # (at your option) any later version.
 #
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+# General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, see <http://www.gnu.org/licenses/>.
@@ -26,11 +20,12 @@ timestamp='2012-02-10'
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
+# the same distribution terms that you use for the rest of that
+# program.  This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
 
 
-# Please send patches to <config-patches@gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
+# Please send patches with a ChangeLog entry to config-patches@gnu.org.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
@@ -73,9 +68,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-Free Software Foundation, Inc.
+Copyright 1992-2013 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."
@@ -123,7 +116,7 @@ esac
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
   knetbsd*-gnu* | netbsd*-gnu* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
@@ -156,7 +149,7 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
+	-apple | -axis | -knuth | -cray | -microblaze*)
 		os=
 		basic_machine=$1
 		;;
@@ -225,6 +218,12 @@ case $os in
 	-isc*)
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
 	-lynx*)
 		os=-lynxos
 		;;
@@ -253,10 +252,12 @@ case $basic_machine in
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
+	| arc | arceb \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
+	| avr | avr32 \
+	| be32 | be64 \
 	| bfin \
-	| c4x | clipper \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| epiphany \
 	| fido | fr30 | frv \
@@ -267,7 +268,7 @@ case $basic_machine in
 	| le32 | le64 \
 	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
+	| maxq | mb | microblaze | microblazeel | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -285,16 +286,17 @@ case $basic_machine in
 	| mipsisa64r2 | mipsisa64r2el \
 	| mipsisa64sb1 | mipsisa64sb1el \
 	| mipsisa64sr71k | mipsisa64sr71kel \
+	| mipsr5900 | mipsr5900el \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
 	| moxie \
 	| mt \
 	| msp430 \
 	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
+	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
 	| open8 \
-	| or32 \
+	| or1k | or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle \
 	| pyramid \
@@ -364,13 +366,13 @@ case $basic_machine in
 	| aarch64-* | aarch64_be-* \
 	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
 	| avr-* | avr32-* \
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -383,7 +385,8 @@ case $basic_machine in
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
+	| microblaze-* | microblazeel-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
@@ -401,12 +404,13 @@ case $basic_machine in
 	| mipsisa64r2-* | mipsisa64r2el-* \
 	| mipsisa64sb1-* | mipsisa64sb1el-* \
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
+	| mipsr5900-* | mipsr5900el-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
+	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
 	| orion-* \
@@ -782,11 +786,15 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
-	microblaze)
+	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
 	mingw32)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-mingw32
 		;;
 	mingw32ce)
@@ -822,7 +830,7 @@ case $basic_machine in
 		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
 		;;
 	msys)
-		basic_machine=i386-pc
+		basic_machine=i686-pc
 		os=-msys
 		;;
 	mvs)
@@ -1013,7 +1021,11 @@ case $basic_machine in
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
-	rdos)
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
 		basic_machine=i386-pc
 		os=-rdos
 		;;
@@ -1340,21 +1352,21 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
 	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
+	      | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
@@ -1486,9 +1498,6 @@ case $os in
 	-aros*)
 		os=-aros
 		;;
-	-kaos*)
-		os=-kaos
-		;;
 	-zvmoe)
 		os=-zvmoe
 		;;
@@ -1537,6 +1546,12 @@ case $basic_machine in
 	c4x-* | tic4x-*)
 		os=-coff
 		;;
+	c8051-*)
+		os=-elf
+		;;
+	hexagon-*)
+		os=-elf
+		;;
 	tic54x-*)
 		os=-coff
 		;;
@@ -1577,6 +1592,9 @@ case $basic_machine in
 	mips*-*)
 		os=-elf
 		;;
+	or1k-*)
+		os=-elf
+		;;
 	or32-*)
 		os=-coff
 		;;
diff --git a/configure b/configure
index 31b57849b12f48d8587d08339ed47a5f0b1492d9..2059e9a163d85502c3ed05c640c7b8ea4d4da004 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.2.0.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.2.1.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GStreamer Good Plug-ins'
 PACKAGE_TARNAME='gst-plugins-good'
-PACKAGE_VERSION='1.2.0'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.2.0'
+PACKAGE_VERSION='1.2.1'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.2.1'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1945,7 +1945,7 @@ if test "$ac_init_help" = "long"; then
   # 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.2.0 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.2.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2021,7 +2021,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.2.0:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.2.1:";;
    esac
   cat <<\_ACEOF
 
@@ -2381,7 +2381,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.2.0
+GStreamer Good Plug-ins configure 1.2.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3192,7 +3192,7 @@ cat >config.log <<_ACEOF
 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.2.0, which was
+It was created by GStreamer Good Plug-ins $as_me 1.2.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4174,7 +4174,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.2.0'
+ VERSION='1.2.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4384,9 +4384,9 @@ END
 fi
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.2.0 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.2.0 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.2.0 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.2.1 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.2.1 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.2.1 | cut -d'.' -f3)
 
 
 
@@ -4397,7 +4397,7 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.2.0 | cut -d'.' -f4)
+  NANO=$(echo 1.2.1 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -9047,10 +9047,10 @@ fi
 done
 
 
-  GST_CURRENT=200
+  GST_CURRENT=201
   GST_REVISION=0
-  GST_AGE=200
-  GST_LIBVERSION=200:0:200
+  GST_AGE=201
+  GST_LIBVERSION=201:0:201
 
 
 
@@ -13376,7 +13376,7 @@ CC="$lt_save_CC"
 
 
 GST_REQ=1.2.0
-GSTPB_REQ=1.2.0
+GSTPB_REQ=1.2.1
 
 
 
@@ -24146,7 +24146,7 @@ fi
 
   # Check whether --enable-gobject-cast-checks was given.
 if test "${enable_gobject_cast_checks+set}" = set; then :
-  enableval=$enable_gobject_cast_checks;
+  enableval=$enable_gobject_cast_checks; enable_gobject_cast_checks=$enableval
 else
   enable_gobject_cast_checks=auto
 fi
@@ -24166,7 +24166,7 @@ fi
 
   # Check whether --enable-glib-asserts was given.
 if test "${enable_glib_asserts+set}" = set; then :
-  enableval=$enable_glib_asserts;
+  enableval=$enable_glib_asserts; enable_glib_assertions=$enableval
 else
   enable_glib_assertions=auto
 fi
@@ -37789,7 +37789,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # 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.2.0, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.2.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -37855,7 +37855,7 @@ _ACEOF
 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.2.0
+GStreamer Good Plug-ins config.status 1.2.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 86807f5c17cd5708301570641c00823100a9e885..0c7ad96d42e2b0a5ae5d96f64e8753a124b5152f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
 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.2.0],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.2.1],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
 
 AG_GST_INIT
 
@@ -43,11 +43,11 @@ AC_DEFINE_UNQUOTED(GST_API_VERSION, "$GST_API_VERSION",
   [GStreamer API Version])
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 200, 0, 200)
+AS_LIBTOOL(GST, 201, 0, 201)
 
 dnl *** required versions of GStreamer stuff ***
 GST_REQ=1.2.0
-GSTPB_REQ=1.2.0
+GSTPB_REQ=1.2.1
 
 dnl *** autotools stuff ****
 
diff --git a/depcomp b/depcomp
index bd0ac089584a762069b7e0b3f2937e89b9144cc7..4ebd5b3a2f2d689de95251c9424e2763aa159de5 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2011-12-04.11; # UTC
+scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
-# 2011 Free Software Foundation, Inc.
+# Copyright (C) 1999-2013 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,9 +27,9 @@ scriptversion=2011-12-04.11; # UTC
 
 case $1 in
   '')
-     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
-     exit 1;
-     ;;
+    echo "$0: No command.  Try '$0 --help' for more information." 1>&2
+    exit 1;
+    ;;
   -h | --h*)
     cat <<\EOF
 Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -40,8 +39,8 @@ as side-effects.
 
 Environment variables:
   depmode     Dependency tracking mode.
-  source      Source file read by `PROGRAMS ARGS'.
-  object      Object file output by `PROGRAMS ARGS'.
+  source      Source file read by 'PROGRAMS ARGS'.
+  object      Object file output by 'PROGRAMS ARGS'.
   DEPDIR      directory where to store dependencies.
   depfile     Dependency file to output.
   tmpdepfile  Temporary file to use when outputting dependencies.
@@ -57,6 +56,66 @@ EOF
     ;;
 esac
 
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'.  Note that this directory component will
+# be either empty or ending with a '/' character.  This is deliberate.
+set_dir_from ()
+{
+  case $1 in
+    */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+      *) dir=;;
+  esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+  base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+  echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+  # If the compiler actually managed to produce a dependency file,
+  # post-process it.
+  if test -f "$tmpdepfile"; then
+    # Each line is of the form 'foo.o: dependency.h'.
+    # Do two passes, one to just change these to
+    #   $object: dependency.h
+    # and one to simply output
+    #   dependency.h:
+    # which is needed to avoid the deleted-header problem.
+    { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+      sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+    } > "$depfile"
+    rm -f "$tmpdepfile"
+  else
+    make_dummy_depfile
+  fi
+}
+
+# A tabulation character.
+tab='	'
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
   echo "depcomp: Variables source, object and depmode must be set" 1>&2
   exit 1
@@ -69,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
 
 rm -f "$tmpdepfile"
 
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
 # Some modes work just like other modes, but use different flags.  We
 # parameterize here, but still list the modes in the big case below,
 # to make depend.m4 easier to write.  Note that we *cannot* use a case
@@ -80,26 +142,32 @@ if test "$depmode" = hp; then
 fi
 
 if test "$depmode" = dashXmstdout; then
-   # This is just like dashmstdout with a different argument.
-   dashmflag=-xM
-   depmode=dashmstdout
+  # This is just like dashmstdout with a different argument.
+  dashmflag=-xM
+  depmode=dashmstdout
 fi
 
 cygpath_u="cygpath -u -f -"
 if test "$depmode" = msvcmsys; then
-   # This is just like msvisualcpp but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvisualcpp
+  # This is just like msvisualcpp but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvisualcpp
 fi
 
 if test "$depmode" = msvc7msys; then
-   # This is just like msvc7 but w/o cygpath translation.
-   # Just convert the backslash-escaped backslashes to single forward
-   # slashes to satisfy depend.m4
-   cygpath_u='sed s,\\\\,/,g'
-   depmode=msvc7
+  # This is just like msvc7 but w/o cygpath translation.
+  # Just convert the backslash-escaped backslashes to single forward
+  # slashes to satisfy depend.m4
+  cygpath_u='sed s,\\\\,/,g'
+  depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+  # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+  gccflag=-qmakedep=gcc,-MF
+  depmode=gcc
 fi
 
 case "$depmode" in
@@ -122,8 +190,7 @@ gcc3)
   done
   "$@"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -131,13 +198,17 @@ gcc3)
   ;;
 
 gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
 ## - Don't want to use -MD because we'd like the dependencies to end
 ##   up in a subdir.  Having to rename by hand is ugly.
 ##   (We might end up doing this anyway to support other compilers.)
 ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
-##   -MM, not -M (despite what the docs say).
+##   -MM, not -M (despite what the docs say).  Also, it might not be
+##   supported by the other compilers which use the 'gcc' depmode.
 ## - Using -M directly means running the compiler twice (even worse
 ##   than renaming).
   if test -z "$gccflag"; then
@@ -145,33 +216,31 @@ gcc)
   fi
   "$@" -Wp,"$gccflag$tmpdepfile"
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
-## The second -e expression handles DOS-style file names with drive letters.
+  # The second -e expression handles DOS-style file names with drive
+  # letters.
   sed -e 's/^[^:]*: / /' \
       -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
-## This next piece of magic avoids the `deleted header file' problem.
+## This next piece of magic avoids the "deleted header file" problem.
 ## The problem is that when a header file which appears in a .P file
 ## is deleted, the dependency causes make to die (because there is
 ## typically no way to rebuild the header).  We avoid this by adding
 ## dummy dependencies for each header file.  Too bad gcc doesn't do
 ## this for us directly.
-  tr ' ' '
-' < "$tmpdepfile" |
-## Some versions of gcc put a space before the `:'.  On the theory
+## Some versions of gcc put a space before the ':'.  On the theory
 ## that the space means something, we add a space to the output as
 ## well.  hp depmode also adds that space, but also prefixes the VPATH
 ## to the object.  Take care to not repeat it in the output.
 ## Some versions of the HPUX 10.20 sed can't process this invocation
 ## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
-      | sed -e 's/$/ :/' >> "$depfile"
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -189,8 +258,7 @@ sgi)
     "$@" -MDupdate "$tmpdepfile"
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -198,43 +266,41 @@ sgi)
 
   if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
     echo "$object : \\" > "$depfile"
-
     # Clip off the initial element (the dependent).  Don't try to be
     # clever and replace this with sed code, as IRIX sed won't handle
     # lines with more than a fixed number of characters (4096 in
     # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
-    # the IRIX cc adds comments like `#:fec' to the end of the
+    # the IRIX cc adds comments like '#:fec' to the end of the
     # dependency line.
-    tr ' ' '
-' < "$tmpdepfile" \
-    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
-    tr '
-' ' ' >> "$depfile"
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+      | tr "$nl" ' ' >> "$depfile"
     echo >> "$depfile"
-
     # The second pass generates a dummy entry for each header file.
-    tr ' ' '
-' < "$tmpdepfile" \
-   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> "$depfile"
+    tr ' ' "$nl" < "$tmpdepfile" \
+      | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+      >> "$depfile"
   else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile"
   ;;
 
+xlc)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 aix)
   # The C for AIX Compiler uses -M and outputs the dependencies
   # in a .u file.  In older versions, this file always lives in the
-  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # current directory.  Also, the AIX compiler puts '$object:' at the
   # start of each line; $object doesn't have directory information.
   # Version 6 uses the directory in both cases.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.u
     tmpdepfile2=$base.u
@@ -247,9 +313,7 @@ aix)
     "$@" -M
   fi
   stat=$?
-
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
     exit $stat
   fi
@@ -258,44 +322,100 @@ aix)
   do
     test -f "$tmpdepfile" && break
   done
-  if test -f "$tmpdepfile"; then
-    # Each line is of the form `foo.o: dependent.h'.
-    # Do two passes, one to just change these to
-    # `$object: dependent.h' and one to simply `dependent.h:'.
-    sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-    # That's a tab and a space in the [].
-    sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-  else
-    # The sourcefile does not contain any dependencies, so just
-    # store a dummy comment line, to avoid errors with the Makefile
-    # "include basename.Plo" scheme.
-    echo "#dummy" > "$depfile"
+  aix_post_process_depfile
+  ;;
+
+tcc)
+  # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+  # FIXME: That version still under development at the moment of writing.
+  #        Make that this statement remains true also for stable, released
+  #        versions.
+  # It will wrap lines (doesn't matter whether long or short) with a
+  # trailing '\', as in:
+  #
+  #   foo.o : \
+  #    foo.c \
+  #    foo.h \
+  #
+  # It will put a trailing '\' even on the last line, and will use leading
+  # spaces rather than leading tabs (at least since its commit 0394caf7
+  # "Emit spaces for -MD").
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile"
+    exit $stat
   fi
+  rm -f "$depfile"
+  # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+  # We have to change lines of the first kind to '$object: \'.
+  sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+  # And for each line of the second kind, we have to emit a 'dep.h:'
+  # dummy dependency, to avoid the deleted-header problem.
+  sed -n -e 's|^  *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
-icc)
-  # Intel's C compiler understands `-MD -MF file'.  However on
-  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
-  # ICC 7.0 will fill foo.d with something like
-  #    foo.o: sub/foo.c
-  #    foo.o: sub/foo.h
-  # which is wrong.  We want:
-  #    sub/foo.o: sub/foo.c
-  #    sub/foo.o: sub/foo.h
-  #    sub/foo.c:
-  #    sub/foo.h:
-  # ICC 7.1 will output
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file.  A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+  # Portland's C compiler understands '-MD'.
+  # Will always output deps to 'file.d' where file is the root name of the
+  # source file under compilation, even if file resides in a subdirectory.
+  # The object file name does not affect the name of the '.d' file.
+  # pgcc 10.2 will output
   #    foo.o: sub/foo.c sub/foo.h
-  # and will wrap long lines using \ :
+  # and will wrap long lines using '\' :
   #    foo.o: sub/foo.c ... \
   #     sub/foo.h ... \
   #     ...
+  set_dir_from "$object"
+  # Use the source, not the object, to determine the base name, since
+  # that's sadly what pgcc will do too.
+  set_base_from "$source"
+  tmpdepfile=$base.d
+
+  # For projects that build the same source file twice into different object
+  # files, the pgcc approach of using the *source* file root name can cause
+  # problems in parallel builds.  Use a locking strategy to avoid stomping on
+  # the same $tmpdepfile.
+  lockdir=$base.d-lock
+  trap "
+    echo '$0: caught signal, cleaning up...' >&2
+    rmdir '$lockdir'
+    exit 1
+  " 1 2 13 15
+  numtries=100
+  i=$numtries
+  while test $i -gt 0; do
+    # mkdir is a portable test-and-set.
+    if mkdir "$lockdir" 2>/dev/null; then
+      # This process acquired the lock.
+      "$@" -MD
+      stat=$?
+      # Release the lock.
+      rmdir "$lockdir"
+      break
+    else
+      # If the lock is being held by a different process, wait
+      # until the winning process is done or we timeout.
+      while test -d "$lockdir" && test $i -gt 0; do
+        sleep 1
+        i=`expr $i - 1`
+      done
+    fi
+    i=`expr $i - 1`
+  done
+  trap - 1 2 13 15
+  if test $i -le 0; then
+    echo "$0: failed to acquire lock after $numtries attempts" >&2
+    echo "$0: check lockdir '$lockdir'" >&2
+    exit 1
+  fi
 
-  "$@" -MD -MF "$tmpdepfile"
-  stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -307,8 +427,8 @@ icc)
   sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
   # Some versions of the HPUX 10.20 sed can't process this invocation
   # correctly.  Breaking it into two sed invocations is a workaround.
-  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
-    sed -e 's/$/ :/' >> "$depfile"
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -319,9 +439,8 @@ hp2)
   # 'foo.d', which lands next to the object file, wherever that
   # happens to be.
   # Much of this is similar to the tru64 case; see comments there.
-  dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-  test "x$dir" = "x$object" && dir=
-  base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+  set_dir_from  "$object"
+  set_base_from "$object"
   if test "$libtool" = yes; then
     tmpdepfile1=$dir$base.d
     tmpdepfile2=$dir.libs/$base.d
@@ -332,8 +451,7 @@ hp2)
     "$@" +Maked
   fi
   stat=$?
-  if test $stat -eq 0; then :
-  else
+  if test $stat -ne 0; then
      rm -f "$tmpdepfile1" "$tmpdepfile2"
      exit $stat
   fi
@@ -343,77 +461,61 @@ hp2)
     test -f "$tmpdepfile" && break
   done
   if test -f "$tmpdepfile"; then
-    sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
-    # Add `dependent.h:' lines.
+    sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+    # Add 'dependent.h:' lines.
     sed -ne '2,${
-	       s/^ *//
-	       s/ \\*$//
-	       s/$/:/
-	       p
-	     }' "$tmpdepfile" >> "$depfile"
+               s/^ *//
+               s/ \\*$//
+               s/$/:/
+               p
+             }' "$tmpdepfile" >> "$depfile"
   else
-    echo "#dummy" > "$depfile"
+    make_dummy_depfile
   fi
   rm -f "$tmpdepfile" "$tmpdepfile2"
   ;;
 
 tru64)
-   # The Tru64 compiler uses -MD to generate dependencies as a side
-   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
-   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
-   # dependencies in `foo.d' instead, so we check for that too.
-   # Subdirectories are respected.
-   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
-   test "x$dir" = "x$object" && dir=
-   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
-
-   if test "$libtool" = yes; then
-      # With Tru64 cc, shared objects can also be used to make a
-      # static library.  This mechanism is used in libtool 1.4 series to
-      # handle both shared and static libraries in a single compilation.
-      # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
-      #
-      # With libtool 1.5 this exception was removed, and libtool now
-      # generates 2 separate objects for the 2 libraries.  These two
-      # compilations output dependencies in $dir.libs/$base.o.d and
-      # in $dir$base.o.d.  We have to check for both files, because
-      # one of the two compilations can be disabled.  We should prefer
-      # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
-      # automatically cleaned when .libs/ is deleted, while ignoring
-      # the former would cause a distcleancheck panic.
-      tmpdepfile1=$dir.libs/$base.lo.d   # libtool 1.4
-      tmpdepfile2=$dir$base.o.d          # libtool 1.5
-      tmpdepfile3=$dir.libs/$base.o.d    # libtool 1.5
-      tmpdepfile4=$dir.libs/$base.d      # Compaq CCC V6.2-504
-      "$@" -Wc,-MD
-   else
-      tmpdepfile1=$dir$base.o.d
-      tmpdepfile2=$dir$base.d
-      tmpdepfile3=$dir$base.d
-      tmpdepfile4=$dir$base.d
-      "$@" -MD
-   fi
-
-   stat=$?
-   if test $stat -eq 0; then :
-   else
-      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-      exit $stat
-   fi
-
-   for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
-   do
-     test -f "$tmpdepfile" && break
-   done
-   if test -f "$tmpdepfile"; then
-      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
-      # That's a tab and a space in the [].
-      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
-   else
-      echo "#dummy" > "$depfile"
-   fi
-   rm -f "$tmpdepfile"
-   ;;
+  # The Tru64 compiler uses -MD to generate dependencies as a side
+  # effect.  'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+  # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+  # dependencies in 'foo.d' instead, so we check for that too.
+  # Subdirectories are respected.
+  set_dir_from  "$object"
+  set_base_from "$object"
+
+  if test "$libtool" = yes; then
+    # Libtool generates 2 separate objects for the 2 libraries.  These
+    # two compilations output dependencies in $dir.libs/$base.o.d and
+    # in $dir$base.o.d.  We have to check for both files, because
+    # one of the two compilations can be disabled.  We should prefer
+    # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+    # automatically cleaned when .libs/ is deleted, while ignoring
+    # the former would cause a distcleancheck panic.
+    tmpdepfile1=$dir$base.o.d          # libtool 1.5
+    tmpdepfile2=$dir.libs/$base.o.d    # Likewise.
+    tmpdepfile3=$dir.libs/$base.d      # Compaq CCC V6.2-504
+    "$@" -Wc,-MD
+  else
+    tmpdepfile1=$dir$base.d
+    tmpdepfile2=$dir$base.d
+    tmpdepfile3=$dir$base.d
+    "$@" -MD
+  fi
+
+  stat=$?
+  if test $stat -ne 0; then
+    rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+    exit $stat
+  fi
+
+  for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+  do
+    test -f "$tmpdepfile" && break
+  done
+  # Same post-processing that is required for AIX mode.
+  aix_post_process_depfile
+  ;;
 
 msvc7)
   if test "$libtool" = yes; then
@@ -424,8 +526,7 @@ msvc7)
   "$@" $showIncludes > "$tmpdepfile"
   stat=$?
   grep -v '^Note: including file: ' "$tmpdepfile"
-  if test "$stat" = 0; then :
-  else
+  if test $stat -ne 0; then
     rm -f "$tmpdepfile"
     exit $stat
   fi
@@ -443,14 +544,15 @@ msvc7)
   p
 }' | $cygpath_u | sort -u | sed -n '
 s/ /\\ /g
-s/\(.*\)/	\1 \\/p
+s/\(.*\)/'"$tab"'\1 \\/p
 s/.\(.*\) \\/\1:/
 H
 $ {
-  s/.*/	/
+  s/.*/'"$tab"'/
   G
   p
 }' >> "$depfile"
+  echo >> "$depfile" # make sure the fragment doesn't end with a backslash
   rm -f "$tmpdepfile"
   ;;
 
@@ -478,7 +580,7 @@ dashmstdout)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -498,18 +600,18 @@ dashmstdout)
   done
 
   test -z "$dashmflag" && dashmflag=-M
-  # Require at least two characters before searching for `:'
+  # Require at least two characters before searching for ':'
   # in the target name.  This is to cope with DOS-style filenames:
-  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
   "$@" $dashmflag |
-    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+    sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
   rm -f "$depfile"
   cat < "$tmpdepfile" > "$depfile"
-  tr ' ' '
-' < "$tmpdepfile" | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this sed invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  tr ' ' "$nl" < "$tmpdepfile" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
@@ -562,11 +664,12 @@ makedepend)
   # makedepend may prepend the VPATH from the source file name to the object.
   # No need to regex-escape $object, excess matching of '.' is harmless.
   sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
-  sed '1,2d' "$tmpdepfile" | tr ' ' '
-' | \
-## Some versions of the HPUX 10.20 sed can't process this invocation
-## correctly.  Breaking it into two sed invocations is a workaround.
-    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process the last invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed '1,2d' "$tmpdepfile" \
+    | tr ' ' "$nl" \
+    | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+    | sed -e 's/$/ :/' >> "$depfile"
   rm -f "$tmpdepfile" "$tmpdepfile".bak
   ;;
 
@@ -583,7 +686,7 @@ cpp)
     shift
   fi
 
-  # Remove `-o $object'.
+  # Remove '-o $object'.
   IFS=" "
   for arg
   do
@@ -602,10 +705,10 @@ cpp)
     esac
   done
 
-  "$@" -E |
-    sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
-       -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
-    sed '$ s: \\$::' > "$tmpdepfile"
+  "$@" -E \
+    | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+             -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+    | sed '$ s: \\$::' > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
   cat < "$tmpdepfile" >> "$depfile"
@@ -637,23 +740,23 @@ msvisualcpp)
       shift
       ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
-	set fnord "$@"
-	shift
-	shift
-	;;
+        set fnord "$@"
+        shift
+        shift
+        ;;
     *)
-	set fnord "$@" "$arg"
-	shift
-	shift
-	;;
+        set fnord "$@" "$arg"
+        shift
+        shift
+        ;;
     esac
   done
   "$@" -E 2>/dev/null |
   sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
-  echo "	" >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+  echo "$tab" >> "$depfile"
   sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index d91b2c8cf903f5377320e21ba6ff90f98163b57b..8abfabf2bf9af9b0e989fbe64a83c0339ea77ad9 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -988,6 +988,16 @@
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRTSPSrc::tls-validation-flags</NAME>
+<TYPE>GTlsCertificateFlags</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>TLS validation flags</NICK>
+<BLURB>TLS certificate validation flags used to validate the server certificate.</BLURB>
+<DEFAULT>G_TLS_CERTIFICATE_UNKNOWN_CA|G_TLS_CERTIFICATE_BAD_IDENTITY|G_TLS_CERTIFICATE_NOT_ACTIVATED|G_TLS_CERTIFICATE_EXPIRED|G_TLS_CERTIFICATE_REVOKED|G_TLS_CERTIFICATE_INSECURE|G_TLS_CERTIFICATE_GENERIC_ERROR</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRTPDec::skip</NAME>
 <TYPE>gint</TYPE>
@@ -23988,3 +23998,13 @@
 <DEFAULT>0</DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRtpVP8Pay::picture-id-mode</NAME>
+<TYPE>GstVP8RTPPayMode</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Picture ID Mode</NICK>
+<BLURB>The picture ID mode for payloading.</BLURB>
+<DEFAULT>No Picture ID</DEFAULT>
+</ARG>
+
diff --git a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2 b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
index 0b76d5c219604183344cb223fb9fdae861818851..a582d647fcdeed3c49fcdbb3f085c304c6b897a4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -1064,6 +1064,7 @@
     <keyword type="property" name="The &quot;ntp-sync&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/>
     <keyword type="property" name="The &quot;use-pipeline-clock&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/>
     <keyword type="property" name="The &quot;sdes&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes"/>
+    <keyword type="property" name="The &quot;tls-validation-flags&quot; property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"/>
     <keyword type="signal" name="The &quot;handle-request&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
     <keyword type="signal" name="The &quot;on-sdp&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
     <keyword type="signal" name="The &quot;select-stream&quot; signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
index 339029d3c659f7398134a625e0eb529d259e50de..a234fe6bdb07b8efe1975f7454a3b78e2db6b47b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
@@ -202,19 +202,19 @@ Documentation last reviewed on 2011-04-21
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
index 289d027208212b6fe20981cdb026e07618163d12..1107a75223b4ba0cc7e23c97e81a2b4861ecd8d7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -150,11 +150,7 @@ flvmux muxes different streams into an FLV file.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)2, framed=(boolean)true</td>
-</tr>
-<tr>
-<td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true</td>
+<td> audio/mpeg, mpegversion=(int){ 4, 2 }, stream-format=(string)raw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index beeadcdbaef60016bcb47e6d56841163107cc5f4..29c0dee461fdba570e97ddf69b94ad5a9e662d8a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -194,15 +194,15 @@ Documentation last reviewed on 2011-04-21
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index b284e221ee00094e9a551b7fd7fa24dbc415098c..9076ff3ba8e7c0e5a3879d39ca60002d52b38340 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -114,7 +114,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ]</td>
+<td>image/jpeg</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index 20b2198603aab8ae6dcc389ce84bf2fc4e0393a2..29a038b103eb3b0c5d69e8f1032725b3e4b39a91 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
@@ -231,11 +231,11 @@ Documentation last reviewed on 2011-04-21
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>image/x-j2c, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>image/x-j2c, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> image/x-jpc, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> image/x-jpc, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index 8d796723f1dad00b28877a9d9e5a648c734a61a3..f8295ef21590c973b1f611afbf7ac11b01a7f17f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -235,19 +235,19 @@ Documentation last reviewed on 2011-04-21
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-mp4-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-mp4-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 </tbody>
 </table></div>
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 f6b7ce04bb64dc8b9fcfb627b56418614814dcc2..cc3bafdf70f8ed4babb03d45c638412ee71f0052 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.2.0</td>
+<td>1.2.1</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 9c99f2e4de93d303d2ce29baa6c2bd853c000f1c..f8d5310bb133b4ce608b82bd4638069428de6690 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.2.0</td>
+<td>1.2.1</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 e53851d8c6ed503737968dabe99f577c064cb5f0..0fa4ec7f03126a5438cf6c12aaa6b0cc88f1b361 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.2.0</td>
+<td>1.2.1</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 07724278fc40153f0c9903957c72d902623bb8f4..67ac07fec109ddccb58889671a1eb2cdbc3a9384 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.2.0</td>
+<td>1.2.1</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 065cef05c077af640d06857ebc9599404f116195..0b82ab21b98d5969db14fd1afffe2b8d11d5faa3 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.2.0</td>
+<td>1.2.1</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 e2920f4980863e263193911329f3f3f5f91afc5e..b4f8f5e064b26e715cf0a6cd86a750340658e50a 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.2.0</td>
+<td>1.2.1</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 fa14cf8af3b31e8f0bc8e36587c27dc3e652d3d7..fb407e71a03c4e8e7b445dfbc14b636571186a07 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.2.0</td>
+<td>1.2.1</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 fdf69c94532e9a1ae6902407b8d0e97d6c712961..da81c3a7bb5b688123117794832bdb29ad5bcd7f 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.2.0</td>
+<td>1.2.1</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 c032127a3833e2ec713f41a73bf5cf454bfbdf80..b5d8790d4bf22a63770a13d318899c3247c5251f 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.2.0</td>
+<td>1.2.1</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 cf283ef72f3fda3150a24a7342a8b64940820d38..67f8d345f98ba3a9ba39518cfd566357c34df9da 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.2.0</td>
+<td>1.2.1</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 47124b6dbcd5480567b03f73c19f1100ea9765f5..96e6bf5faa784091791050777a9f63f3b9743bb2 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.2.0</td>
+<td>1.2.1</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 bd2d9a2de328c4f5ae9ac4e329b5f192e08273c2..5d6b9112e745caf67d25cbcd9f38a780e369ed05 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.2.0</td>
+<td>1.2.1</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 dd59a9e6d4cab994971706c8d524380916455d46..34f370e66a5b1518705b7e210a5b073b5356037b 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.2.0</td>
+<td>1.2.1</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 79a85a9ba565a04538d431ee5b4bf3698db82d2c..a160ebf8a129a255b20c8cb02fded7b6b2a858fc 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.2.0</td>
+<td>1.2.1</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 dae32f55ab5b57de2c766dcca7fad25003686029..a8f306034be0667871d998dc478c73fb13ba9a23 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.2.0</td>
+<td>1.2.1</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 0a4f7033dfd8579fed5ceb49bbe567246baebf81..44179dc5827d1465dd16a03d061db4e8784db6e1 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.2.0</td>
+<td>1.2.1</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 35389585f1059c7a113ae33af44d5a05609a8743..7b73c64f8e9b13614243ce3c4dbca684903198d7 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.2.0</td>
+<td>1.2.1</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 15da84d35f912a9fb5bf5c87042a380ec99face6..5750b347cc09c109f3def10633692d7c3e58a130 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.2.0</td>
+<td>1.2.1</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 f69e3920fdf37d3a8201420eb5ae9e4fd76f8240..15bf065a42d5ebd05806514059e2e18255767c5a 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.2.0</td>
+<td>1.2.1</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 6177f082c87547005efd918b44e6e5ce2c315276..75889cc2b6090631348e2644e4ba0e5933e0ed09 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.2.0</td>
+<td>1.2.1</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 002c7d0c1ce9bbe11b3d295c1ae3aa2afe78a4b5..05bb76ce7e9f6626441682698f9b8851ab05c350 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.2.0</td>
+<td>1.2.1</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 7ec83fe3e31bafc8c19afddef972bfb7cd0d92ab..5685dda8d88b4fd2232f3f9ca28bb3dd5886a1c8 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.2.0</td>
+<td>1.2.1</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 bfb9c78cf23a55927dcac1ff8cfaaa88970d8811..90e998c01834340810ee9b3bd91d56e14ab106f8 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.2.0</td>
+<td>1.2.1</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 e67da595c3d827460eb7a13c449461314575bf9f..d24a250973396172eced97b41df45cf5c9bd001f 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.2.0</td>
+<td>1.2.1</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 b80dd89ccdc02939bc7709999b7a71e7e4fc60ff..9115fe69b9cf8a7c96404e56e53a8cefc7387eea 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.2.0</td>
+<td>1.2.1</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 3865acf5afcb01c22a15916fd44ada5739b8ff10..d8467217d6fb870ab8a8cc7d22b319f832a54cf4 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.2.0</td>
+<td>1.2.1</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 eb5576947abe5c7c3d0d0533d1dc7de509d928b5..174797942aa5665e87b9d3a2ddc6f70945fd4a83 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.2.0</td>
+<td>1.2.1</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 62ce3d6ae4f73e0b37286b76fe601fb4bf694319..27e69be56120e7ed81a0e88e2f717b68a6a29741 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.2.0</td>
+<td>1.2.1</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 98d6c0d145902676f527da9ddfb3b3a516b8b88b..a2c6f735e1865a67227562f6459fc801b295f459 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.2.0</td>
+<td>1.2.1</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 9c7048e76cc64164d51ce17e1b6bf82ff34a69b6..74fc8489a2895e77434081c87d70aa18b248587b 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.2.0</td>
+<td>1.2.1</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 b209f985a10812d58a5e6f30b510113019c609ed..7e0481731ce36159ccfe608cab8fc42cc3ce8364 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.2.0</td>
+<td>1.2.1</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 c5124f13538f990c89517e6a76b2d7b559a14d53..78bb34ac3352fd1f9ad1e987726bafb2c32169c7 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.2.0</td>
+<td>1.2.1</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 5d1d0f3c42cfcd552f5c40aa50af9c055806c9d3..ac93a8e184f17f103e57e37afb06474a3efe6dca 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.2.0</td>
+<td>1.2.1</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 16b863820aab5c91ee7aa706adde5104600ecc3f..e0d44517f5d21183175fcf5876b43516c8087f5c 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.2.0</td>
+<td>1.2.1</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 948591ac8729e57d68d8689eaef4fe66fcf2d249..015a27962f0039012f83964c82bb6a6a8cf16416 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.2.0</td>
+<td>1.2.1</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 451697db32e717a9caf10029c2dbef0699e1922a..99f3bcbef4e08b04c69ab5763c5d841bdd45083b 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.2.0</td>
+<td>1.2.1</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 8a579ee9e6f035a092314c4f2aa7adbecef66394..312beb6a0052f5ef9ba403763657bb247a339aab 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.2.0</td>
+<td>1.2.1</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 69bd3d1bb7ff868483b728d73c44f7d4e7dec01f..07e797549a4416d6be6d5feadaf02be652de3765 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.2.0</td>
+<td>1.2.1</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 7c71ac91dd2061ebc9779920b33f2dd4f725e9b4..686d17260c9999737a390ba1eac31d18e3b09b1a 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.2.0</td>
+<td>1.2.1</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 89a8c9083b9ba9c4aa06171c4465ab34ec2f9ed8..2c5a260c0d61619651a7f8e8bb34f0a9800f52af 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.2.0</td>
+<td>1.2.1</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 09bc27e126a818eac7df57ef60632e22a3cdd396..09c191bb1a08f601140efb0b6d1287eb6d8a9228 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.2.0</td>
+<td>1.2.1</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 4e73480b09c83b11edcc8a2e9b2e1f1113697cf8..d85ddfce662632753a53c89dcff8060661fd55fd 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.2.0</td>
+<td>1.2.1</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 d58bf44dc39b9c8518c1b40dec6f0164fbf4c7f4..a2d600a96a9ee67f594b6e8f486b1f07c023065e 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.2.0</td>
+<td>1.2.1</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 16c7b70166e657a5c6c8e34d3af0f276e24544ee..73940bedfbbaa2ba565d7e488232fcddd171e4c3 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.2.0</td>
+<td>1.2.1</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 d5acb752038c781de1e592aba8c4edf6856a3463..d83b4f7626c9d3e9200f29f7b5039850160192a6 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.2.0</td>
+<td>1.2.1</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 f7a200e03d8805ec5fa9a2b78f46495f54516de1..f51713352b06bf60d22e5a0f2387b65d992ef354 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.2.0</td>
+<td>1.2.1</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 829c75ec0591a8b868ffb3180d0b8a6e9bc27875..4e46e91a282028dc970e056e8cf7a7a5f3976ab1 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.2.0</td>
+<td>1.2.1</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 a24c4b84e81bf7e3c2dc701ebab9d99d9743977f..c34bc929a3500d883af83b61d24e19a366143dd8 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.2.0</td>
+<td>1.2.1</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 4fe2a388019af1195f0f4166b17fd80b9ff4c7e3..f1cc2fc4b5ab5055b6685e390f904025a19a2d74 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.2.0</td>
+<td>1.2.1</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 f052c51e39eda0cbe09643c2e732d5e16070f247..40d27aea72137d6a33684c7e3a5ef522714a4286 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.2.0</td>
+<td>1.2.1</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 26a51e7b31e66b82c4c263fdbce3b77967cff249..6dcfddd93b1d490a1597f42a041232afe17d23fd 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.2.0</td>
+<td>1.2.1</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 dfa18667ad440f7e598e9ca234b030398d7d04a4..898f6c4b37bcc324ae0af0a1e76840fff91b0194 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.2.0</td>
+<td>1.2.1</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 c8b557fa79e85345adc6ca96deee941e2154968f..3c4fbd4c0874949614ab4b472c9576e5f303fe79 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.2.0</td>
+<td>1.2.1</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 0cd7fcef09cc368beb0d317fa99498f9b6b4ed69..9619276aae93a06e3696642ebe0c095ca0429d41 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.2.0</td>
+<td>1.2.1</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 d5b2ae5a03519af8cd14f7579d33e3beb6e47b91..548044ce3ad2190ca361cade7570dc5d7cc159c0 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.2.0</td>
+<td>1.2.1</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 facc7786d6670d038d929556be45a8060f9bc7d8..cba90786fe21adb27824ad128a8d4b95809d6bad 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.2.0</td>
+<td>1.2.1</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 6589f0a292074a1b8016b198c9bf0b0f83c24963..97c88cf1dc8ebf791e0523cb19056a9f4f1c47b9 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.2.0</td>
+<td>1.2.1</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 f656f9ac01700426f8e9d414b61d746bdefa696b..31f19a802116a7048d12d47e6c00b9d8d4e966d4 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.2.0</td>
+<td>1.2.1</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 e7fbf99ad29487ee261f50da66d0c07afc8f049e..bf82fec0cfebfb053f7440ebd09e5b79eae220c4 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.2.0</td>
+<td>1.2.1</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 e485f733c4d853a23199d47cc649ae94b67ab7dc..afafa65c75e9b7e6a1d49146c6c2361137f77e4e 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.2.0</td>
+<td>1.2.1</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 36ad64487c8920ad5467abf31b486fbafa296e85..2900790061078e4f8a1776c15a6c1aa8ea0e0a38 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.2.0</td>
+<td>1.2.1</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 6be0f01649d089f3b653825e066c7d56a2705939..c75b2550434f7123a38628ac29fdd32f76a38298 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.2.0</td>
+<td>1.2.1</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 dcfaff00a1bd806a282c3f9f1ff0344121d3bb49..2a5150e8d258e9718f75f46457dd35cad2a90a2a 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.2.0</td>
+<td>1.2.1</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 34bae23b2f82e0a134d51314ab36fcb7cd6eb5f5..a68e4cc8d2b7d7109d390baf8fd93c00bf9d13f4 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.2.0</td>
+<td>1.2.1</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 e97e86bad1edfdbec9250ff20dbc4e2769938c5a..4677ec7479d262986bb05820b58017e9040035dc 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.2.0</td>
+<td>1.2.1</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index 650734bc3eeb898c81f8f1f479dea52a4cd3e4c6..bcdd89f62c7a6f9b94a7101c0fe37d80d47c46f5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -257,31 +257,31 @@ Last reviewed on 2010-12-03
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>video/x-raw, format=(string){ RGB, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td>video/x-raw, format=(string){ RGB, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -289,15 +289,15 @@ Last reviewed on 2010-12-03
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 53003f3db937491e72366be8d1a1bfaf85cf2719..5d175df391ccf21991a0ca10daa48d663401c2c1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -96,6 +96,7 @@ GstRTSPSrc implements
   "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync" title='The "ntp-sync" property'>ntp-sync</a>"                 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock" title='The "use-pipeline-clock" property'>use-pipeline-clock</a>"       <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
   "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes" title='The "sdes" property'>sdes</a>"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write
+  "<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags" title='The "tls-validation-flags" property'>tls-validation-flags</a>"     <a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a>  : Read / Write
 </pre>
 </div>
 <div class="refsect1">
@@ -430,6 +431,13 @@ Last reviewed on 2006-08-18 (0.10.5)
 <pre class="programlisting">  "sdes"                     <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstStructure.html#GstStructure"><span class="type">GstStructure</span></a>*         : Read / Write</pre>
 <p>The SDES items of this session.</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--tls-validation-flags"></a><h3>The <code class="literal">"tls-validation-flags"</code> property</h3>
+<pre class="programlisting">  "tls-validation-flags"     <a href="http://library.gnome.org/devel/gio/unstable/gio-TLS-Overview.html#GTlsCertificateFlags"><span class="type">GTlsCertificateFlags</span></a>  : Read / Write</pre>
+<p>TLS certificate validation flags used to validate the server certificate.</p>
+<p>Default value: G_TLS_CERTIFICATE_UNKNOWN_CA|G_TLS_CERTIFICATE_BAD_IDENTITY|G_TLS_CERTIFICATE_NOT_ACTIVATED|G_TLS_CERTIFICATE_EXPIRED|G_TLS_CERTIFICATE_REVOKED|G_TLS_CERTIFICATE_INSECURE|G_TLS_CERTIFICATE_GENERIC_ERROR</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
index 66c928e639b1bf724823a9098854e0a259750cb2..028debee49380d207f76cd9fc032794671919c90 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -152,11 +152,11 @@ Format an audio stream into the wav format.
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ], width=(int)8, depth=(int)8, signed=(boolean)false</td>
+<td> audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-mulaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ], width=(int)8, depth=(int)8, signed=(boolean)false</td>
+<td> audio/x-mulaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index 195106ff0abd0f96bf7b22b2c0748c7d37e6df6c..7a372ac52d8585aabc14fedff0172a686cb19872 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.2.0)
+      for GStreamer Good Plugins 1.0 (1.2.1)
       The latest version of this documentation can be found on-line at
       <a class="ulink" href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/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/html/index.sgml b/docs/plugins/html/index.sgml
index d3af905cb60b9da1e135f48518facf35694e227b..a5e7884fe3bf61fb81191e179770d366d367be83 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -1460,6 +1460,7 @@
 <ANCHOR id="GstRTSPSrc--ntp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync">
 <ANCHOR id="GstRTSPSrc--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock">
 <ANCHOR id="GstRTSPSrc--sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes">
+<ANCHOR id="GstRTSPSrc--tls-validation-flags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags">
 <ANCHOR id="gst-plugins-good-plugins-rtspsrc.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signal-details">
 <ANCHOR id="GstRTSPSrc-handle-request" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request">
 <ANCHOR id="GstRTSPSrc-on-sdp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp">
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index a2cf34118dd0b81a610f8a72d8e0aa26463728c1..86b6142a5258c089babb83f6a30c7024859b2544 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.2.0</version>
+  <version>1.2.1</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 e35a0962c7056a74c16abf2bfb11fbc38e1ca052..3e57e7ba129edf5bc94a67800cbd3d6617b1d147 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.2.0</version>
+  <version>1.2.1</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 e80dc97e09d4343495bb4a5bb62437bbfa30e582..56dfecf8f84b12eb38fe5f115a2f2cd81595be4b 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.2.0</version>
+  <version>1.2.1</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 99e4811d36ca2fc3d079e756669e5b96d678c356..c4ad53d0ceaa57704e1045aacc70eb08ab17d9d2 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.2.0</version>
+  <version>1.2.1</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 ebb423c05a81b28e02a0b55e5a3f473793b20478..d45980bbdf04e7065229f4ffa63cad4a0635d418 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.2.0</version>
+  <version>1.2.1</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 ef3d3d3e01e508ec1743901cfebef594377c8642..dc30c812f47849480f0b3c19243aee00fe4cef03 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.2.0</version>
+  <version>1.2.1</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 7e526c82821ffc5b323178de9610bb03aab229e6..840551d994cc2cad1db693ed359b69840428e81c 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.2.0</version>
+  <version>1.2.1</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 f4a039df0fdf00b5ce658e37063d061d2f90f033..894ba25dc7db1ba5259474c928fed670b545fccc 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.2.0</version>
+  <version>1.2.1</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 c241d1d6ee8d4b60e5050f289fb62cda47dc6e5b..c8168e5533d7a2d284fe2f82768a01d14a3a6a51 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.2.0</version>
+  <version>1.2.1</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 6cb3bd806b146036075bb0785e259c4825764cac..b5c13d6c1443eac333434b8d6e1e01ea751c6227 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.2.0</version>
+  <version>1.2.1</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 a95dbaa9b3b80a184ae5c6ab8e988d5e2f91c887..98e4dfa3fcef22e25b3a06178b5cdb54dc80821e 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.2.0</version>
+  <version>1.2.1</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 6ccd3739180d865dcab8ce289a432390dd7937fe..7978d080c91dbd8c6a71b4e540e90c27a8381c6d 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.2.0</version>
+  <version>1.2.1</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 01d3c96ce0d272a9dc3487e089f9b306d405f888..54a3c7e025b9fc8d34906a07f5bb15dfd18bd9d6 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.2.0</version>
+  <version>1.2.1</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 74ed6bc7b865acf7c56ef0b00fcba0c445d58b3f..3b442488c7ecc12a001c74d1b1e70c8c59e92c92 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.2.0</version>
+  <version>1.2.1</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 28d50689a796797af03f5199740c5d998729f5f5..329677ca7f6741f63058f1937ac37b2ff7291b63 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.2.0</version>
+  <version>1.2.1</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 c39639a919bcfe5007af2f71bae4bcac2de5ae25..ab74fb3e4ddb5db5335d37d211a84ec3b99432da 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.2.0</version>
+  <version>1.2.1</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 67bcbea7000b7a43f50a8cf86c6bce8376000da3..f94a1f05cab34138f34c62e6a67d2328b2482d5d 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.2.0</version>
+  <version>1.2.1</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 9c9f79e105428ba8a0f658a09f1bbefaa232468c..08ed28a791ce7064cdc11fbf53bdd045e1e6d962 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.2.0</version>
+  <version>1.2.1</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 117e9b99edd0d808e5182c8087cac817ef1bc9e5..afb356e96e81f7c6cbf10b52dff751d1f309f7f2 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.2.0</version>
+  <version>1.2.1</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 b5ebba22fff040ae8801aa21c51880a3b18c5e78..280fc3ff62e759e3896a46295e83003216ced14f 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.2.0</version>
+  <version>1.2.1</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 d643aa992b4028d8317b3ca1f5222f9f0aeceedc..363888b7a3fc2f4aa3756bcbca03a5b5537ddc64 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.2.0</version>
+  <version>1.2.1</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 0db77dfefa86f48b6bafa8bd935cf6800ba674ca..3a264aecea5374664cca09e95b8e2c0d501877ba 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.2.0</version>
+  <version>1.2.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -47,7 +47,7 @@
           <name>audio</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int)2, framed=(boolean)true; audio/mpeg, mpegversion=(int)4, stream-format=(string)raw, framed=(boolean)true; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw, format=(string){ U8, S16LE }, layout=(string)interleaved, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }</details>
+          <details>audio/x-adpcm, layout=(string)swf, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/mpeg, mpegversion=(int)1, layer=(int)3, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 22050, 44100 }, parsed=(boolean)true; audio/mpeg, mpegversion=(int){ 4, 2 }, stream-format=(string)raw; audio/x-nellymoser, channels=(int){ 1, 2 }, rate=(int){ 5512, 8000, 11025, 16000, 22050, 44100 }; audio/x-raw, format=(string){ U8, S16LE }, layout=(string)interleaved, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-alaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-mulaw, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }; audio/x-speex, channels=(int){ 1, 2 }, rate=(int){ 5512, 11025, 22050, 44100 }</details>
         </caps>
         <caps>
           <name>video</name>
diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml
index b2bfe87f90efc93c77903e2fca6e0741daa688d1..9ce96c7992d4497ed11aeb0fced5c58fcfa8a8ea 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.2.0</version>
+  <version>1.2.1</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 2f230b7584c35d78910ac817d185466e74d43a5a..ca0f89a302a5f6a3d5533dc41f4e0b2e9f871938 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.2.0</version>
+  <version>1.2.1</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 e4b544dbe668bac9f0ae3ab19d46a121487bf055..978d57b4da62f4ac40f12ab8f7ead4594692cecf 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.2.0</version>
+  <version>1.2.1</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 7dfb7dff7200dc559e1134cbe88f68d0fed46713..622a577f5c7eba980d3a91ccc4903928e930e081 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.2.0</version>
+  <version>1.2.1</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 53c071de5b0efa517c05a364da7fafcd54f02d67..e393c2c8bbd29a1cbfe00df9526f418cec61df52 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.2.0</version>
+  <version>1.2.1</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 387f6af1500a55099090ab6be11feb28687b03d6..9c60e7603fd444884befd7011017d59e52f5f1cf 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.2.0</version>
+  <version>1.2.1</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 7d5239ad12599787f76150444b7f0d42613f0a32..64a07df7a7b1ac0a59de227abe3f5d8602df050a 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.2.0</version>
+  <version>1.2.1</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 2efc3b2388c6268328e7cf6f172e22bfd1d0d259..5e33e73a2127f3d8747b469756be022facaf3af6 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.2.0</version>
+  <version>1.2.1</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 0eeec7866441ad3db0a052200df071e5f0ca174d..253e66fb2ebab7af2cf31aa1af168844a3142120 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.2.0</version>
+  <version>1.2.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -26,7 +26,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -53,7 +53,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -80,7 +80,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>image/x-j2c, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/x-jpc, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>image/x-j2c, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/x-jpc, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -107,7 +107,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-mp4-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-mp4-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details>
         </caps>
         <caps>
           <name>src</name>
@@ -176,7 +176,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw, format=(string){ RGB, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ RGB, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-divx, divxversion=(int)5, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-h264, stream-format=(string)avc, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-svq, svqversion=(int)3, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dv, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-vp8, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-dirac, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]; video/x-qt-part, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index da09aa53dea0b6e7ed54f99332bf2eecde5e110a..2a9336946b16ac571b1f7569c2c175149d5e663f 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.2.0</version>
+  <version>1.2.1</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 42f48b8f138c792306ccdeb74dac153e32e29741..df954a5936fd1a3feb7634da4e63857810ebae1b 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.2.0</version>
+  <version>1.2.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>image/jpeg, width=(int)[ 1, 65535 ], height=(int)[ 1, 65535 ]</details>
+          <details>image/jpeg</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index 2c151da84226bfbd3978966ac1e81e44144d5598..630729cf445b69d88633318f8db33fdb2831a22d 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.2.0</version>
+  <version>1.2.1</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 d22a19cc1bc766f42f71250158885d1002352593..92a7bdfe80847b767a9357a68294506bd60ff8c7 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.2.0</version>
+  <version>1.2.1</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 e94a41a154c07760126bba9e8212c3f22fba0210..86cadaea97018fbe8ae695f632052d82b0002ab5 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.2.0</version>
+  <version>1.2.1</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 d29285ef44b1c01cb9e5ad2aee5de2a3f507a84f..e3703be9026cae4c9532b6c2cf8a79bf0e184daf 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.2.0</version>
+  <version>1.2.1</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 6c88732ec1897344508056019558890cdaa93b02..6acc4b05f7e08abe6f76f7429f406d5bb46db58f 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.2.0</version>
+  <version>1.2.1</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 94b92de37857a68986c4deb2f6cb9525904cbd6b..b9413a1c0918975b3ab1ebfb9bf13fc55d9677c3 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.2.0</version>
+  <version>1.2.1</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 fdbcea471a28d13ca785847729852edebb567f24..f31c5fc5d0a6fb51da3e4eab6e0be84d87a3b755 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.2.0</version>
+  <version>1.2.1</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 8ce5c5db8166210fbce16d63869a378154da98eb..209f103287489b43f4f282b6fc53b7cbbc478417 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.2.0</version>
+  <version>1.2.1</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 a32b56c2a32752ef5408e0a573f5917535cf0dec..ac01ac6a3382b41aad623783ea6c83e5c10f4ca8 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.2.0</version>
+  <version>1.2.1</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 08d32083f7573caecebc02d0dd4619e0f4d1b952..11a099a91b3c9a0d35db5d8f3bac22e608cd9743 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.2.0</version>
+  <version>1.2.1</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 dc4c8bd389379b6ad18d3dfda20afad1bd981d23..ae147904d06e8ce40a6f178c7135ee6a7d7fba87 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.2.0</version>
+  <version>1.2.1</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 e5c0e0bc6b7a745d8243ba6861792d86ccc8c9e2..508ba75e691cbb04ce60e604e6b8952913e18377 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.2.0</version>
+  <version>1.2.1</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 74734845179f1a5e5f30e0c8b55656b2e7d7dcf2..52253209ac8f3461fd807ee80b52bd0589c448e1 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.2.0</version>
+  <version>1.2.1</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 9ab755afe112557bb1888a07c8edf8c504c83797..708e27d1a3c5dde3edc8b3ab2f6597a4f218cb6e 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.2.0</version>
+  <version>1.2.1</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 b2adf8f4af51bfa3d222233c1688384e68142b1e..4d4ce10886c24e429092d23e1bc2987b95b71a32 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.2.0</version>
+  <version>1.2.1</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 29a06cfee06d9eaee0e3715fdde7dd9c43c1ee2e..0f5795fd8fc694ac51deaff20a9797d7a8938551 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.2.0</version>
+  <version>1.2.1</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 f919a265d1008bae55bc61e4dd8ffaf7eed4af1a..6ebbb6c984651ae49345718ec45314269a985785 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.2.0</version>
+  <version>1.2.1</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 d42f0169e0c07ebf8ac845ca8038efd0c4e82363..6caf1c97f7490ae078b79e1df1153382b390d485 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.2.0</version>
+  <version>1.2.1</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 c50bf172cb2f6dffe692162d35977a88c744c087..43db75abf46c3e32d0f55a2c5b37af6e5a25544d 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.2.0</version>
+  <version>1.2.1</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 ce8c52603ab6701a1cc4817d9b1608aba35bc532..34296d56e11f2407de5c821d1fe6192c83cb4dc9 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.2.0</version>
+  <version>1.2.1</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 a70983cd86b55a14a4c597d875c3685188a940e4..adf7fe64e519ff2850a49c5eee3abf7294ec3ed3 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.2.0</version>
+  <version>1.2.1</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 cff3b4885fd7787dd7887a2c8a623130bcc3fe63..0785222d4f4386ec0a36f810cc933c199162d210 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.2.0</version>
+  <version>1.2.1</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 349a008d4766ab8a690caaee5103ff0be9bb7e1f..6275ae5e8df00c2eb9db1b9f496135623ba99f9d 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.2.0</version>
+  <version>1.2.1</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 8603c773ac37fe69bb5786b26aaaf981f7fd49f4..9561481e6ebfa434f4eea01029e62814b8935348 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.2.0</version>
+  <version>1.2.1</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 c2ea1ebba184e67680c2632f24799f479fda1a57..2fd4c0e8871f639f585b38806a8497add0379b29 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.2.0</version>
+  <version>1.2.1</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 99668a26ce3427af1be4209654116575f5745b59..c1d34be587bba0730885ca7ca283004d9928e506 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.2.0</version>
+  <version>1.2.1</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 250d6475284ae65fab7b2905c71aa36d3a3b83b6..324503bd51b54c612a903e7346c99280a06f9290 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.2.0</version>
+  <version>1.2.1</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 12b062866d97844a36f65c2d09c8d239d693386b..9363708fd34f0809f3097d89f0030fe7ede932b3 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.2.0</version>
+  <version>1.2.1</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 68cc83ab4ff93bd3cbb73c86b4b6046ac4e1a92e..c5322a0f9fb6eb21beddfd11f4337b5a86465ee3 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.2.0</version>
+  <version>1.2.1</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -20,7 +20,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)1, format=(string){ S32LE, S24LE, S16LE, U8, F32LE, F64LE }, layout=(string)interleaved; audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003, format=(string){ S32LE, S24LE, S16LE, U8, F32LE, F64LE }, layout=(string)interleaved; audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ], width=(int)8, depth=(int)8, signed=(boolean)false; audio/x-mulaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ], width=(int)8, depth=(int)8, signed=(boolean)false</details>
+          <details>audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)1, format=(string){ S32LE, S24LE, S16LE, U8, F32LE, F64LE }, layout=(string)interleaved; audio/x-raw, rate=(int)[ 1, 2147483647 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003, format=(string){ S32LE, S24LE, S16LE, U8, F32LE, F64LE }, layout=(string)interleaved; audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]; audio/x-mulaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml
index ff91e1a66e7e1dae2ccd72a8eb6fbaf5ab7e8314..036b88b7dd892cf890738119da5fe7b46274c65c 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.2.0</version>
+  <version>1.2.1</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 db62d993eb54b745f9dd4f679b77207dcf707971..5e5880ad6935ff22dae957df8fc1679f908669d7 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.2.0</version>
+  <version>1.2.1</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 589a072743f7eee55318ae044a052fc9d61b2b1e..3e91233df863052d8b54226f1998ad9a23705bcc 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.2.0</version>
+  <version>1.2.1</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 089c1053fac40f6d0e0a2b5b8dda1de0cd9d6af5..ff2bffdc7b6542a8ec708ea91909c477e8f0097b 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.2.0</version>
+  <version>1.2.1</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 370363e7e9e0d43c99bd2f5188df394125d233a1..c84461e6319a5f9d3a8ff37d00430638844ce46a 100644
--- a/ext/dv/gstdvdec.c
+++ b/ext/dv/gstdvdec.c
@@ -368,15 +368,24 @@ gst_dvdec_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
   switch (GST_EVENT_TYPE (event)) {
     case GST_EVENT_FLUSH_STOP:
       gst_segment_init (&dvdec->segment, GST_FORMAT_UNDEFINED);
+      dvdec->need_segment = FALSE;
       break;
     case GST_EVENT_SEGMENT:{
       const GstSegment *segment;
 
       gst_event_parse_segment (event, &segment);
 
-      GST_DEBUG_OBJECT (dvdec, "Got NEWSEGMENT %" GST_SEGMENT_FORMAT, &segment);
+      GST_DEBUG_OBJECT (dvdec, "Got SEGMENT %" GST_SEGMENT_FORMAT, &segment);
 
       gst_segment_copy_into (segment, &dvdec->segment);
+      if (!gst_pad_has_current_caps (dvdec->srcpad)) {
+        dvdec->need_segment = TRUE;
+        gst_event_unref (event);
+        event = NULL;
+        res = TRUE;
+      } else {
+        dvdec->need_segment = FALSE;
+      }
       break;
     }
     case GST_EVENT_CAPS:
@@ -477,6 +486,11 @@ gst_dvdec_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
     gst_caps_unref (caps);
   }
 
+  if (dvdec->need_segment) {
+    gst_pad_push_event (dvdec->srcpad, gst_event_new_segment (&dvdec->segment));
+    dvdec->need_segment = FALSE;
+  }
+
   ret = gst_buffer_pool_acquire_buffer (dvdec->pool, &outbuf, NULL);
   if (G_UNLIKELY (ret != GST_FLOW_OK))
     goto no_buffer;
@@ -573,6 +587,7 @@ gst_dvdec_change_state (GstElement * element, GstStateChange transition)
       gst_segment_init (&dvdec->segment, GST_FORMAT_UNDEFINED);
       dvdec->src_negotiated = FALSE;
       dvdec->sink_negotiated = FALSE;
+      dvdec->need_segment = FALSE;
       /* 
        * Enable this function call when libdv2 0.100 or higher is more
        * common
diff --git a/ext/dv/gstdvdec.h b/ext/dv/gstdvdec.h
index b37a90d403b3d372e91c6eb0b7da89d907eb6ff0..8dda7df7edc043f9196c194284f1d8bab0a4ace7 100644
--- a/ext/dv/gstdvdec.h
+++ b/ext/dv/gstdvdec.h
@@ -83,6 +83,7 @@ struct _GstDVDec {
 
   GstBufferPool *pool;
   GstSegment     segment;
+  gboolean       need_segment;
 };
 
 struct _GstDVDecClass {
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 94649881e526012247394a6fdde9e0356f88b471..01c8a7dafe962725e81420e7ef28dec1c6f6046d 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -277,11 +277,34 @@ gst_dvdemux_reset (GstDVDemux * dvdemux)
   dvdemux->group_id = G_MAXUINT;
 }
 
+static gboolean
+have_group_id (GstDVDemux * demux)
+{
+  GstEvent *event;
+
+  event = gst_pad_get_sticky_event (demux->sinkpad, GST_EVENT_STREAM_START, 0);
+  if (event) {
+    if (gst_event_parse_group_id (event, &demux->group_id))
+      demux->have_group_id = TRUE;
+    else
+      demux->have_group_id = FALSE;
+    gst_event_unref (event);
+  } else if (!demux->have_group_id) {
+    demux->have_group_id = TRUE;
+    demux->group_id = gst_util_group_id_next ();
+  }
+
+  return demux->have_group_id;
+}
+
 static GstPad *
-gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template)
+gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template,
+    GstCaps * caps)
 {
   gboolean no_more_pads;
   GstPad *pad;
+  GstEvent *event;
+  gchar *stream_id;
 
   pad = gst_pad_new_from_static_template (template, template->name_template);
 
@@ -291,6 +314,21 @@ gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template)
       GST_DEBUG_FUNCPTR (gst_dvdemux_handle_src_event));
   gst_pad_use_fixed_caps (pad);
   gst_pad_set_active (pad, TRUE);
+
+  stream_id =
+      gst_pad_create_stream_id (pad,
+      GST_ELEMENT_CAST (dvdemux),
+      template == &video_src_temp ? "video" : "audio");
+  event = gst_event_new_stream_start (stream_id);
+  if (have_group_id (dvdemux))
+    gst_event_set_group_id (event, dvdemux->group_id);
+  gst_pad_push_event (pad, event);
+  g_free (stream_id);
+
+  gst_pad_set_caps (pad, caps);
+
+  gst_pad_push_event (pad, gst_event_new_segment (&dvdemux->time_segment));
+
   gst_element_add_pad (GST_ELEMENT (dvdemux), pad);
 
   no_more_pads =
@@ -300,14 +338,18 @@ gst_dvdemux_add_pad (GstDVDemux * dvdemux, GstStaticPadTemplate * template)
   if (no_more_pads)
     gst_element_no_more_pads (GST_ELEMENT (dvdemux));
 
-  gst_pad_push_event (pad, gst_event_new_segment (&dvdemux->time_segment));
-
   if (no_more_pads) {
     GstTagList *tags;
 
     tags = gst_tag_list_new (GST_TAG_CONTAINER_FORMAT, "DV", NULL);
     gst_tag_list_set_scope (tags, GST_TAG_SCOPE_GLOBAL);
-    gst_pad_push_event (pad, gst_event_new_tag (tags));
+    if (dvdemux->videosrcpad)
+      gst_pad_push_event (dvdemux->videosrcpad,
+          gst_event_new_tag (gst_tag_list_ref (tags)));
+    if (dvdemux->audiosrcpad)
+      gst_pad_push_event (dvdemux->audiosrcpad,
+          gst_event_new_tag (gst_tag_list_ref (tags)));
+    gst_tag_list_unref (tags);
   }
 
   return pad;
@@ -1126,26 +1168,6 @@ gst_dvdemux_handle_src_event (GstPad * pad, GstObject * parent,
   return res;
 }
 
-static gboolean
-have_group_id (GstDVDemux * demux)
-{
-  GstEvent *event;
-
-  event = gst_pad_get_sticky_event (demux->sinkpad, GST_EVENT_STREAM_START, 0);
-  if (event) {
-    if (gst_event_parse_group_id (event, &demux->group_id))
-      demux->have_group_id = TRUE;
-    else
-      demux->have_group_id = FALSE;
-    gst_event_unref (event);
-  } else if (!demux->have_group_id) {
-    demux->have_group_id = TRUE;
-    demux->group_id = gst_util_group_id_next ();
-  }
-
-  return demux->have_group_id;
-}
-
 /* does not take ownership of buffer */
 static GstFlowReturn
 gst_dvdemux_demux_audio (GstDVDemux * dvdemux, GstBuffer * buffer,
@@ -1165,28 +1187,15 @@ gst_dvdemux_demux_audio (GstDVDemux * dvdemux, GstBuffer * buffer,
     GstBuffer *outbuf;
     gint frequency, channels;
 
-    if (G_UNLIKELY (dvdemux->audiosrcpad == NULL))
-      dvdemux->audiosrcpad = gst_dvdemux_add_pad (dvdemux, &audio_src_temp);
-
     /* get initial format or check if format changed */
     frequency = dv_get_frequency (dvdemux->decoder);
     channels = dv_get_num_channels (dvdemux->decoder);
 
-    if (G_UNLIKELY ((frequency != dvdemux->frequency)
+    if (G_UNLIKELY ((dvdemux->audiosrcpad == NULL)
+            || (frequency != dvdemux->frequency)
             || (channels != dvdemux->channels))) {
       GstCaps *caps;
       GstAudioInfo info;
-      GstEvent *event;
-      gchar *stream_id;
-
-      stream_id =
-          gst_pad_create_stream_id (dvdemux->audiosrcpad,
-          GST_ELEMENT_CAST (dvdemux), "audio");
-      event = gst_event_new_stream_start (stream_id);
-      if (have_group_id (dvdemux))
-        gst_event_set_group_id (event, dvdemux->group_id);
-      gst_pad_push_event (dvdemux->audiosrcpad, event);
-      g_free (stream_id);
 
       dvdemux->frequency = frequency;
       dvdemux->channels = channels;
@@ -1195,7 +1204,12 @@ gst_dvdemux_demux_audio (GstDVDemux * dvdemux, GstBuffer * buffer,
       gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16LE,
           frequency, channels, NULL);
       caps = gst_audio_info_to_caps (&info);
-      gst_pad_set_caps (dvdemux->audiosrcpad, caps);
+      if (G_UNLIKELY (dvdemux->audiosrcpad == NULL)) {
+        dvdemux->audiosrcpad =
+            gst_dvdemux_add_pad (dvdemux, &audio_src_temp, caps);
+      } else {
+        gst_pad_set_caps (dvdemux->audiosrcpad, caps);
+      }
       gst_caps_unref (caps);
     }
 
@@ -1243,29 +1257,16 @@ gst_dvdemux_demux_video (GstDVDemux * dvdemux, GstBuffer * buffer,
   gboolean wide;
   GstFlowReturn ret = GST_FLOW_OK;
 
-  if (G_UNLIKELY (dvdemux->videosrcpad == NULL))
-    dvdemux->videosrcpad = gst_dvdemux_add_pad (dvdemux, &video_src_temp);
-
   /* get params */
   /* framerate is already up-to-date */
   height = dvdemux->decoder->height;
   wide = dv_format_wide (dvdemux->decoder);
 
   /* see if anything changed */
-  if (G_UNLIKELY ((dvdemux->height != height) || dvdemux->wide != wide)) {
-    GstCaps *caps;
+  if (G_UNLIKELY ((dvdemux->videosrcpad == NULL) || (dvdemux->height != height)
+          || dvdemux->wide != wide)) {
     gint par_x, par_y;
-    GstEvent *event;
-    gchar *stream_id;
-
-    stream_id =
-        gst_pad_create_stream_id (dvdemux->videosrcpad,
-        GST_ELEMENT_CAST (dvdemux), "video");
-    event = gst_event_new_stream_start (stream_id);
-    if (have_group_id (dvdemux))
-      gst_event_set_group_id (event, dvdemux->group_id);
-    gst_pad_push_event (dvdemux->videosrcpad, event);
-    g_free (stream_id);
+    GstCaps *caps;
 
     dvdemux->height = height;
     dvdemux->wide = wide;
@@ -1295,7 +1296,13 @@ gst_dvdemux_demux_video (GstDVDemux * dvdemux, GstBuffer * buffer,
         "framerate", GST_TYPE_FRACTION, dvdemux->framerate_numerator,
         dvdemux->framerate_denominator,
         "pixel-aspect-ratio", GST_TYPE_FRACTION, par_x, par_y, NULL);
-    gst_pad_set_caps (dvdemux->videosrcpad, caps);
+
+    if (G_UNLIKELY (dvdemux->videosrcpad == NULL)) {
+      dvdemux->videosrcpad =
+          gst_dvdemux_add_pad (dvdemux, &video_src_temp, caps);
+    } else {
+      gst_pad_set_caps (dvdemux->videosrcpad, caps);
+    }
     gst_caps_unref (caps);
   }
 
@@ -1691,7 +1698,6 @@ gst_dvdemux_loop (GstPad * pad)
     }
   }
 
-
   if (G_UNLIKELY (dvdemux->pending_segment)) {
 
     /* now send the newsegment */
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index 79a2da06868294da60f9a1ace68f37d0ae0a042c..40e653a8e9b5e12bccd09414cf46b73e15ec563d 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -81,10 +81,7 @@ static GstStaticPadTemplate gst_jpeg_dec_sink_pad_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("image/jpeg, "
-        "width = (int) [ " G_STRINGIFY (MIN_WIDTH) ", " G_STRINGIFY (MAX_WIDTH)
-        " ], " "height = (int) [ " G_STRINGIFY (MIN_HEIGHT) ", "
-        G_STRINGIFY (MAX_HEIGHT) " ] ")
+    GST_STATIC_CAPS ("image/jpeg")
     );
 
 GST_DEBUG_CATEGORY_STATIC (jpeg_dec_debug);
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index aa2d0ad3fc909d249751c38cb709305030244801..80f9eb0329c806380e6f5038d0e6fb5f4c26a948 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -281,6 +281,7 @@ gst_soup_http_src_reset (GstSoupHTTPSrc * src)
   src->request_position = 0;
   src->stop_position = -1;
   src->content_size = 0;
+  src->have_body = FALSE;
 
   gst_caps_replace (&src->src_caps, NULL);
   g_free (src->iradio_name);
@@ -892,7 +893,7 @@ gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
    * don't output any data (such as an error html page), and return
    * GST_FLOW_ERROR from the create function instead of having
    * got_chunk_cb overwrite src->ret with FLOW_OK again. */
-  if (src->ret == GST_FLOW_ERROR) {
+  if (src->ret == GST_FLOW_ERROR || src->ret == GST_FLOW_EOS) {
     gst_soup_http_src_session_pause_message (src);
 
     if (src->loop)
@@ -916,9 +917,14 @@ gst_soup_http_src_got_body_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
   }
   GST_DEBUG_OBJECT (src, "got body");
   src->ret = GST_FLOW_EOS;
-  if (src->loop)
-    g_main_loop_quit (src->loop);
-  gst_soup_http_src_session_pause_message (src);
+  src->have_body = TRUE;
+
+  /* no need to interrupt the message here, we do it on the
+   * finished_cb anyway if needed. And getting the body might mean
+   * that the connection was hang up before finished. This happens when
+   * the pipeline is stalled for too long (long pauses during playback).
+   * Best to let it continue from here and pause because it reached the
+   * final bytes based on content_size or received an out of range error */
 }
 
 /* Finished. Signal EOS. */
@@ -936,7 +942,8 @@ gst_soup_http_src_finished_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
      * that occurred in the QUEUEING state; i.e. before the connection setup
      * was complete. Do nothing */
   } else if (src->session_io_status ==
-      GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING && src->read_position > 0) {
+      GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING && src->read_position > 0 &&
+      (!src->have_size || src->read_position < src->content_size)) {
     /* The server disconnected while streaming. Reconnect and seeking to the
      * last location. */
     src->retry = TRUE;
@@ -1047,6 +1054,7 @@ gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk,
     GST_DEBUG_OBJECT (src, "got chunk, but not for current message");
     return;
   }
+  src->have_body = FALSE;
   if (G_UNLIKELY (src->session_io_status !=
           GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) {
     /* Probably a redirect. */
@@ -1164,6 +1172,18 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src)
       SOUP_STATUS_IS_REDIRECTION (msg->status_code) ||
       SOUP_STATUS_IS_SERVER_ERROR (msg->status_code)) {
     /* Report HTTP error. */
+
+    /* when content_size is unknown and we have just finished receiving
+     * a body message, requests that go beyond the content limits will result
+     * in an error. Here we convert those to EOS */
+    if (msg->status_code == SOUP_STATUS_REQUESTED_RANGE_NOT_SATISFIABLE &&
+        src->have_body && src->have_size) {
+      GST_DEBUG_OBJECT (src, "Requested range out of limits and received full "
+          "body, returning EOS");
+      src->ret = GST_FLOW_EOS;
+      return;
+    }
+
     /* FIXME: reason_phrase is not translated and not suitable for user
      * error dialog according to libsoup documentation.
      * FIXME: error code (OPEN_READ vs. READ) should depend on http status? */
diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h
index 594dfaa2506c0733610bd0748e1972ecdcf9f0c6..8ebd2b612d39a8bb78deb2b597220b93763c4e52 100644
--- a/ext/soup/gstsouphttpsrc.h
+++ b/ext/soup/gstsouphttpsrc.h
@@ -78,6 +78,11 @@ struct _GstSoupHTTPSrc {
                                   Range. */
   guint64 request_position;    /* Seek to this position. */
   guint64 stop_position;       /* Stop at this position. */
+  gboolean have_body;          /* Indicates if it has just been signaled the
+                                * end of the message body. This is used to
+                                * decide if an out of range request should be
+                                * handled as an error or EOS when the content
+                                * size is unknown */
 
   /* Shoutcast/icecast metadata extraction handling. */
   gboolean iradio_mode;
diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c
index eccafa192a489470d9236645ef8992335f28fec8..cb697391c950a9e41b7bb741b4020070961ecd47 100644
--- a/ext/wavpack/gstwavpackenc.c
+++ b/ext/wavpack/gstwavpackenc.c
@@ -590,7 +590,9 @@ gst_wavpack_enc_push_block (void *id, void *data, int32_t count)
         enc->pending_offset = wph.block_index;
       }
 
-      if (!(wph.flags & FINAL_BLOCK))
+      /* Is this the not-final block of multi-channel data? If so, just
+       * accumulate and return here. */
+      if (!(wph.flags & FINAL_BLOCK) && ((block[32] & ID_OPTIONAL_DATA) == 0))
         return TRUE;
 
       buffer = enc->pending_buffer;
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index b28dbe5073339e9a4d9f1f528c935f9e96d669f4..07abb78edf128d6a7368e2aef0756f67a202dbdb 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -32,6 +32,16 @@ the plug-in code, LGPL or LGPL-compatible for the supporting library).
    </GitRepository>
  </repository> 
 
+ <release>
+  <Version>
+   <revision>1.2.1</revision>
+   <branch>1.2</branch>
+   <name></name>
+   <created>2013-11-09</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.2.1.tar.xz" />
+  </Version>
+ </release>
+ 
  <release>
   <Version>
    <revision>1.2.0</revision>
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index 29ecfc286917bb63e3b0385dbf2e1ee579c3a846..e39b2132cc0c80461978043616bf29b61cb143c8 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.2.0
+Version: 	1.2.1
 Release: 	1.gst
 Summary: 	GStreamer plug-ins with good code and licensing
 
diff --git a/gst/audiofx/audiofxbaseiirfilter.c b/gst/audiofx/audiofxbaseiirfilter.c
index 50a00da7c39f9a527f1d21ef862311a8cea5d071..1ce4d8bc7755af2ff9fda23294ee29cbd11c20f1 100644
--- a/gst/audiofx/audiofxbaseiirfilter.c
+++ b/gst/audiofx/audiofxbaseiirfilter.c
@@ -372,7 +372,11 @@ gst_audio_fx_base_iir_filter_transform_ip (GstBaseTransform * base,
   if (GST_CLOCK_TIME_IS_VALID (stream_time))
     gst_object_sync_values (GST_OBJECT (filter), stream_time);
 
-  g_return_val_if_fail (filter->a != NULL, GST_FLOW_ERROR);
+  if (filter->a == NULL || filter->b == NULL) {
+    g_return_val_if_fail (filter->a != NULL
+        && filter->b != NULL, GST_FLOW_ERROR);
+    return GST_FLOW_ERROR;
+  }
 
   gst_buffer_map (buf, &map, GST_MAP_READWRITE);
   num_samples = map.size / GST_AUDIO_FILTER_BPS (filter);
diff --git a/gst/audiofx/audioiirfilter.c b/gst/audiofx/audioiirfilter.c
index cf3070f155eb5787ea868619c1041b531154fa72..c107594d4d5144488dc29d48d2e9a673f936e0b4 100644
--- a/gst/audiofx/audioiirfilter.c
+++ b/gst/audiofx/audioiirfilter.c
@@ -186,7 +186,7 @@ static void
 gst_audio_iir_filter_init (GstAudioIIRFilter * self)
 {
   GValue v = { 0, };
-  GValueArray *a, *b;
+  GValueArray *a;
 
   a = g_value_array_new (1);
 
@@ -195,8 +195,7 @@ gst_audio_iir_filter_init (GstAudioIIRFilter * self)
   g_value_array_append (a, &v);
   g_value_unset (&v);
 
-  b = NULL;
-  gst_audio_iir_filter_update_coefficients (self, a, b);
+  gst_audio_iir_filter_update_coefficients (self, a, g_value_array_copy (a));
 
   g_mutex_init (&self->lock);
 }
diff --git a/gst/deinterlace/tvtime/greedyh.c b/gst/deinterlace/tvtime/greedyh.c
index d769524dab930c9d33dc7f4cc292432a9512dc39..69f75ee2ddb7450bc75a7c5b99360e84cdc322b0 100644
--- a/gst/deinterlace/tvtime/greedyh.c
+++ b/gst/deinterlace/tvtime/greedyh.c
@@ -727,7 +727,7 @@ deinterlace_frame_di_greedyh_packed (GstDeinterlaceMethod * method,
   gint InfoIsOdd = 0;
   gint Line;
   gint RowStride = GST_VIDEO_FRAME_COMP_STRIDE (outframe, 0);
-  gint FieldHeight = GST_VIDEO_INFO_HEIGHT (method->vinfo) / 2;
+  gint FieldHeight = GST_VIDEO_FRAME_HEIGHT (outframe) / 2;
   gint Pitch = RowStride * 2;
   const guint8 *L1;             // ptr to Line1, of 3
   const guint8 *L2;             // ptr to Line2, the weave line
@@ -912,8 +912,8 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method,
 
   for (i = 0; i < 3; i++) {
     InfoIsOdd = (history[cur_field_idx - 1].flags == PICTURE_INTERLACED_BOTTOM);
-    RowStride = GST_VIDEO_FRAME_PLANE_STRIDE (outframe, i);
-    FieldHeight = GST_VIDEO_FRAME_HEIGHT (outframe) / 2;
+    RowStride = GST_VIDEO_FRAME_COMP_STRIDE (outframe, i);
+    FieldHeight = GST_VIDEO_FRAME_COMP_HEIGHT (outframe, i) / 2;
     Pitch = RowStride * 2;
 
     if (i == 0)
@@ -921,18 +921,18 @@ deinterlace_frame_di_greedyh_planar (GstDeinterlaceMethod * method,
     else
       scanline = klass->scanline_planar_uv;
 
-    Dest = GST_VIDEO_FRAME_PLANE_DATA (outframe, i);
+    Dest = GST_VIDEO_FRAME_COMP_DATA (outframe, i);
 
-    L1 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 2].frame, i);
+    L1 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx - 2].frame, i);
     if (history[cur_field_idx - 2].flags & PICTURE_INTERLACED_BOTTOM)
       L1 += RowStride;
 
-    L2 = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 1].frame, i);
+    L2 = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx - 1].frame, i);
     if (history[cur_field_idx - 1].flags & PICTURE_INTERLACED_BOTTOM)
       L2 += RowStride;
 
     L3 = L1 + Pitch;
-    L2P = GST_VIDEO_FRAME_PLANE_DATA (history[cur_field_idx - 3].frame, i);
+    L2P = GST_VIDEO_FRAME_COMP_DATA (history[cur_field_idx - 3].frame, i);
     if (history[cur_field_idx - 3].flags & PICTURE_INTERLACED_BOTTOM)
       L2P += RowStride;
 
diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c
index 8d7387f4d1a8490a0f28979e252a07e0af2e16fb..2950a2022647b39a2188ca7b4d991d1ed6c5593c 100644
--- a/gst/flv/gstflvmux.c
+++ b/gst/flv/gstflvmux.c
@@ -76,8 +76,7 @@ static GstStaticPadTemplate audiosink_templ = GST_STATIC_PAD_TEMPLATE ("audio",
     GST_STATIC_CAPS
     ("audio/x-adpcm, layout = (string) swf, channels = (int) { 1, 2 }, rate = (int) { 5512, 11025, 22050, 44100 }; "
         "audio/mpeg, mpegversion = (int) 1, layer = (int) 3, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 22050, 44100 }, parsed = (boolean) TRUE; "
-        "audio/mpeg, mpegversion = (int) 2, framed = (boolean) TRUE; "
-        "audio/mpeg, mpegversion = (int) 4, stream-format = (string) raw, framed = (boolean) TRUE; "
+        "audio/mpeg, mpegversion = (int) { 4, 2 }, stream-format = (string) raw; "
         "audio/x-nellymoser, channels = (int) { 1, 2 }, rate = (int) { 5512, 8000, 11025, 16000, 22050, 44100 }; "
         "audio/x-raw, format = (string) { U8, S16LE}, layout = (string) interleaved, channels = (int) { 1, 2 }, rate = (int) { 5512, 11025, 22050, 44100 }; "
         "audio/x-alaw, channels = (int) { 1, 2 }, rate = (int) { 5512, 11025, 22050, 44100 }; "
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 58533a455b4ec0520b6b9759a85294683e06a815..3231963bd509a5f4fe3646451a37f30ec5768adf 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -1653,7 +1653,11 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
     if (!seekable) {
       if (qtmux_klass->format != GST_QT_MUX_FORMAT_ISML) {
         if (!qtmux->fast_start) {
-          goto not_seekable_error;
+          GST_ELEMENT_WARNING (qtmux, STREAM, FAILED,
+              ("Downstream is not seekable and headers can't be rewritten"),
+              (NULL));
+          /* FIXME: Is there something better we can do? */
+          qtmux->streamable = TRUE;
         }
       } else {
         GST_WARNING_OBJECT (qtmux, "downstream is not seekable, but "
@@ -1774,15 +1778,6 @@ gst_qt_mux_start_file (GstQTMux * qtmux)
 exit:
   return ret;
 
-not_seekable_error:
-  {
-    GST_ELEMENT_ERROR (qtmux, STREAM, FAILED,
-        ("Downstream is not seekable and headers can't be rewritten"),
-        GST_ERROR_SYSTEM);
-    GST_OBJECT_UNLOCK (qtmux);
-    return GST_FLOW_ERROR;
-  }
-
   /* ERRORS */
 open_failed:
   {
diff --git a/gst/isomp4/gstqtmuxmap.c b/gst/isomp4/gstqtmuxmap.c
index b739a7c8be959b2b5ecca6719c17472bb1ebbd2f..833b1b0afdb8db9ebfcb4102d65e71006ad7cf27 100644
--- a/gst/isomp4/gstqtmuxmap.c
+++ b/gst/isomp4/gstqtmuxmap.c
@@ -49,8 +49,7 @@
 
 #define COMMON_VIDEO_CAPS \
   "width = (int) [ 16, 4096 ], " \
-  "height = (int) [ 16, 4096 ], " \
-  "framerate = (fraction) [ 0, MAX ]"
+  "height = (int) [ 16, 4096 ]"
 
 #define COMMON_VIDEO_CAPS_NO_FRAMERATE \
   "width = (int) [ 16, 4096 ], " \
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index d2f3b878e7aad5a358e580f8297eef3494f5cc7f..dc3e9b6cd6ca891aa34439c7f807a2fe886c31e1 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -531,6 +531,8 @@ gst_qtdemux_init (GstQTDemux * qtdemux)
   qtdemux->got_moov = FALSE;
   qtdemux->mdatoffset = GST_CLOCK_TIME_NONE;
   qtdemux->mdatbuffer = NULL;
+  qtdemux->restoredata_buffer = NULL;
+  qtdemux->restoredata_offset = GST_CLOCK_TIME_NONE;
   qtdemux->fragment_start = -1;
   qtdemux->media_caps = NULL;
   qtdemux->exposed = FALSE;
@@ -1803,9 +1805,13 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
     qtdemux->first_mdat = -1;
     qtdemux->header_size = 0;
     qtdemux->mdatoffset = GST_CLOCK_TIME_NONE;
+    qtdemux->restoredata_offset = GST_CLOCK_TIME_NONE;
     if (qtdemux->mdatbuffer)
       gst_buffer_unref (qtdemux->mdatbuffer);
+    if (qtdemux->restoredata_buffer)
+      gst_buffer_unref (qtdemux->restoredata_buffer);
     qtdemux->mdatbuffer = NULL;
+    qtdemux->restoredata_buffer = NULL;
     qtdemux->mdatleft = 0;
     if (qtdemux->comp_brands)
       gst_buffer_unref (qtdemux->comp_brands);
@@ -3745,7 +3751,8 @@ gst_qtdemux_sync_streams (GstQTDemux * demux)
     GST_LOG_OBJECT (demux, "current position: %" GST_TIME_FORMAT
         ", stream end: %" GST_TIME_FORMAT,
         GST_TIME_ARGS (demux->segment.position), GST_TIME_ARGS (end_time));
-    if (end_time + 2 * GST_SECOND < demux->segment.position) {
+    if (GST_CLOCK_TIME_IS_VALID (end_time)
+        && (end_time + 2 * GST_SECOND < demux->segment.position)) {
       GST_DEBUG_OBJECT (demux, "sending EOS for stream %s",
           GST_PAD_NAME (stream->pad));
       stream->sent_eos = TRUE;
@@ -4600,10 +4607,11 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
           break;
         }
         if (fourcc == FOURCC_mdat) {
-          if (demux->n_streams > 0) {
+          gint next_entry = next_entry_size (demux);
+          if (demux->n_streams > 0 && (next_entry != -1 || !demux->fragmented)) {
             /* we have the headers, start playback */
             demux->state = QTDEMUX_STATE_MOVIE;
-            demux->neededbytes = next_entry_size (demux);
+            demux->neededbytes = next_entry;
             demux->mdatleft = size;
           } else {
             /* no headers yet, try to get them */
@@ -4667,7 +4675,8 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         } else {
           /* this means we already started buffering and still no moov header,
            * let's continue buffering everything till we get moov */
-          if (demux->mdatbuffer && (fourcc != FOURCC_moov))
+          if (demux->mdatbuffer && !(fourcc == FOURCC_moov
+                  || fourcc == FOURCC_moof))
             goto buffer_data;
           demux->neededbytes = size;
           demux->state = QTDEMUX_STATE_HEADER;
@@ -4768,13 +4777,29 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
         data = NULL;
 
         if (demux->mdatbuffer && demux->n_streams) {
+          gsize remaining_data_size = 0;
+
           /* the mdat was before the header */
           GST_DEBUG_OBJECT (demux, "We have n_streams:%d and mdatbuffer:%p",
               demux->n_streams, demux->mdatbuffer);
           /* restore our adapter/offset view of things with upstream;
            * put preceding buffered data ahead of current moov data.
            * This should also handle evil mdat, moov, mdat cases and alike */
-          gst_adapter_clear (demux->adapter);
+          gst_adapter_flush (demux->adapter, demux->neededbytes);
+
+          /* Store any remaining data after the mdat for later usage */
+          remaining_data_size = gst_adapter_available (demux->adapter);
+          if (remaining_data_size > 0) {
+            g_assert (demux->restoredata_buffer == NULL);
+            demux->restoredata_buffer =
+                gst_adapter_take_buffer (demux->adapter, remaining_data_size);
+            demux->restoredata_offset = demux->offset + demux->neededbytes;
+            GST_DEBUG_OBJECT (demux,
+                "Stored %" G_GSIZE_FORMAT " post mdat bytes at offset %"
+                G_GUINT64_FORMAT, remaining_data_size,
+                demux->restoredata_offset);
+          }
+
           gst_adapter_push (demux->adapter, demux->mdatbuffer);
           demux->mdatbuffer = NULL;
           demux->offset = demux->mdatoffset;
@@ -4859,6 +4884,16 @@ gst_qtdemux_chain (GstPad * sinkpad, GstObject * parent, GstBuffer * inbuf)
             /* need to resume atom parsing so we do not miss any other pieces */
             demux->state = QTDEMUX_STATE_INITIAL;
             demux->neededbytes = 16;
+
+            /* check if there was any stored post mdat data from previous buffers */
+            if (demux->restoredata_buffer) {
+              g_assert (gst_adapter_available (demux->adapter) == 0);
+
+              gst_adapter_push (demux->adapter, demux->restoredata_buffer);
+              demux->restoredata_buffer = NULL;
+              demux->offset = demux->restoredata_offset;
+            }
+
             break;
           }
         }
@@ -9842,7 +9877,8 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
 
   /* Moving qt creation time (secs since 1904) to unix time */
   if (creation_time != 0) {
-    if (creation_time > QTDEMUX_SECONDS_FROM_1904_TO_1970) {
+    /* Try to use epoch first as it should be faster and more commonly found */
+    if (creation_time >= QTDEMUX_SECONDS_FROM_1904_TO_1970) {
       GTimeVal now;
 
       creation_time -= QTDEMUX_SECONDS_FROM_1904_TO_1970;
@@ -9851,11 +9887,18 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
       if (now.tv_sec + 24 * 3600 < creation_time) {
         GST_DEBUG_OBJECT (qtdemux, "discarding bogus future creation time");
       } else {
-        datetime = gst_date_time_new_from_unix_epoch_local_time (creation_time);
+        datetime = gst_date_time_new_from_unix_epoch_utc (creation_time);
       }
     } else {
-      GST_WARNING_OBJECT (qtdemux, "Can't handle datetimes before 1970 yet, "
-          "please file a bug at http://bugzilla.gnome.org");
+      GDateTime *base_dt = g_date_time_new_utc (1904, 1, 1, 0, 0, 0);
+      GDateTime *dt, *dt_local;
+
+      dt = g_date_time_add_seconds (base_dt, creation_time);
+      dt_local = g_date_time_to_local (dt);
+      datetime = gst_date_time_new_from_g_date_time (dt_local);
+
+      g_date_time_unref (base_dt);
+      g_date_time_unref (dt);
     }
   }
   if (datetime) {
@@ -10323,6 +10366,7 @@ qtdemux_video_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
     case GST_MAKE_FOURCC ('x', 'd', 'h', '2'): /* XDCAM HD422 540p */
     case GST_MAKE_FOURCC ('A', 'V', 'm', 'p'): /* AVID IMX PAL */
     case GST_MAKE_FOURCC ('m', 'p', 'g', '2'): /* AVID IMX PAL */
+    case GST_MAKE_FOURCC ('m', 'p', '2', 'v'): /* AVID IMX PAL */
       _codec ("MPEG-2 video");
       caps = gst_caps_new_simple ("video/mpeg", "mpegversion", G_TYPE_INT, 2,
           "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index d27134c9b3dface63f5f4fda9f1c17e57bc842c4..3fb43daea7ff9e2eacd8d0c5cf6b7dcb449df7ac 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -91,6 +91,15 @@ struct _GstQTDemux {
   GstAdapter *adapter;
   GstBuffer *mdatbuffer;
   guint64 mdatleft;
+  /* When restoring the mdat to the adatpter, this buffer
+   * stores any trailing data that was after the last atom parsed as it
+   * has to be restored later along with the correct offset. Used in
+   * fragmented scenario where mdat/moof are one after the other
+   * in any order.
+   *
+   * Check https://bugzilla.gnome.org/show_bug.cgi?id=710623 */
+  GstBuffer *restoredata_buffer;
+  guint64 restoredata_offset;
 
   guint64 offset;
   /* offset of the mdat atom */
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index d7b8901b5a86e12e77e6dd0edfab092aa5baaf60..90bf6df1273c1b23a48fb3f08deb7f3e645ce849 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -3006,6 +3006,23 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element,
   if (!gst_buffer_get_size (*buf) || !gst_buffer_map (*buf, &map, GST_MAP_READ))
     return GST_FLOW_OK;
 
+  /* Need \0-terminator at the end */
+  if (map.data[map.size - 1] != '\0') {
+    newbuf = gst_buffer_new_and_alloc (map.size + 1);
+
+    /* Copy old buffer and add a 0 at the end */
+    gst_buffer_fill (newbuf, 0, map.data, map.size);
+    gst_buffer_memset (newbuf, map.size, 0, 1);
+    gst_buffer_unmap (*buf, &map);
+
+    gst_buffer_copy_into (newbuf, *buf,
+        GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS |
+        GST_BUFFER_COPY_META, 0, -1);
+    gst_buffer_unref (*buf);
+    *buf = newbuf;
+    gst_buffer_map (*buf, &map, GST_MAP_READ);
+  }
+
   if (!sub_stream->invalid_utf8) {
     if (g_utf8_validate ((gchar *) map.data, map.size - 1, NULL)) {
       goto next;
@@ -3060,22 +3077,6 @@ gst_matroska_demux_check_subtitle_buffer (GstElement * element,
   gst_buffer_map (*buf, &map, GST_MAP_READ);
 
 next:
-  /* Need \0-terminator at the end */
-  if (map.data[map.size - 1] != '\0') {
-    newbuf = gst_buffer_new_and_alloc (map.size + 1);
-
-    /* Copy old buffer and add a 0 at the end */
-    gst_buffer_fill (newbuf, 0, map.data, map.size);
-    gst_buffer_memset (newbuf, map.size, 0, 1);
-    gst_buffer_unmap (*buf, &map);
-
-    gst_buffer_copy_into (newbuf, *buf,
-        GST_BUFFER_COPY_TIMESTAMPS | GST_BUFFER_COPY_FLAGS |
-        GST_BUFFER_COPY_META, 0, -1);
-    gst_buffer_unref (*buf);
-    *buf = newbuf;
-    gst_buffer_map (*buf, &map, GST_MAP_READ);
-  }
 
   if (sub_stream->check_markup) {
     /* caps claim markup text, so we need to escape text,
@@ -3467,7 +3468,7 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
       segment_event = gst_event_new_segment (segment);
       if (demux->segment_seqnum)
         gst_event_set_seqnum (segment_event, demux->segment_seqnum);
-      gst_matroska_demux_send_event (demux, gst_event_new_segment (segment));
+      gst_matroska_demux_send_event (demux, segment_event);
       demux->need_segment = FALSE;
       demux->segment_seqnum = 0;
     }
@@ -3753,6 +3754,12 @@ gst_matroska_demux_parse_blockgroup_or_simpleblock (GstMatroskaDemux * demux,
       g_assert (stream->alignment <= G_MEM_ALIGN);
       sub = gst_matroska_demux_align_buffer (demux, sub, stream->alignment);
 
+      if (GST_BUFFER_PTS_IS_VALID (sub)) {
+        stream->pos = GST_BUFFER_PTS (sub);
+        if (GST_BUFFER_DURATION_IS_VALID (sub))
+          stream->pos += GST_BUFFER_DURATION (sub);
+      }
+
       ret = gst_pad_push (stream->pad, sub);
 
       if (demux->common.segment.rate < 0) {
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index d535fd3b6bea166e337795f518c063d6f4cb7f49..7b846e518e90b68b2225fbd418202b91866cdb6b 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -2481,6 +2481,7 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
   };
   const gchar *media_type;
   gboolean audio_only;
+  gboolean is_webm = FALSE;
   guint64 master, child;
   GSList *collected;
   int i;
@@ -2521,9 +2522,13 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
   g_snprintf (s_id, sizeof (s_id), "matroskamux-%08x", g_random_int ());
   gst_pad_push_event (mux->srcpad, gst_event_new_stream_start (s_id));
 
+  /* Are we muxing a WebM stream? */
+  if (!strcmp (mux->doctype, GST_MATROSKA_DOCTYPE_WEBM)) {
+    is_webm = TRUE;
+  }
   /* output caps */
   audio_only = mux->num_v_streams == 0 && mux->num_a_streams > 0;
-  if (!strcmp (mux->doctype, GST_MATROSKA_DOCTYPE_WEBM)) {
+  if (is_webm) {
     media_type = (audio_only) ? "audio/webm" : "video/webm";
   } else {
     media_type = (audio_only) ? "audio/x-matroska" : "video/x-matroska";
@@ -2581,11 +2586,16 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
   /* segment info */
   mux->info_pos = ebml->pos;
   master = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_SEGMENTINFO);
-  for (i = 0; i < 4; i++) {
-    segment_uid[i] = g_random_int ();
+
+  /* WebM does not support SegmentUID field on SegmentInfo */
+  if (!is_webm) {
+    for (i = 0; i < 4; i++) {
+      segment_uid[i] = g_random_int ();
+    }
+    gst_ebml_write_binary (ebml, GST_MATROSKA_ID_SEGMENTUID,
+        (guint8 *) segment_uid, 16);
   }
-  gst_ebml_write_binary (ebml, GST_MATROSKA_ID_SEGMENTUID,
-      (guint8 *) segment_uid, 16);
+
   gst_ebml_write_uint (ebml, GST_MATROSKA_ID_TIMECODESCALE, mux->time_scale);
   mux->duration_pos = ebml->pos;
   /* get duration */
diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c
index 55c356c724633d1ff327a098c5a56387ef06092d..669654c258a650b8726e8940320e26ce0c41c92f 100644
--- a/gst/rtp/gstrtpgstpay.c
+++ b/gst/rtp/gstrtpgstpay.c
@@ -353,15 +353,16 @@ static GstFlowReturn
 gst_rtp_gst_pay_flush (GstRtpGSTPay * rtpgstpay, GstClockTime timestamp)
 {
   GstFlowReturn ret = GST_FLOW_OK;
-  GList *iter, *next;
+  GList *iter;
 
   gst_rtp_gst_pay_create_from_adapter (rtpgstpay, timestamp);
-  for (iter = rtpgstpay->pending_buffers; iter; iter = next) {
+
+  iter = rtpgstpay->pending_buffers;
+  while (iter) {
     GstBufferList *list = iter->data;
 
-    next = iter->next;
-    rtpgstpay->pending_buffers = g_list_remove_link (rtpgstpay->pending_buffers,
-        iter);
+    rtpgstpay->pending_buffers = iter =
+        g_list_delete_link (rtpgstpay->pending_buffers, iter);
 
     /* push the whole buffer list at once */
     ret = gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpgstpay),
diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c
index 988d55da3270a9a02a0e64522275f3a5a777a16c..021f2e4a8fd840aef997b7c8d216118abc129b13 100644
--- a/gst/rtp/gstrtpvp8pay.c
+++ b/gst/rtp/gstrtpvp8pay.c
@@ -36,7 +36,36 @@
 GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_pay_debug);
 #define GST_CAT_DEFAULT gst_rtp_vp8_pay_debug
 
-#define DEFAULT_PICTURE_ID_MODE VP8_PAY_PICTURE_ID_7BITS
+#define DEFAULT_PICTURE_ID_MODE VP8_PAY_NO_PICTURE_ID
+
+enum
+{
+  PROP_0,
+  PROP_PICTURE_ID_MODE
+};
+
+#define GST_TYPE_RTP_VP8_PAY_PICTURE_ID_MODE (gst_rtp_vp8_pay_picture_id_mode_get_type())
+static GType
+gst_rtp_vp8_pay_picture_id_mode_get_type (void)
+{
+  static GType mode_type = 0;
+  static const GEnumValue modes[] = {
+    {VP8_PAY_NO_PICTURE_ID, "No Picture ID", "none"},
+    {VP8_PAY_PICTURE_ID_7BITS, "7-bit Picture ID", "7-bit"},
+    {VP8_PAY_PICTURE_ID_15BITS, "15-bit Picture ID", "15-bit"},
+    {0, NULL, NULL},
+  };
+
+  if (!mode_type) {
+    mode_type = g_enum_register_static ("GstVP8RTPPayMode", modes);
+  }
+  return mode_type;
+}
+
+static void gst_rtp_vp8_pay_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_rtp_vp8_pay_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
 
 static GstFlowReturn gst_rtp_vp8_pay_handle_buffer (GstRTPBasePayload * payload,
     GstBuffer * buffer);
@@ -64,7 +93,6 @@ GST_STATIC_PAD_TEMPLATE ("sink",
 static void
 gst_rtp_vp8_pay_init (GstRtpVP8Pay * obj)
 {
-  /* TODO: Make it configurable */
   obj->picture_id_mode = DEFAULT_PICTURE_ID_MODE;
   if (obj->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS)
     obj->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F;
@@ -75,10 +103,20 @@ gst_rtp_vp8_pay_init (GstRtpVP8Pay * obj)
 static void
 gst_rtp_vp8_pay_class_init (GstRtpVP8PayClass * gst_rtp_vp8_pay_class)
 {
+  GObjectClass *gobject_class = G_OBJECT_CLASS (gst_rtp_vp8_pay_class);
   GstElementClass *element_class = GST_ELEMENT_CLASS (gst_rtp_vp8_pay_class);
   GstRTPBasePayloadClass *pay_class =
       GST_RTP_BASE_PAYLOAD_CLASS (gst_rtp_vp8_pay_class);
 
+  gobject_class->set_property = gst_rtp_vp8_pay_set_property;
+  gobject_class->get_property = gst_rtp_vp8_pay_get_property;
+
+  g_object_class_install_property (gobject_class, PROP_PICTURE_ID_MODE,
+      g_param_spec_enum ("picture-id-mode", "Picture ID Mode",
+          "The picture ID mode for payloading",
+          GST_TYPE_RTP_VP8_PAY_PICTURE_ID_MODE, DEFAULT_PICTURE_ID_MODE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_rtp_vp8_pay_sink_template));
   gst_element_class_add_pad_template (element_class,
@@ -96,6 +134,42 @@ gst_rtp_vp8_pay_class_init (GstRtpVP8PayClass * gst_rtp_vp8_pay_class)
       "VP8 Video RTP Payloader");
 }
 
+static void
+gst_rtp_vp8_pay_set_property (GObject * object,
+    guint prop_id, const GValue * value, GParamSpec * pspec)
+{
+  GstRtpVP8Pay *rtpvp8pay = GST_RTP_VP8_PAY (object);
+
+  switch (prop_id) {
+    case PROP_PICTURE_ID_MODE:
+      rtpvp8pay->picture_id_mode = g_value_get_enum (value);
+      if (rtpvp8pay->picture_id_mode == VP8_PAY_PICTURE_ID_7BITS)
+        rtpvp8pay->picture_id = g_random_int_range (0, G_MAXUINT8) & 0x7F;
+      else if (rtpvp8pay->picture_id_mode == VP8_PAY_PICTURE_ID_15BITS)
+        rtpvp8pay->picture_id = g_random_int_range (0, G_MAXUINT16) & 0x7FFF;
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+static void
+gst_rtp_vp8_pay_get_property (GObject * object,
+    guint prop_id, GValue * value, GParamSpec * pspec)
+{
+  GstRtpVP8Pay *rtpvp8pay = GST_RTP_VP8_PAY (object);
+
+  switch (prop_id) {
+    case PROP_PICTURE_ID_MODE:
+      g_value_set_enum (value, rtpvp8pay->picture_id_mode);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
 static gboolean
 gst_rtp_vp8_pay_parse_frame (GstRtpVP8Pay * self, GstBuffer * buffer)
 {
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index e615c94e11a9178ecbd6e9236fbd7f659f30ad20..97f9d8ed7e9251a3d43df6f1370916dddabeb64c 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -1439,7 +1439,8 @@ create_stream (GstRtpBinSession * session, guint32 ssrc)
 
   /* link stuff */
   if (demux)
-    gst_element_link (buffer, demux);
+    gst_element_link_pads_full (buffer, "src", demux, "sink",
+        GST_PAD_LINK_CHECK_NOTHING);
 
   if (rtpbin->buffering) {
     guint64 last_out;
@@ -2563,7 +2564,7 @@ new_ssrc_pad_found (GstElement * element, guint ssrc, GstPad * pad,
   srcpad = gst_element_get_static_pad (element, padname);
   g_free (padname);
   sinkpad = gst_element_get_static_pad (stream->buffer, "sink");
-  gst_pad_link (srcpad, sinkpad);
+  gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
   gst_object_unref (sinkpad);
   gst_object_unref (srcpad);
 
@@ -2572,7 +2573,7 @@ new_ssrc_pad_found (GstElement * element, guint ssrc, GstPad * pad,
   srcpad = gst_element_get_static_pad (element, padname);
   g_free (padname);
   sinkpad = gst_element_get_request_pad (stream->buffer, "sink_rtcp");
-  gst_pad_link (srcpad, sinkpad);
+  gst_pad_link_full (srcpad, sinkpad, GST_PAD_LINK_CHECK_NOTHING);
   gst_object_unref (sinkpad);
   gst_object_unref (srcpad);
 
@@ -2649,7 +2650,6 @@ create_recv_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name)
   GstPad *sinkdpad;
   guint sessid;
   GstRtpBinSession *session;
-  GstPadLinkReturn lres;
 
   /* first get the session number */
   if (name == NULL || sscanf (name, "recv_rtp_sink_%u", &sessid) != 1)
@@ -2691,10 +2691,9 @@ create_recv_rtp (GstRtpBin * rtpbin, GstPadTemplate * templ, const gchar * name)
   GST_DEBUG_OBJECT (rtpbin, "getting demuxer RTP sink pad");
   sinkdpad = gst_element_get_static_pad (session->demux, "sink");
   GST_DEBUG_OBJECT (rtpbin, "linking demuxer RTP sink pad");
-  lres = gst_pad_link (session->recv_rtp_src, sinkdpad);
+  gst_pad_link_full (session->recv_rtp_src, sinkdpad,
+      GST_PAD_LINK_CHECK_NOTHING);
   gst_object_unref (sinkdpad);
-  if (lres != GST_PAD_LINK_OK)
-    goto link_failed;
 
   /* connect to the new-ssrc-pad signal of the SSRC demuxer */
   session->demux_newpad_sig = g_signal_connect (session->demux,
@@ -2726,11 +2725,6 @@ pad_failed:
     g_warning ("rtpbin: failed to get session pad");
     return NULL;
   }
-link_failed:
-  {
-    g_warning ("rtpbin: failed to link pads");
-    return NULL;
-  }
 }
 
 static void
@@ -2771,7 +2765,6 @@ create_recv_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ,
   guint sessid;
   GstRtpBinSession *session;
   GstPad *sinkdpad;
-  GstPadLinkReturn lres;
 
   /* first get the session number */
   if (name == NULL || sscanf (name, "recv_rtcp_sink_%u", &sessid) != 1)
@@ -2808,10 +2801,8 @@ create_recv_rtcp (GstRtpBin * rtpbin, GstPadTemplate * templ,
 
   GST_DEBUG_OBJECT (rtpbin, "getting demuxer RTCP sink pad");
   sinkdpad = gst_element_get_static_pad (session->demux, "rtcp_sink");
-  lres = gst_pad_link (session->sync_src, sinkdpad);
+  gst_pad_link_full (session->sync_src, sinkdpad, GST_PAD_LINK_CHECK_NOTHING);
   gst_object_unref (sinkdpad);
-  if (lres != GST_PAD_LINK_OK)
-    goto link_failed;
 
   session->recv_rtcp_sink_ghost =
       gst_ghost_pad_new_from_template (name, session->recv_rtcp_sink, templ);
@@ -2837,11 +2828,6 @@ pad_failed:
     g_warning ("rtpbin: failed to get session pad");
     return NULL;
   }
-link_failed:
-  {
-    g_warning ("rtpbin: failed to link pads");
-    return NULL;
-  }
 }
 
 static void
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 2fb633b548f2e77f5271abf9d1f94423e054fb43..553924415d62766224146927444e09a6acfcdadc 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -162,25 +162,33 @@ enum
 #define JBUF_UNLOCK(priv) (g_mutex_unlock (&(priv)->jbuf_lock))
 
 #define JBUF_WAIT_TIMER(priv)   G_STMT_START {            \
+  GST_DEBUG ("waiting timer");                            \
   (priv)->waiting_timer = TRUE;                           \
   g_cond_wait (&(priv)->jbuf_timer, &(priv)->jbuf_lock);  \
   (priv)->waiting_timer = FALSE;                          \
+  GST_DEBUG ("waiting timer done");                       \
 } G_STMT_END
-#define JBUF_SIGNAL_TIMER(priv) G_STMT_START {    \
-  if (G_UNLIKELY ((priv)->waiting_timer))         \
-    g_cond_signal (&(priv)->jbuf_timer);          \
+#define JBUF_SIGNAL_TIMER(priv) G_STMT_START {            \
+  if (G_UNLIKELY ((priv)->waiting_timer)) {               \
+    GST_DEBUG ("signal timer");                           \
+    g_cond_signal (&(priv)->jbuf_timer);                  \
+  }                                                       \
 } G_STMT_END
 
 #define JBUF_WAIT_EVENT(priv,label) G_STMT_START {       \
+  GST_DEBUG ("waiting event");                           \
   (priv)->waiting_event = TRUE;                          \
   g_cond_wait (&(priv)->jbuf_event, &(priv)->jbuf_lock); \
   (priv)->waiting_event = FALSE;                         \
+  GST_DEBUG ("waiting event done");                      \
   if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK))       \
     goto label;                                          \
 } G_STMT_END
-#define JBUF_SIGNAL_EVENT(priv) G_STMT_START {    \
-  if (G_UNLIKELY ((priv)->waiting_event))         \
-    g_cond_signal (&(priv)->jbuf_event);          \
+#define JBUF_SIGNAL_EVENT(priv) G_STMT_START {           \
+  if (G_UNLIKELY ((priv)->waiting_event)) {              \
+    GST_DEBUG ("signal event");                          \
+    g_cond_signal (&(priv)->jbuf_event);                 \
+  }                                                      \
 } G_STMT_END
 
 struct _GstRtpJitterBufferPrivate
@@ -267,6 +275,11 @@ struct _GstRtpJitterBufferPrivate
   /* some accounting */
   guint64 num_late;
   guint64 num_duplicates;
+  guint64 num_rtx_requests;
+  guint64 num_rtx_success;
+  guint64 num_rtx_failed;
+  gdouble avg_rtx_num;
+  guint64 avg_rtx_rtt;
 };
 
 typedef enum
@@ -288,6 +301,8 @@ typedef struct
   GstClockTime rtx_base;
   GstClockTime rtx_delay;
   GstClockTime rtx_retry;
+  GstClockTime rtx_last;
+  guint num_rtx_retry;
 } TimerData;
 
 #define GST_RTP_JITTER_BUFFER_GET_PRIVATE(o) \
@@ -701,7 +716,7 @@ gst_rtp_jitter_buffer_init (GstRtpJitterBuffer * jitterbuffer)
 
 static RTPJitterBufferItem *
 alloc_item (gpointer data, guint type, GstClockTime dts, GstClockTime pts,
-    guint seqnum, guint rtptime)
+    guint seqnum, guint count, guint rtptime)
 {
   RTPJitterBufferItem *item;
 
@@ -713,6 +728,7 @@ alloc_item (gpointer data, guint type, GstClockTime dts, GstClockTime pts,
   item->dts = dts;
   item->pts = pts;
   item->seqnum = seqnum;
+  item->count = count;
   item->rtptime = rtptime;
 
   return item;
@@ -1184,6 +1200,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element,
       /* unblock to allow streaming in PLAYING */
       priv->blocked = FALSE;
       JBUF_SIGNAL_EVENT (priv);
+      JBUF_SIGNAL_TIMER (priv);
       JBUF_UNLOCK (priv);
       break;
     default:
@@ -1203,6 +1220,7 @@ gst_rtp_jitter_buffer_change_state (GstElement * element,
       JBUF_LOCK (priv);
       /* block to stop streaming when PAUSED */
       priv->blocked = TRUE;
+      unschedule_current_timer (jitterbuffer);
       JBUF_UNLOCK (priv);
       if (ret != GST_STATE_CHANGE_FAILURE)
         ret = GST_STATE_CHANGE_NO_PREROLL;
@@ -1319,6 +1337,8 @@ gst_rtp_jitter_buffer_sink_event (GstPad * pad, GstObject * parent,
     case GST_EVENT_FLUSH_START:
       ret = gst_pad_push_event (priv->srcpad, event);
       gst_rtp_jitter_buffer_flush_start (jitterbuffer);
+      /* wait for the loop to go into PAUSED */
+      gst_pad_pause_task (priv->srcpad);
       break;
     case GST_EVENT_FLUSH_STOP:
       ret = gst_pad_push_event (priv->srcpad, event);
@@ -1589,6 +1609,7 @@ add_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type,
     timer->rtx_delay = delay;
     timer->rtx_retry = 0;
   }
+  timer->num_rtx_retry = 0;
   recalculate_timer (jitterbuffer, timer);
   JBUF_SIGNAL_TIMER (priv);
 
@@ -1613,7 +1634,7 @@ reschedule_timer (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
 
   GST_DEBUG_OBJECT (jitterbuffer,
       "replace timer for seqnum %d->%d to %" GST_TIME_FORMAT,
-      oldseq, seqnum, GST_TIME_ARGS (timeout));
+      oldseq, seqnum, GST_TIME_ARGS (timeout + delay));
 
   timer->timeout = timeout + delay;
   timer->seqnum = seqnum;
@@ -1678,7 +1699,7 @@ remove_all_timers (GstRtpJitterBuffer * jitterbuffer)
 /* we just received a packet with seqnum and dts.
  *
  * First check for old seqnum that we are still expecting. If the gap with the
- * current timestamp is too big, unschedule the timeouts.
+ * current seqnum is too big, unschedule the timeouts.
  *
  * If we have a valid packet spacing estimate we can set a timer for when we
  * should receive the next packet.
@@ -1712,7 +1733,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
     } else if (gap > priv->rtx_delay_reorder) {
       /* max gap, we exceeded the max reorder distance and we don't expect the
        * missing packet to be this reordered */
-      if (test->rtx_retry == 0 && test->type == TIMER_TYPE_EXPECTED)
+      if (test->num_rtx_retry == 0 && test->type == TIMER_TYPE_EXPECTED)
         reschedule_timer (jitterbuffer, test, test->seqnum, -1, 0, FALSE);
     }
   }
@@ -1732,9 +1753,44 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
       add_timer (jitterbuffer, TIMER_TYPE_EXPECTED, priv->next_in_seqnum, 0,
           expected, delay, priv->packet_spacing);
   } else if (timer && timer->type != TIMER_TYPE_DEADLINE) {
+
+    if (timer->num_rtx_retry > 0) {
+      GstClockTime rtx_last;
+
+      /* we scheduled a retry for this packet and now we have it */
+      priv->num_rtx_success++;
+      /* all the previous retry attempts failed */
+      priv->num_rtx_failed += timer->num_rtx_retry - 1;
+      /* number of retries before receiving the packet */
+      if (priv->avg_rtx_num == 0.0)
+        priv->avg_rtx_num = timer->num_rtx_retry;
+      else
+        priv->avg_rtx_num = (timer->num_rtx_retry + 7 * priv->avg_rtx_num) / 8;
+      /* calculate the delay between retransmission request and receiving this
+       * packet, start with when we scheduled this timeout last */
+      rtx_last = timer->rtx_last;
+      if (dts > rtx_last) {
+        GstClockTime delay;
+        /* we have a valid delay if this packet arrived after we scheduled the
+         * request */
+        delay = dts - rtx_last;
+        if (priv->avg_rtx_rtt == 0)
+          priv->avg_rtx_rtt = delay;
+        else
+          priv->avg_rtx_rtt = (delay + 7 * priv->avg_rtx_rtt) / 8;
+      }
+      GST_LOG_OBJECT (jitterbuffer,
+          "RTX success %" G_GUINT64_FORMAT ", failed %" G_GUINT64_FORMAT
+          ", requests %" G_GUINT64_FORMAT ", dups %" G_GUINT64_FORMAT
+          ", avg-num %g, avg-rtt %" G_GUINT64_FORMAT, priv->num_rtx_success,
+          priv->num_rtx_failed, priv->num_rtx_requests, priv->num_duplicates,
+          priv->avg_rtx_num, priv->avg_rtx_rtt);
+    }
     /* if we had a timer, remove it, we don't know when to expect the next
      * packet. */
     remove_timer (jitterbuffer, timer);
+    /* we signal the _loop function because this new packet could be the one
+     * it was waiting for */
     JBUF_SIGNAL_EVENT (priv);
   }
 }
@@ -1760,47 +1816,6 @@ calculate_packet_spacing (GstRtpJitterBuffer * jitterbuffer, guint32 rtptime,
   }
 }
 
-static void
-send_lost_event (GstRtpJitterBuffer * jitterbuffer, guint seqnum,
-    guint lost_packets, GstClockTime timestamp, GstClockTime duration,
-    gboolean late)
-{
-  GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
-  guint next_seqnum;
-  GstEvent *event;
-  RTPJitterBufferItem *item;
-
-  /* we had a gap and thus we lost some packets. Create an event for this.  */
-  if (lost_packets > 1)
-    GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", seqnum,
-        seqnum + lost_packets - 1);
-  else
-    GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", seqnum);
-
-  priv->num_late += lost_packets;
-
-  next_seqnum = seqnum + lost_packets - 1;
-
-  /* create paket lost event */
-  event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
-      gst_structure_new ("GstRTPPacketLost",
-          "seqnum", G_TYPE_UINT, (guint) seqnum,
-          "timestamp", G_TYPE_UINT64, timestamp,
-          "duration", G_TYPE_UINT64, duration,
-          "late", G_TYPE_BOOLEAN, late, NULL));
-
-  item = alloc_item (event, ITEM_TYPE_LOST, -1, -1, next_seqnum, -1);
-  rtp_jitter_buffer_insert (priv->jbuf, item, NULL, NULL);
-
-  if (seqnum == priv->next_seqnum) {
-    GST_DEBUG_OBJECT (jitterbuffer, "lost seqnum %d == %d next_seqnum -> %d",
-        seqnum, priv->next_seqnum, next_seqnum);
-    priv->next_seqnum = next_seqnum & 0xffff;
-    priv->last_popped_seqnum = next_seqnum;
-    priv->last_out_time = timestamp;
-  }
-}
-
 static void
 calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected,
     guint16 seqnum, GstClockTime dts, gint gap)
@@ -2073,7 +2088,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     }
   }
 
-  item = alloc_item (buffer, ITEM_TYPE_BUFFER, dts, pts, seqnum, rtptime);
+  item = alloc_item (buffer, ITEM_TYPE_BUFFER, dts, pts, seqnum, 1, rtptime);
 
   /* now insert the packet into the queue in sorted order. This function returns
    * FALSE if a packet with the same seqnum was already in the queue, meaning we
@@ -2294,7 +2309,7 @@ pop_and_push_next (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum)
   /* now we are ready to push the buffer. Save the seqnum and release the lock
    * so the other end can push stuff in the queue again. */
   priv->last_popped_seqnum = seqnum;
-  priv->next_seqnum = (seqnum + 1) & 0xffff;
+  priv->next_seqnum = (seqnum + item->count) & 0xffff;
   JBUF_UNLOCK (priv);
 
   item->data = NULL;
@@ -2419,31 +2434,41 @@ do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   GstEvent *event;
+  guint delay;
 
   GST_DEBUG_OBJECT (jitterbuffer, "expected %d didn't arrive", timer->seqnum);
 
+  delay = timer->rtx_delay + timer->rtx_retry;
   event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
       gst_structure_new ("GstRTPRetransmissionRequest",
           "seqnum", G_TYPE_UINT, (guint) timer->seqnum,
           "running-time", G_TYPE_UINT64, timer->rtx_base,
-          "delay", G_TYPE_UINT,
-          GST_TIME_AS_MSECONDS (timer->rtx_delay + timer->rtx_retry),
-          "frequency", G_TYPE_UINT, priv->rtx_retry_timeout, "period",
-          G_TYPE_UINT, priv->rtx_retry_period, "deadline", G_TYPE_UINT,
-          priv->latency_ms, "packet-spacing", G_TYPE_UINT64,
-          priv->packet_spacing, NULL));
-
+          "delay", G_TYPE_UINT, GST_TIME_AS_MSECONDS (delay),
+          "retry", G_TYPE_UINT, timer->num_rtx_retry,
+          "frequency", G_TYPE_UINT, priv->rtx_retry_timeout,
+          "period", G_TYPE_UINT, priv->rtx_retry_period,
+          "deadline", G_TYPE_UINT, priv->latency_ms,
+          "packet-spacing", G_TYPE_UINT64, priv->packet_spacing, NULL));
+
+  priv->num_rtx_requests++;
+  timer->num_rtx_retry++;
+  timer->rtx_last = now;
   JBUF_UNLOCK (priv);
   gst_pad_push_event (priv->sinkpad, event);
   JBUF_LOCK (priv);
 
   /* calculate the timeout for the next retransmission attempt */
   timer->rtx_retry += (priv->rtx_retry_timeout * GST_MSECOND);
+  GST_DEBUG_OBJECT (jitterbuffer, "base %" GST_TIME_FORMAT ", delay %"
+      GST_TIME_FORMAT ", retry %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (timer->rtx_base), GST_TIME_ARGS (timer->rtx_delay),
+      GST_TIME_ARGS (timer->rtx_retry));
+
   if (timer->rtx_retry + timer->rtx_delay >
       (priv->rtx_retry_period * GST_MSECOND)) {
     GST_DEBUG_OBJECT (jitterbuffer, "reschedule as LOST timer");
     /* too many retransmission request, we now convert the timer
-     * to a lost timer */
+     * to a lost timer, leave the num_rtx_retry as it is for stats */
     timer->type = TIMER_TYPE_LOST;
     timer->rtx_delay = 0;
     timer->rtx_retry = 0;
@@ -2461,24 +2486,44 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   GstClockTime duration, timestamp;
-  guint seqnum, num;
+  guint seqnum, lost_packets, num_rtx_retry;
   gboolean late;
+  GstEvent *event;
+  RTPJitterBufferItem *item;
 
   seqnum = timer->seqnum;
   timestamp = apply_offset (jitterbuffer, timer->timeout);
   duration = timer->duration;
   if (duration == GST_CLOCK_TIME_NONE && priv->packet_spacing > 0)
     duration = priv->packet_spacing;
-  num = MAX (timer->num, 1);
+  lost_packets = MAX (timer->num, 1);
   late = timer->num > 0;
+  num_rtx_retry = timer->num_rtx_retry;
 
-  /* remove timer now */
-  remove_timer (jitterbuffer, timer);
+  /* we had a gap and thus we lost some packets. Create an event for this.  */
+  if (lost_packets > 1)
+    GST_DEBUG_OBJECT (jitterbuffer, "Packets #%d -> #%d lost", seqnum,
+        seqnum + lost_packets - 1);
+  else
+    GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", seqnum);
 
-  /* this releases the lock */
-  send_lost_event (jitterbuffer, seqnum, num, timestamp, duration, late);
+  priv->num_late += lost_packets;
+  priv->num_rtx_failed += num_rtx_retry;
 
-  /* now we can let the pushing thread try again */
+  /* create paket lost event */
+  event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
+      gst_structure_new ("GstRTPPacketLost",
+          "seqnum", G_TYPE_UINT, (guint) seqnum,
+          "timestamp", G_TYPE_UINT64, timestamp,
+          "duration", G_TYPE_UINT64, duration,
+          "late", G_TYPE_BOOLEAN, late,
+          "retry", G_TYPE_UINT, num_rtx_retry, NULL));
+
+  item = alloc_item (event, ITEM_TYPE_LOST, -1, -1, seqnum, lost_packets, -1);
+  rtp_jitter_buffer_insert (priv->jbuf, item, NULL, NULL);
+
+  /* remove timer now */
+  remove_timer (jitterbuffer, timer);
   JBUF_SIGNAL_EVENT (priv);
 
   return TRUE;
@@ -2590,7 +2635,7 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer)
         timer_timeout = test_timeout;
       }
     }
-    if (timer) {
+    if (timer && !priv->blocked) {
       GstClock *clock;
       GstClockTime sync_time;
       GstClockID id;
@@ -2651,9 +2696,7 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer)
       priv->clock_id = NULL;
     } else {
       /* no timers, wait for activity */
-      GST_DEBUG_OBJECT (jitterbuffer, "waiting");
       JBUF_WAIT_TIMER (priv);
-      GST_DEBUG_OBJECT (jitterbuffer, "waiting done");
     }
   }
   JBUF_UNLOCK (priv);
@@ -2680,10 +2723,8 @@ gst_rtp_jitter_buffer_loop (GstRtpJitterBuffer * jitterbuffer)
   do {
     result = handle_next_buffer (jitterbuffer);
     if (G_LIKELY (result == GST_FLOW_WAIT)) {
-      GST_DEBUG_OBJECT (jitterbuffer, "waiting for event");
       /* now wait for the next event */
       JBUF_WAIT_EVENT (priv, flushing);
-      GST_DEBUG_OBJECT (jitterbuffer, "waiting for event done");
       result = GST_FLOW_OK;
     }
   }
diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c
index 332a1f7abaddac6924ccb2dda63270c1530f9113..b7aac1025bc92442e8780b2400a422ecf17c2537 100644
--- a/gst/rtpmanager/rtpjitterbuffer.c
+++ b/gst/rtpmanager/rtpjitterbuffer.c
@@ -182,11 +182,8 @@ rtp_jitter_buffer_set_clock_rate (RTPJitterBuffer * jbuf, guint32 clock_rate)
       GST_WARNING ("Clock rate changed from %" G_GUINT32_FORMAT " to %"
           G_GUINT32_FORMAT, jbuf->clock_rate, clock_rate);
     }
-    jbuf->base_time = -1;
-    jbuf->base_rtptime = -1;
     jbuf->clock_rate = clock_rate;
-    jbuf->prev_out_time = -1;
-    jbuf->prev_send_diff = -1;
+    rtp_jitter_buffer_reset_skew (jbuf);
   }
 }
 
@@ -216,7 +213,6 @@ rtp_jitter_buffer_reset_skew (RTPJitterBuffer * jbuf)
   jbuf->base_time = -1;
   jbuf->base_rtptime = -1;
   jbuf->base_extrtp = -1;
-  jbuf->clock_rate = -1;
   jbuf->ext_rtptime = -1;
   jbuf->last_rtptime = -1;
   jbuf->window_pos = 0;
@@ -685,6 +681,9 @@ rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item,
   dts = item->dts;
   rtptime = item->rtptime;
 
+  if (rtptime == -1)
+    goto append;
+
   /* rtp time jumps are checked for during skew calculation, but bypassed
    * in other mode, so mind those here and reset jb if needed.
    * Only reset if valid input time, which is likely for UDP input
diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h
index 49817bf75a06cd5e851ccf4147a0e0fc5b21c77e..1389f268fea081fcc9eb936db8e4bee848001825 100644
--- a/gst/rtpmanager/rtpjitterbuffer.h
+++ b/gst/rtpmanager/rtpjitterbuffer.h
@@ -109,6 +109,7 @@ struct _RTPJitterBufferClass {
  * @dts: input DTS
  * @pts: output PTS
  * @seqnum: seqnum
+ * @count: amount of seqnum in this item
  * @rtptime: rtp timestamp
  *
  * An object containing an RTP packet or event.
@@ -121,6 +122,7 @@ struct _RTPJitterBufferItem {
   GstClockTime dts;
   GstClockTime pts;
   guint seqnum;
+  guint count;
   guint rtptime;
 };
 
diff --git a/gst/rtsp/Makefile.am b/gst/rtsp/Makefile.am
index 1f0213b37e818fd29dfa2ed0e3012e00a0eaf536..6397425518a42ada3e765c8ccb276b36e296923d 100644
--- a/gst/rtsp/Makefile.am
+++ b/gst/rtsp/Makefile.am
@@ -3,8 +3,8 @@ plugin_LTLIBRARIES = libgstrtsp.la
 libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \
 			gstrtpdec.c gstrtspext.c
 
-libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \
+libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
+libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) $(GIO_LIBS) \
 		       -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \
 		       -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS)
 libgstrtsp_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index 47a5ea96bcfac5f7bfa65f13304d77f8eb1cc8e1..fef9efdf9d37a517f38097bfaa7655296535cb4b 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -156,7 +156,7 @@ LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstrtsp_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
 am_libgstrtsp_la_OBJECTS = libgstrtsp_la-gstrtsp.lo \
 	libgstrtsp_la-gstrtspsrc.lo libgstrtsp_la-gstrtpdec.lo \
 	libgstrtsp_la-gstrtspext.lo
@@ -560,8 +560,8 @@ plugin_LTLIBRARIES = libgstrtsp.la
 libgstrtsp_la_SOURCES = gstrtsp.c gstrtspsrc.c \
 			gstrtpdec.c gstrtspext.c
 
-libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) \
+libgstrtsp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(GIO_CFLAGS)
+libgstrtsp_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(GST_BASE_LIBS) $(GIO_LIBS) \
 		       -lgstrtp-@GST_API_VERSION@ -lgstrtsp-@GST_API_VERSION@ \
 		       -lgstsdp-@GST_API_VERSION@ -lgstnet-@GST_API_VERSION@ $(GST_LIBS)
 
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 2be6543c5aea0348220148fa66635bd7154c8a32..a1b01c6bf2c34979b3e1201c2811d22dafa7507d 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -186,6 +186,7 @@ gst_rtsp_src_buffer_mode_get_type (void)
 #define DEFAULT_MULTICAST_IFACE  NULL
 #define DEFAULT_NTP_SYNC         FALSE
 #define DEFAULT_USE_PIPELINE_CLOCK      FALSE
+#define DEFAULT_TLS_VALIDATION_FLAGS G_TLS_CERTIFICATE_VALIDATE_ALL
 
 enum
 {
@@ -218,6 +219,7 @@ enum
   PROP_NTP_SYNC,
   PROP_USE_PIPELINE_CLOCK,
   PROP_SDES,
+  PROP_TLS_VALIDATION_FLAGS,
   PROP_LAST
 };
 
@@ -582,6 +584,20 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
           "The SDES items of this session",
           GST_TYPE_STRUCTURE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRTSPSrc::tls-validation-flags:
+   *
+   * TLS certificate validation flags used to validate server
+   * certificate.
+   *
+   * Since: 1.2.1
+   */
+  g_object_class_install_property (gobject_class, PROP_TLS_VALIDATION_FLAGS,
+      g_param_spec_flags ("tls-validation-flags", "TLS validation flags",
+          "TLS certificate validation flags used to validate the server certificate",
+          G_TYPE_TLS_CERTIFICATE_FLAGS, DEFAULT_TLS_VALIDATION_FLAGS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRTSPSrc::handle-request:
    * @rtspsrc: a #GstRTSPSrc
@@ -694,6 +710,7 @@ gst_rtspsrc_init (GstRTSPSrc * src)
   src->ntp_sync = DEFAULT_NTP_SYNC;
   src->use_pipeline_clock = DEFAULT_USE_PIPELINE_CLOCK;
   src->sdes = NULL;
+  src->tls_validation_flags = DEFAULT_TLS_VALIDATION_FLAGS;
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -948,6 +965,9 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_SDES:
       rtspsrc->sdes = g_value_dup_boxed (value);
       break;
+    case PROP_TLS_VALIDATION_FLAGS:
+      rtspsrc->tls_validation_flags = g_value_get_flags (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1073,6 +1093,9 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_SDES:
       g_value_set_boxed (value, rtspsrc->sdes);
       break;
+    case PROP_TLS_VALIDATION_FLAGS:
+      g_value_set_flags (value, rtspsrc->tls_validation_flags);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2875,7 +2898,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
 
     /* allocate pads for sending the channel data into the manager */
     pad0 = gst_pad_new_from_template (template, "internalsrc_0");
-    gst_pad_link (pad0, stream->channelpad[0]);
+    gst_pad_link_full (pad0, stream->channelpad[0], GST_PAD_LINK_CHECK_NOTHING);
     gst_object_unref (stream->channelpad[0]);
     stream->channelpad[0] = pad0;
     gst_pad_set_event_function (pad0, gst_rtspsrc_handle_internal_src_event);
@@ -2888,7 +2911,8 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
        * manager. */
       pad1 = gst_pad_new_from_template (template, "internalsrc_1");
       gst_pad_set_event_function (pad1, gst_rtspsrc_handle_internal_src_event);
-      gst_pad_link (pad1, stream->channelpad[1]);
+      gst_pad_link_full (pad1, stream->channelpad[1],
+          GST_PAD_LINK_CHECK_NOTHING);
       gst_object_unref (stream->channelpad[1]);
       stream->channelpad[1] = pad1;
       gst_pad_set_active (pad1, TRUE);
@@ -2913,7 +2937,7 @@ gst_rtspsrc_stream_configure_tcp (GstRTSPSrc * src, GstRTSPStream * stream,
 
     /* and link */
     if (pad) {
-      gst_pad_link (pad, stream->rtcppad);
+      gst_pad_link_full (pad, stream->rtcppad, GST_PAD_LINK_CHECK_NOTHING);
       gst_object_unref (pad);
     }
 
@@ -3102,7 +3126,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream,
       GST_DEBUG_OBJECT (src, "connecting UDP source 0 to manager");
       /* configure for UDP delivery, we need to connect the UDP pads to
        * the session plugin. */
-      gst_pad_link (*outpad, stream->channelpad[0]);
+      gst_pad_link_full (*outpad, stream->channelpad[0],
+          GST_PAD_LINK_CHECK_NOTHING);
       gst_object_unref (*outpad);
       *outpad = NULL;
       /* we connected to pad-added signal to get pads from the manager */
@@ -3128,7 +3153,8 @@ gst_rtspsrc_stream_configure_udp (GstRTSPSrc * src, GstRTSPStream * stream,
       GST_DEBUG_OBJECT (src, "connecting UDP source 1 to manager");
 
       pad = gst_element_get_static_pad (stream->udpsrc[1], "src");
-      gst_pad_link (pad, stream->channelpad[1]);
+      gst_pad_link_full (pad, stream->channelpad[1],
+          GST_PAD_LINK_CHECK_NOTHING);
       gst_object_unref (pad);
     } else {
       /* leave unlinked */
@@ -3217,7 +3243,8 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
     gst_object_ref (stream->fakesrc);
     gst_bin_add (GST_BIN_CAST (src), stream->fakesrc);
 
-    gst_element_link (stream->fakesrc, stream->udpsink[0]);
+    gst_element_link_pads_full (stream->fakesrc, "src", stream->udpsink[0],
+        "sink", GST_PAD_LINK_CHECK_NOTHING);
   }
   if (do_rtcp) {
     GST_DEBUG_OBJECT (src, "configure RTCP UDP sink for %s:%d", destination,
@@ -3269,7 +3296,7 @@ gst_rtspsrc_stream_configure_udp_sinks (GstRTSPSrc * src,
 
     /* and link */
     if (pad) {
-      gst_pad_link (pad, stream->rtcppad);
+      gst_pad_link_full (pad, stream->rtcppad, GST_PAD_LINK_CHECK_NOTHING);
       gst_object_unref (pad);
     }
   }
@@ -3628,6 +3655,12 @@ gst_rtsp_conninfo_connect (GstRTSPSrc * src, GstRTSPConnInfo * info,
 
     GST_DEBUG_OBJECT (src, "sanitized uri %s", info->url_str);
 
+    if (info->url->transports & GST_RTSP_LOWER_TRANS_TLS) {
+      if (!gst_rtsp_connection_set_tls_validation_flags (info->connection,
+              src->tls_validation_flags))
+        GST_WARNING_OBJECT (src, "Unable to set TLS validation flags");
+    }
+
     if (info->url->transports & GST_RTSP_LOWER_TRANS_HTTP)
       gst_rtsp_connection_set_tunneled (info->connection, TRUE);
 
@@ -6967,7 +7000,7 @@ gst_rtspsrc_thread (GstRTSPSrc * src)
   GST_OBJECT_LOCK (src);
   cmd = src->pending_cmd;
   if (cmd == CMD_RECONNECT || cmd == CMD_PLAY || cmd == CMD_PAUSE
-      || cmd == CMD_LOOP)
+      || cmd == CMD_LOOP || cmd == CMD_OPEN)
     src->pending_cmd = CMD_LOOP;
   else
     src->pending_cmd = CMD_WAIT;
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index e042a3dd3684ccbd6a026ffa7b044667675ca981..9260068525a83de15e2faaaf83761730ba6e42d5 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -52,6 +52,7 @@ G_BEGIN_DECLS
 #include <gst/rtsp/gstrtspmessage.h>
 #include <gst/rtsp/gstrtspurl.h>
 #include <gst/rtsp/gstrtsprange.h>
+#include <gio/gio.h>
 
 #include "gstrtspext.h"
 
@@ -226,6 +227,7 @@ struct _GstRTSPSrc {
   gboolean          ntp_sync;
   gboolean          use_pipeline_clock;
   GstStructure     *sdes;
+  GTlsCertificateFlags tls_validation_flags;
 
   /* state */
   GstRTSPState       state;
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index cb2674ba6de5886486cfe2ffa5cf472cde45d54a..51fb5258b6db8026adb6b51a393a7218be41c804 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -638,6 +638,12 @@ flushing:
     g_mutex_unlock (&sink->client_lock);
     g_clear_error (&err);
 
+    /* unmap all memory */
+    for (i = 0; i < n_mem; i++) {
+      gst_memory_unmap (map[i].memory, &map[i]);
+      gst_memory_unref (map[i].memory);
+    }
+
     return GST_FLOW_FLUSHING;
   }
 }
@@ -1046,7 +1052,7 @@ gst_multiudpsink_start (GstBaseSink * bsink)
         goto no_socket;
 
       bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV4);
-      bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+      bind_addr = g_inet_socket_address_new (bind_iaddr, sink->bind_port);
       g_socket_bind (sink->used_socket, bind_addr, TRUE, &err);
       g_object_unref (bind_addr);
       g_object_unref (bind_iaddr);
@@ -1061,7 +1067,7 @@ gst_multiudpsink_start (GstBaseSink * bsink)
         g_clear_error (&err);
       } else {
         bind_iaddr = g_inet_address_new_any (G_SOCKET_FAMILY_IPV6);
-        bind_addr = g_inet_socket_address_new (bind_iaddr, 0);
+        bind_addr = g_inet_socket_address_new (bind_iaddr, sink->bind_port);
         g_socket_bind (sink->used_socket_v6, bind_addr, TRUE, &err);
         g_object_unref (bind_addr);
         g_object_unref (bind_iaddr);
diff --git a/gst/videomixer/videoconvert.c b/gst/videomixer/videoconvert.c
index ae95d59bc1c9cf4058a25e04390af37fa04c823f..6331db76c354eb3eb3e16ae922f52d3c5a2b3842 100644
--- a/gst/videomixer/videoconvert.c
+++ b/gst/videomixer/videoconvert.c
@@ -386,12 +386,22 @@ videomixer_videoconvert_dither_halftone (VideoConvert * convert,
   }
 }
 
+static void
+alloc_tmplines (VideoConvert * convert, guint lines, gint width)
+{
+  gint i;
+
+  convert->n_tmplines = lines;
+  convert->tmplines = g_malloc (lines * sizeof (gpointer));
+  for (i = 0; i < lines; i++)
+    convert->tmplines[i] = g_malloc (sizeof (guint16) * (width + 8) * 4);
+}
+
 static gboolean
 videomixer_videoconvert_convert_compute_resample (VideoConvert * convert)
 {
   GstVideoInfo *in_info, *out_info;
   const GstVideoFormatInfo *sfinfo, *dfinfo;
-  gint lines, i;
   gint width;
 
   in_info = &convert->in_info;
@@ -402,9 +412,23 @@ videomixer_videoconvert_convert_compute_resample (VideoConvert * convert)
 
   width = convert->width;
 
-  convert->upsample = gst_video_chroma_resample_new (0,
-      in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
-      sfinfo->h_sub[2]);
+  if (sfinfo->w_sub[2] != dfinfo->w_sub[2] ||
+      sfinfo->h_sub[2] != dfinfo->h_sub[2] ||
+      in_info->chroma_site != out_info->chroma_site) {
+    convert->upsample = gst_video_chroma_resample_new (0,
+        in_info->chroma_site, 0, sfinfo->unpack_format, sfinfo->w_sub[2],
+        sfinfo->h_sub[2]);
+
+
+    convert->downsample = gst_video_chroma_resample_new (0,
+        out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
+        -dfinfo->h_sub[2]);
+
+  } else {
+    convert->upsample = NULL;
+    convert->downsample = NULL;
+  }
+
   if (convert->upsample) {
     gst_video_chroma_resample_get_info (convert->upsample,
         &convert->up_n_lines, &convert->up_offset);
@@ -412,12 +436,6 @@ videomixer_videoconvert_convert_compute_resample (VideoConvert * convert)
     convert->up_n_lines = 1;
     convert->up_offset = 0;
   }
-  GST_DEBUG ("upsample: %p, offset %d, n_lines %d", convert->upsample,
-      convert->up_offset, convert->up_n_lines);
-
-  convert->downsample = gst_video_chroma_resample_new (0,
-      out_info->chroma_site, 0, dfinfo->unpack_format, -dfinfo->w_sub[2],
-      -dfinfo->h_sub[2]);
   if (convert->downsample) {
     gst_video_chroma_resample_get_info (convert->downsample,
         &convert->down_n_lines, &convert->down_offset);
@@ -425,16 +443,13 @@ videomixer_videoconvert_convert_compute_resample (VideoConvert * convert)
     convert->down_n_lines = 1;
     convert->down_offset = 0;
   }
+  GST_DEBUG ("upsample: %p, site: %d, offset %d, n_lines %d", convert->upsample,
+      in_info->chroma_site, convert->up_offset, convert->up_n_lines);
+  GST_DEBUG ("downsample: %p, site: %d, offset %d, n_lines %d",
+      convert->downsample, out_info->chroma_site, convert->down_offset,
+      convert->down_n_lines);
 
-  GST_DEBUG ("downsample: %p, offset %d, n_lines %d", convert->downsample,
-      convert->down_offset, convert->down_n_lines);
-
-  lines = MAX (convert->down_n_lines, convert->up_n_lines);
-
-  convert->n_tmplines = lines;
-  convert->tmplines = g_malloc (lines * sizeof (gpointer));
-  for (i = 0; i < lines; i++)
-    convert->tmplines[i] = g_malloc (sizeof (guint16) * (width + 8) * 4);
+  alloc_tmplines (convert, convert->down_n_lines + convert->up_n_lines, width);
 
   return TRUE;
 }
@@ -506,7 +521,7 @@ videomixer_videoconvert_convert_generic (VideoConvert * convert,
   up_offset = convert->up_offset;
   down_n_lines = convert->down_n_lines;
   down_offset = convert->down_offset;
-  max_lines = MAX (down_n_lines, up_n_lines);
+  max_lines = convert->n_tmplines;
 
   in_lines = 0;
   out_lines = 0;
@@ -522,14 +537,14 @@ videomixer_videoconvert_convert_generic (VideoConvert * convert,
     idx = CLAMP (start_offset, 0, height);
     in_tmplines[in_lines] = convert->tmplines[idx % max_lines];
     out_tmplines[out_lines] = in_tmplines[in_lines];
-    GST_DEBUG ("start_offset %d, %d, idx %u, in %d, out %d", start_offset,
-        up_offset, idx, in_lines, out_lines);
+    GST_DEBUG ("start_offset %d/%d, %d, idx %u, in %d, out %d", start_offset,
+        stop_offset, up_offset, idx, in_lines, out_lines);
 
     up_line = up_offset + in_lines;
 
     /* extract the next line */
     if (up_line >= 0 && up_line < height) {
-      GST_DEBUG ("unpack line %d", up_line);
+      GST_DEBUG ("unpack line %d into %d", up_line, in_lines);
       UNPACK_FRAME (src, in_tmplines[in_lines], up_line, width);
     }
 
@@ -581,10 +596,11 @@ videomixer_videoconvert_convert_generic (VideoConvert * convert,
 
     start = 0;
     while (out_lines >= down_n_lines) {
-      GST_DEBUG ("doing downsample %u", start);
-      if (convert->downsample)
+      if (convert->downsample) {
+        GST_DEBUG ("doing downsample %u", start);
         gst_video_chroma_resample (convert->downsample,
             &out_tmplines[start], width);
+      }
 
       for (j = 0; j < down_n_lines; j += lines) {
         idx = down_offset + j;
@@ -599,6 +615,12 @@ videomixer_videoconvert_convert_generic (VideoConvert * convert,
       start += down_n_lines;
       out_lines -= down_n_lines;
     }
+    /* we didn't process these lines, move them up for the next round */
+    for (j = 0; j < out_lines; j++) {
+      GST_DEBUG ("move line %d->%d", j + start, j);
+      out_tmplines[j] = out_tmplines[j + start];
+    }
+
     up_offset += up_n_lines;
   }
   if ((pal =
@@ -782,17 +804,13 @@ static void
 convert_YUY2_I420 (VideoConvert * convert, GstVideoFrame * dest,
     const GstVideoFrame * src)
 {
-  int i, h;
+  int i;
   gint width = convert->width;
   gint height = convert->height;
   gboolean interlaced = GST_VIDEO_FRAME_IS_INTERLACED (src);
   gint l1, l2;
 
-  h = height;
-  if (width & 1)
-    h--;
-
-  for (i = 0; i < h; i += 2) {
+  for (i = 0; i < GST_ROUND_DOWN_2 (height); i += 2) {
     GET_LINE_OFFSETS (interlaced, i, l1, l2);
 
     videomixer_video_convert_orc_convert_YUY2_I420 (FRAME_GET_Y_LINE (dest, l1),
@@ -818,14 +836,7 @@ convert_YUY2_AYUV (VideoConvert * convert, GstVideoFrame * dest,
 
   videomixer_video_convert_orc_convert_YUY2_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
@@ -893,14 +904,7 @@ convert_UYVY_AYUV (VideoConvert * convert, GstVideoFrame * dest,
 
   videomixer_video_convert_orc_convert_UYVY_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), (width + 1) / 2, height);
 }
 
 static void
@@ -950,6 +954,7 @@ convert_AYUV_I420 (VideoConvert * convert, GstVideoFrame * dest,
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width/height */
   videomixer_video_convert_orc_convert_AYUV_I420 (FRAME_GET_Y_LINE (dest, 0),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_Y_LINE (dest, 1),
       2 * FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
@@ -966,6 +971,7 @@ convert_AYUV_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   videomixer_video_convert_orc_convert_AYUV_YUY2 (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
@@ -978,6 +984,7 @@ convert_AYUV_UYVY (VideoConvert * convert, GstVideoFrame * dest,
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   videomixer_video_convert_orc_convert_AYUV_UYVY (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_LINE (src, 0),
       FRAME_GET_STRIDE (src), width / 2, height);
@@ -990,18 +997,12 @@ convert_AYUV_Y42B (VideoConvert * convert, GstVideoFrame * dest,
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only works for even width */
   videomixer_video_convert_orc_convert_AYUV_Y42B (FRAME_GET_Y_LINE (dest, 0),
       FRAME_GET_Y_STRIDE (dest), FRAME_GET_U_LINE (dest, 0),
       FRAME_GET_U_STRIDE (dest), FRAME_GET_V_LINE (dest, 0),
       FRAME_GET_V_STRIDE (dest), FRAME_GET_LINE (src, 0),
-      FRAME_GET_STRIDE (src), (width + 1) / 2,
-      height & 1 ? height - 1 : height);
-
-  /* now handle last line */
-  if (height & 1) {
-    UNPACK_FRAME (src, convert->tmplines[0], height - 1, width);
-    PACK_FRAME (dest, convert->tmplines[0], height - 1, width);
-  }
+      FRAME_GET_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1101,11 +1102,12 @@ convert_Y42B_AYUV (VideoConvert * convert, GstVideoFrame * dest,
   gint width = convert->width;
   gint height = convert->height;
 
+  /* only for even width */
   videomixer_video_convert_orc_convert_Y42B_AYUV (FRAME_GET_LINE (dest, 0),
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1122,12 +1124,12 @@ convert_Y444_I420 (VideoConvert * convert, GstVideoFrame * dest,
   videomixer_video_convert_orc_planar_chroma_444_420 (FRAME_GET_U_LINE (dest,
           0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
       2 * FRAME_GET_U_STRIDE (src), FRAME_GET_U_LINE (src, 1),
-      2 * FRAME_GET_U_STRIDE (src), (width + 1) / 2, height / 2);
+      2 * FRAME_GET_U_STRIDE (src), width / 2, height / 2);
 
   videomixer_video_convert_orc_planar_chroma_444_420 (FRAME_GET_V_LINE (dest,
           0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
       2 * FRAME_GET_V_STRIDE (src), FRAME_GET_V_LINE (src, 1),
-      2 * FRAME_GET_V_STRIDE (src), (width + 1) / 2, height / 2);
+      2 * FRAME_GET_V_STRIDE (src), width / 2, height / 2);
 
   /* now handle last line */
   if (height & 1) {
@@ -1149,11 +1151,11 @@ convert_Y444_Y42B (VideoConvert * convert, GstVideoFrame * dest,
 
   videomixer_video_convert_orc_planar_chroma_444_422 (FRAME_GET_U_LINE (dest,
           0), FRAME_GET_U_STRIDE (dest), FRAME_GET_U_LINE (src, 0),
-      FRAME_GET_U_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_U_STRIDE (src), width / 2, height);
 
   videomixer_video_convert_orc_planar_chroma_444_422 (FRAME_GET_V_LINE (dest,
           0), FRAME_GET_V_STRIDE (dest), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1167,7 +1169,7 @@ convert_Y444_YUY2 (VideoConvert * convert, GstVideoFrame * dest,
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1181,7 +1183,7 @@ convert_Y444_UYVY (VideoConvert * convert, GstVideoFrame * dest,
       FRAME_GET_STRIDE (dest), FRAME_GET_Y_LINE (src, 0),
       FRAME_GET_Y_STRIDE (src), FRAME_GET_U_LINE (src, 0),
       FRAME_GET_U_STRIDE (src), FRAME_GET_V_LINE (src, 0),
-      FRAME_GET_V_STRIDE (src), (width + 1) / 2, height);
+      FRAME_GET_V_STRIDE (src), width / 2, height);
 }
 
 static void
@@ -1293,97 +1295,125 @@ typedef struct
   GstVideoColorMatrix out_matrix;
   gboolean keeps_color_matrix;
   gboolean keeps_interlaced;
+  gint width_align, height_align;
   void (*convert) (VideoConvert * convert, GstVideoFrame * dest,
       const GstVideoFrame * src);
 } VideoTransform;
 
 static const VideoTransform transforms[] = {
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_YUY2},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_UYVY},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_I420_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_AYUV},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_I420_Y42B},
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_I420_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_I420_Y444},
+
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_YUY2},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_UYVY},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_I420_AYUV},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_I420_Y42B},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_I420_Y444},
 
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_I420},
+  {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_I420},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2},   /* alias */
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_YUY2},     /* alias */
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_AYUV},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_Y42B},
   {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_YUY2_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_YUY2_Y444},
 
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_I420},
+  {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_I420},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_YUY2},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_AYUV},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_Y42B},
   {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_UYVY_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_UYVY_Y444},
 
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_AYUV_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 1, convert_AYUV_I420},
+  {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 1, convert_AYUV_I420},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_AYUV_YUY2},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_AYUV_UYVY},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_AYUV_Y42B},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_AYUV_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_AYUV_Y444},
 
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y42B_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_Y42B_I420},
+  {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 0, 0, convert_Y42B_I420},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_Y42B_YUY2},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_Y42B_UYVY},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_Y42B_AYUV},
   {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y444,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y42B_Y444},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_Y42B_Y444},
 
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_I420,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, convert_Y444_I420},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 0, convert_Y444_I420},
+  {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YV12,
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, FALSE, 1, 0, convert_Y444_I420},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_YUY2,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_YUY2},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_Y444_YUY2},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_UYVY,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_UYVY},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_Y444_UYVY},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_AYUV,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_AYUV},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 0, 0, convert_Y444_AYUV},
   {GST_VIDEO_FORMAT_Y444, GST_VIDEO_COLOR_MATRIX_UNKNOWN, GST_VIDEO_FORMAT_Y42B,
-      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, convert_Y444_Y42B},
+      GST_VIDEO_COLOR_MATRIX_UNKNOWN, TRUE, TRUE, 1, 0, convert_Y444_Y42B},
 
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ARGB,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ARGB},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_BGRA},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xRGB,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ARGB},      /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ARGB},        /* alias */
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_BGRA},      /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_BGRA},        /* alias */
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_ABGR,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ABGR},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_RGBA},
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_xBGR,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_ABGR},      /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_ABGR},        /* alias */
   {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_RGBx,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, convert_AYUV_RGBA},      /* alias */
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, TRUE, 0, 0, convert_AYUV_RGBA},        /* alias */
 
   {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
-      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, convert_I420_BGRA},
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_I420, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRA,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
+  {GST_VIDEO_FORMAT_YV12, GST_VIDEO_COLOR_MATRIX_BT601, GST_VIDEO_FORMAT_BGRx,
+      GST_VIDEO_COLOR_MATRIX_RGB, FALSE, FALSE, 0, 0, convert_I420_BGRA},
 #endif
 };
 
@@ -1394,10 +1424,14 @@ videomixer_videoconvert_convert_lookup_fastpath (VideoConvert * convert)
   GstVideoFormat in_format, out_format;
   GstVideoColorMatrix in_matrix, out_matrix;
   gboolean interlaced;
+  gint width, height;
 
   in_format = GST_VIDEO_INFO_FORMAT (&convert->in_info);
   out_format = GST_VIDEO_INFO_FORMAT (&convert->out_info);
 
+  width = GST_VIDEO_INFO_WIDTH (&convert->in_info);
+  height = GST_VIDEO_INFO_HEIGHT (&convert->in_info);
+
   in_matrix = convert->in_info.colorimetry.matrix;
   out_matrix = convert->out_info.colorimetry.matrix;
 
@@ -1410,9 +1444,12 @@ videomixer_videoconvert_convert_lookup_fastpath (VideoConvert * convert)
         (transforms[i].keeps_color_matrix ||
             (transforms[i].in_matrix == in_matrix &&
                 transforms[i].out_matrix == out_matrix)) &&
-        (transforms[i].keeps_interlaced || !interlaced)) {
+        (transforms[i].keeps_interlaced || !interlaced) &&
+        (transforms[i].width_align & width) == 0 &&
+        (transforms[i].height_align & height) == 0) {
       GST_DEBUG ("using fastpath");
       convert->convert = transforms[i].convert;
+      alloc_tmplines (convert, 1, GST_VIDEO_INFO_WIDTH (&convert->in_info));
       return TRUE;
     }
   }
diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c
index c12f036813c82c6f02c5de18e2ec83181f462362..fbcab60254e0fa2c1a6a9552e0733455a222d6c6 100644
--- a/gst/videomixer/videomixer2.c
+++ b/gst/videomixer/videomixer2.c
@@ -1192,6 +1192,9 @@ gst_videomixer2_collected (GstCollectPads * pads, GstVideoMixer2 * mix)
     mix->send_stream_start = FALSE;
   }
 
+  if (gst_pad_check_reconfigure (mix->srcpad))
+    gst_videomixer2_update_src_caps (mix);
+
   if (mix->send_caps) {
     if (!gst_pad_push_event (mix->srcpad,
             gst_event_new_caps (mix->current_caps))) {
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c
index 6d64f1e44289267707ea14eca6a482ba107ca689..fa82cf969e75424837e2504b98596f1c87a30864 100644
--- a/gst/wavenc/gstwavenc.c
+++ b/gst/wavenc/gstwavenc.c
@@ -131,16 +131,10 @@ typedef struct
     "; "                                 \
     "audio/x-alaw, "                     \
     "rate = (int) [ 8000, 192000 ], "    \
-    "channels = (int) [ 1, 2 ], "        \
-    "width = (int) 8, "                  \
-    "depth = (int) 8, "                  \
-    "signed = (boolean) false; "         \
+    "channels = (int) [ 1, 2 ]; "        \
     "audio/x-mulaw, "                    \
     "rate = (int) [ 8000, 192000 ], "    \
-    "channels = (int) [ 1, 2 ], "        \
-    "width = (int) 8, "                  \
-    "depth = (int) 8, "                  \
-    "signed = (boolean) false"
+    "channels = (int) [ 1, 2 ]"
 
 
 static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
@@ -860,8 +854,7 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
     /* starting a file, means we have to finish it properly */
     wavenc->finished_properly = FALSE;
 
-    /* use bogus size initially, we'll write the real
-     * header when we get EOS and know the exact length */
+    /* push initial bogus header, it will be updated on EOS */
     flow = gst_wavenc_push_header (wavenc);
     if (flow != GST_FLOW_OK) {
       GST_WARNING_OBJECT (wavenc, "error pushing header: %s",
@@ -869,6 +862,7 @@ gst_wavenc_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
       return flow;
     }
     GST_DEBUG_OBJECT (wavenc, "wrote dummy header");
+    wavenc->audio_length = 0;
     wavenc->sent_header = TRUE;
   }
 
@@ -900,7 +894,9 @@ gst_wavenc_change_state (GstElement * element, GstStateChange transition)
       wavenc->channels = 0;
       wavenc->width = 0;
       wavenc->rate = 0;
-      wavenc->audio_length = 0;
+      /* use bogus size initially, we'll write the real
+       * header when we get EOS and know the exact length */
+      wavenc->audio_length = 0x7FFF0000;
       wavenc->meta_length = 0;
       wavenc->sent_header = FALSE;
       /* its true because we haven't writen anything */
diff --git a/install-sh b/install-sh
index a9244eb0786534553fdd9eb0050bb4b172bad0a3..377bb8687ffe16bfc79ea25c8667cabf72aaf2c2 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-01-19.21; # UTC
+scriptversion=2011-11-20.07; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -35,7 +35,7 @@ scriptversion=2011-01-19.21; # UTC
 # FSF changes to this file are in the public domain.
 #
 # Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
+# 'make' implicit rules from creating a file called install from it
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
@@ -156,7 +156,7 @@ while test $# -ne 0; do
     -s) stripcmd=$stripprog;;
 
     -t) dst_arg=$2
-	# Protect names problematic for `test' and other utilities.
+	# Protect names problematic for 'test' and other utilities.
 	case $dst_arg in
 	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
 	esac
@@ -190,7 +190,7 @@ if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
     fi
     shift # arg
     dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
+    # Protect names problematic for 'test' and other utilities.
     case $dst_arg in
       -* | [=\(\)!]) dst_arg=./$dst_arg;;
     esac
@@ -202,7 +202,7 @@ if test $# -eq 0; then
     echo "$0: no input file specified." >&2
     exit 1
   fi
-  # It's OK to call `install-sh -d' without argument.
+  # It's OK to call 'install-sh -d' without argument.
   # This can happen when creating conditional directories.
   exit 0
 fi
@@ -240,7 +240,7 @@ fi
 
 for src
 do
-  # Protect names problematic for `test' and other utilities.
+  # Protect names problematic for 'test' and other utilities.
   case $src in
     -* | [=\(\)!]) src=./$src;;
   esac
@@ -354,7 +354,7 @@ do
 	      if test -z "$dir_arg" || {
 		   # Check for POSIX incompatibilities with -m.
 		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
+		   # other-writable bit of parent directory when it shouldn't.
 		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
 		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
 		   case $ls_ld_tmpdir in
diff --git a/missing b/missing
index 86a8fc31e3c2aa268688a5be47d161c586772e78..cdea514931f558be2bcc47ef2d52e14ab395520b 100755
--- a/missing
+++ b/missing
@@ -1,11 +1,10 @@
 #! /bin/sh
-# Common stub for a few missing GNU programs while installing.
+# Common wrapper for a few potentially missing GNU programs.
 
-scriptversion=2012-01-06.13; # UTC
+scriptversion=2012-06-26.16; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
-# 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
-# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -26,68 +25,40 @@ scriptversion=2012-01-06.13; # UTC
 # the same distribution terms that you use for the rest of that program.
 
 if test $# -eq 0; then
-  echo 1>&2 "Try \`$0 --help' for more information"
+  echo 1>&2 "Try '$0 --help' for more information"
   exit 1
 fi
 
-run=:
-sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
-sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
-
-# In the cases where this matters, `missing' is being run in the
-# srcdir already.
-if test -f configure.ac; then
-  configure_ac=configure.ac
-else
-  configure_ac=configure.in
-fi
+case $1 in
 
-msg="missing on your system"
+  --is-lightweight)
+    # Used by our autoconf macros to check whether the available missing
+    # script is modern enough.
+    exit 0
+    ;;
 
-case $1 in
---run)
-  # Try to run requested program, and just exit if it succeeds.
-  run=
-  shift
-  "$@" && exit 0
-  # Exit code 63 means version mismatch.  This often happens
-  # when the user try to use an ancient version of a tool on
-  # a file that requires a minimum version.  In this case we
-  # we should proceed has if the program had been absent, or
-  # if --run hadn't been passed.
-  if test $? = 63; then
-    run=:
-    msg="probably too old"
-  fi
-  ;;
+  --run)
+    # Back-compat with the calling convention used by older automake.
+    shift
+    ;;
 
   -h|--h|--he|--hel|--help)
     echo "\
 $0 [OPTION]... PROGRAM [ARGUMENT]...
 
-Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
-error status if there is no known handling for PROGRAM.
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
 
 Options:
   -h, --help      display this help and exit
   -v, --version   output version information and exit
-  --run           try to run the given command, and emulate it if it fails
 
 Supported PROGRAM values:
-  aclocal      touch file \`aclocal.m4'
-  autoconf     touch file \`configure'
-  autoheader   touch file \`config.h.in'
-  autom4te     touch the output file, or create a stub one
-  automake     touch all \`Makefile.in' files
-  bison        create \`y.tab.[ch]', if possible, from existing .[ch]
-  flex         create \`lex.yy.c', if possible, from existing .c
-  help2man     touch the output file
-  lex          create \`lex.yy.c', if possible, from existing .c
-  makeinfo     touch the output file
-  yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
+  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
+  bison     yacc      flex         lex       help2man
 
-Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
-\`g' are ignored when checking the name.
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
 
 Send bug reports to <bug-automake@gnu.org>."
     exit $?
@@ -99,228 +70,141 @@ Send bug reports to <bug-automake@gnu.org>."
     ;;
 
   -*)
-    echo 1>&2 "$0: Unknown \`$1' option"
-    echo 1>&2 "Try \`$0 --help' for more information"
+    echo 1>&2 "$0: unknown '$1' option"
+    echo 1>&2 "Try '$0 --help' for more information"
     exit 1
     ;;
 
 esac
 
-# normalize program name to check for.
-program=`echo "$1" | sed '
-  s/^gnu-//; t
-  s/^gnu//; t
-  s/^g//; t'`
-
-# Now exit if we have it, but it failed.  Also exit now if we
-# don't have it and --version was passed (most likely to detect
-# the program).  This is about non-GNU programs, so use $1 not
-# $program.
-case $1 in
-  lex*|yacc*)
-    # Not GNU programs, they don't have --version.
-    ;;
-
-  *)
-    if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
-       # We have it, but it failed.
-       exit 1
-    elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
-       # Could not run --version or --help.  This is probably someone
-       # running `$TOOL --version' or `$TOOL --help' to check whether
-       # $TOOL exists and not knowing $TOOL uses missing.
-       exit 1
-    fi
-    ;;
-esac
-
-# If it does not exist, or fails to run (possibly an outdated version),
-# try to emulate it.
-case $program in
-  aclocal*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acinclude.m4' or \`${configure_ac}'.  You might want
-         to install the \`Automake' and \`Perl' packages.  Grab them from
-         any GNU archive site."
-    touch aclocal.m4
-    ;;
-
-  autoconf*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`${configure_ac}'.  You might want to install the
-         \`Autoconf' and \`GNU m4' packages.  Grab them from any GNU
-         archive site."
-    touch configure
-    ;;
-
-  autoheader*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`acconfig.h' or \`${configure_ac}'.  You might want
-         to install the \`Autoconf' and \`GNU m4' packages.  Grab them
-         from any GNU archive site."
-    files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
-    test -z "$files" && files="config.h"
-    touch_files=
-    for f in $files; do
-      case $f in
-      *:*) touch_files="$touch_files "`echo "$f" |
-				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
-      *) touch_files="$touch_files $f.in";;
-      esac
-    done
-    touch $touch_files
-    ;;
-
-  automake*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
-         You might want to install the \`Automake' and \`Perl' packages.
-         Grab them from any GNU archive site."
-    find . -type f -name Makefile.am -print |
-	   sed 's/\.am$/.in/' |
-	   while read f; do touch "$f"; done
-    ;;
-
-  autom4te*)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, but is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.
-         You can get \`$1' as part of \`Autoconf' from any GNU
-         archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo "#! /bin/sh"
-	echo "# Created by GNU Automake missing as a replacement of"
-	echo "#  $ $@"
-	echo "exit 0"
-	chmod +x $file
-	exit 1
-    fi
-    ;;
-
-  bison*|yacc*)
-    echo 1>&2 "\
-WARNING: \`$1' $msg.  You should only need it if
-         you modified a \`.y' file.  You may need the \`Bison' package
-         in order for those modifications to take effect.  You can get
-         \`Bison' from any GNU archive site."
-    rm -f y.tab.c y.tab.h
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.y)
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.c
-	    fi
-	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" y.tab.h
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f y.tab.h; then
-	echo >y.tab.h
-    fi
-    if test ! -f y.tab.c; then
-	echo 'main() { return 0; }' >y.tab.c
-    fi
-    ;;
-
-  lex*|flex*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.l' file.  You may need the \`Flex' package
-         in order for those modifications to take effect.  You can get
-         \`Flex' from any GNU archive site."
-    rm -f lex.yy.c
-    if test $# -ne 1; then
-        eval LASTARG=\${$#}
-	case $LASTARG in
-	*.l)
-	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if test -f "$SRCFILE"; then
-	         cp "$SRCFILE" lex.yy.c
-	    fi
-	  ;;
-	esac
-    fi
-    if test ! -f lex.yy.c; then
-	echo 'main() { return 0; }' >lex.yy.c
-    fi
-    ;;
-
-  help2man*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-	 you modified a dependency of a manual page.  You may need the
-	 \`Help2man' package in order for those modifications to take
-	 effect.  You can get \`Help2man' from any GNU archive site."
-
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -f "$file"; then
-	touch $file
-    else
-	test -z "$file" || exec >$file
-	echo ".ab help2man is required to generate this page"
-	exit $?
-    fi
-    ;;
-
-  makeinfo*)
-    echo 1>&2 "\
-WARNING: \`$1' is $msg.  You should only need it if
-         you modified a \`.texi' or \`.texinfo' file, or any other file
-         indirectly affecting the aspect of the manual.  The spurious
-         call might also be the consequence of using a buggy \`make' (AIX,
-         DU, IRIX).  You might want to install the \`Texinfo' package or
-         the \`GNU make' package.  Grab either from any GNU archive site."
-    # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n "$sed_output"`
-    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
-    if test -z "$file"; then
-      # ... or it is the one specified with @setfilename ...
-      infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '
-	/^@setfilename/{
-	  s/.* \([^ ]*\) *$/\1/
-	  p
-	  q
-	}' $infile`
-      # ... or it is derived from the source name (dir/f.texi becomes f.info)
-      test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
-    fi
-    # If the file does not exist, the user really needs makeinfo;
-    # let's fail without touching anything.
-    test -f $file || exit 1
-    touch $file
-    ;;
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch.  This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+  msg="probably too old"
+elif test $st -eq 127; then
+  # Program was missing.
+  msg="missing on your system"
+else
+  # Program was found and executed, but failed.  Give up.
+  exit $st
+fi
 
-  *)
-    echo 1>&2 "\
-WARNING: \`$1' is needed, and is $msg.
-         You might have modified some files without having the
-         proper tools for further handling them.  Check the \`README' file,
-         it often tells you about the needed prerequisites for installing
-         this package.  You may also peek at any GNU archive site, in case
-         some other package would contain this missing \`$1' program."
-    exit 1
+perl_URL=http://www.perl.org/
+flex_URL=http://flex.sourceforge.net/
+gnu_software_URL=http://www.gnu.org/software
+
+program_details ()
+{
+  case $1 in
+    aclocal|automake)
+      echo "The '$1' program is part of the GNU Automake package:"
+      echo "<$gnu_software_URL/automake>"
+      echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/autoconf>"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+    autoconf|autom4te|autoheader)
+      echo "The '$1' program is part of the GNU Autoconf package:"
+      echo "<$gnu_software_URL/autoconf/>"
+      echo "It also requires GNU m4 and Perl in order to run:"
+      echo "<$gnu_software_URL/m4/>"
+      echo "<$perl_URL>"
+      ;;
+  esac
+}
+
+give_advice ()
+{
+  # Normalize program name to check for.
+  normalized_program=`echo "$1" | sed '
+    s/^gnu-//; t
+    s/^gnu//; t
+    s/^g//; t'`
+
+  printf '%s\n' "'$1' is $msg."
+
+  configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  case $normalized_program in
+    autoconf*)
+      echo "You should only need it if you modified 'configure.ac',"
+      echo "or m4 files included by it."
+      program_details 'autoconf'
+      ;;
+    autoheader*)
+      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "$configure_deps."
+      program_details 'autoheader'
+      ;;
+    automake*)
+      echo "You should only need it if you modified 'Makefile.am' or"
+      echo "$configure_deps."
+      program_details 'automake'
+      ;;
+    aclocal*)
+      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "$configure_deps."
+      program_details 'aclocal'
+      ;;
+   autom4te*)
+      echo "You might have modified some maintainer files that require"
+      echo "the 'automa4te' program to be rebuilt."
+      program_details 'autom4te'
+      ;;
+    bison*|yacc*)
+      echo "You should only need it if you modified a '.y' file."
+      echo "You may want to install the GNU Bison package:"
+      echo "<$gnu_software_URL/bison/>"
+      ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
+    help2man*)
+      echo "You should only need it if you modified a dependency" \
+           "of a man page."
+      echo "You may want to install the GNU Help2man package:"
+      echo "<$gnu_software_URL/help2man/>"
     ;;
-esac
-
-exit 0
+    makeinfo*)
+      echo "You should only need it if you modified a '.texi' file, or"
+      echo "any other file indirectly affecting the aspect of the manual."
+      echo "You might want to install the Texinfo package:"
+      echo "<$gnu_software_URL/texinfo/>"
+      echo "The spurious makeinfo call might also be the consequence of"
+      echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+      echo "want to install GNU make:"
+      echo "<$gnu_software_URL/make/>"
+      ;;
+    *)
+      echo "You might have modified some files without having the proper"
+      echo "tools for further handling them.  Check the 'README' file, it"
+      echo "often tells you about the needed prerequisites for installing"
+      echo "this package.  You may also peek at any GNU archive site, in"
+      echo "case some other package contains this missing '$1' program."
+      ;;
+  esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+                       -e '2,$s/^/         /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
diff --git a/po/af.gmo b/po/af.gmo
index 9adac3ec81167e744f5708fa029912cf7a903547..82441caf348f60262f0346f67667b00f4741c45c 100644
Binary files a/po/af.gmo and b/po/af.gmo differ
diff --git a/po/af.po b/po/af.po
index 95b182e29d7f625469e0531e3fed4c62b1417a05..233669d04bd595ef4f93f14893b1b95df73c5b81 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
diff --git a/po/az.gmo b/po/az.gmo
index d472c3f50b45f2dd0676b39bfa42ea2f454c32f7..90e49d03c3b807879f0adbae7b101f5a91b55158 100644
Binary files a/po/az.gmo and b/po/az.gmo differ
diff --git a/po/az.po b/po/az.po
index e02c89e96e812fadd8b37c1851babed3ab1f2aa6..0ee767ffa64e73535624464e1cb3b1358c0085e8 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
diff --git a/po/bg.gmo b/po/bg.gmo
index d4675316e75011632585be1d5e0fc57c8ee37643..c33e941c7cabb90c456c143839ce2f159b8302d0 100644
Binary files a/po/bg.gmo and b/po/bg.gmo differ
diff --git a/po/bg.po b/po/bg.po
index be29dfe753694bf6739f094cc1e7cc34f9e237bc..4c7d36189b66825f5ad0b44c2ca2a50e40dcdc27 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2011-04-26 22:35+0300\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
diff --git a/po/ca.gmo b/po/ca.gmo
index 4aca6195f02c7f534a85af848b6600ef9e96660f..fe1319777095ea4add44d8da61285bf4bcf8772c 100644
Binary files a/po/ca.gmo and b/po/ca.gmo differ
diff --git a/po/ca.po b/po/ca.po
index cdc334299571ef5d95c8017bcdfb56e088d5a58a..0d8b339ea3bbae76c23da4ec0551b24421f9befb 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
diff --git a/po/cs.gmo b/po/cs.gmo
index 00059d97c6162b0f40123a85b45b4826fcffb4b9..a477be98c6fb401589f960e0a70b9aa5de01d201 100644
Binary files a/po/cs.gmo and b/po/cs.gmo differ
diff --git a/po/cs.po b/po/cs.po
index c00886464b7eeb88ea2b955a24121a4bca30171f..bf53e31dc95fffcaa95c0f59c874796db9390f65 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-09-18 19:18+0200\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
diff --git a/po/da.gmo b/po/da.gmo
index 96c7fec96eb9fe679fdfbc257b7b2571d89adc5a..2d1c87ee84fb545f9516a2c56de66738bc80545b 100644
Binary files a/po/da.gmo and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
index ae498a2f8fb9a9bea239f1635b22960ebeda9cd9..691cc66e9524f793a57a00db98354ad1fb4a1ab3 100644
--- a/po/da.po
+++ b/po/da.po
@@ -12,7 +12,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2012-12-13 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 ee524b3d9a83851d6253210092dad8b9bac2821f..71a2f17c0dd66f3ddf6ef9b2013acbd491aa4ccf 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index 417ab66ff1d6674aa76013fc41da4ec77e9aa3cd..794abf3bf4a41881767a6e4007b873ddd694a62a 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,4 +1,4 @@
-# German translations for gst-plugins-good 1.0.3
+# German translations for gst-plugins-good 1.1.4
 # Copyright (C) 2007 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-good package.
 #
@@ -7,27 +7,26 @@
 # Line-out = Line-Ausgang
 # Pipeline = Weiterleitung
 # Stream = Strom
-# mixer  =
-# Christian Kirbach <christian.kirbach@gmail.com>, 2010, 2011, 2012.
+# mixer  = Mischer
+# Christian Kirbach <christian.kirbach@gmail.com>, 2010, 2011, 2012, 2013.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.0.3\n"
+"Project-Id-Version: gst-plugins-good 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
-"PO-Revision-Date: 2012-11-28 19:56+0100\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
+"PO-Revision-Date: 2013-09-21 12:39+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
 "Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: German\n"
-"X-Poedit-Country: GERMANY\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: Poedit 1.5.4\n"
 
 msgid "Jack server not found"
-msgstr ""
+msgstr "Jack-Server nicht gefunden"
 
 msgid "Failed to decode JPEG image"
 msgstr "Dekodieren des JPEG-Bildes schlug fehl"
@@ -78,6 +77,8 @@ msgstr "Diese Datei ist ungültig und kann nicht wiedergegeben werden."
 
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
+"Der Strom kann nicht wiedergegeben werden, weil er mit PlayReady DRM "
+"verschlüsselt ist."
 
 msgid "This file is corrupt and cannot be played."
 msgstr "Diese Datei ist beschädigt und kann nicht wiedergegeben werden."
@@ -183,13 +184,11 @@ msgstr "AUX-Eingang 1"
 msgid "AUX 2 In"
 msgstr "AUX-Eingang 2"
 
-#, fuzzy
 msgid "Codec Loopback"
-msgstr "Schleife"
+msgstr "Codec-Rückschleife"
 
-#, fuzzy
 msgid "SunVTS Loopback"
-msgstr "Schleife"
+msgstr "SunVTS-Rückschleife"
 
 msgid "Volume"
 msgstr "Lautstärke"
diff --git a/po/el.gmo b/po/el.gmo
index 062353909933b0c242f12a53e2b8df18824ae529..ed77b0255953e8ee3f8245e133db24ff2903cf78 100644
Binary files a/po/el.gmo and b/po/el.gmo differ
diff --git a/po/el.po b/po/el.po
index 07f81eec933bb2897dcc7841a8e37c383e53e490..1d79f2b2a2095e73fcdecd80c7b3ffe82d0244d5 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 b339ba6b6d4e959d63c1cccf2a1ceaa30c97877a..5f075cb65bf6dfaf4f11e04b78d1df9cb12c3356 100644
Binary files a/po/en_GB.gmo and b/po/en_GB.gmo differ
diff --git a/po/en_GB.po b/po/en_GB.po
index fe25abdcd717ecb8abcefa95909e258f2c50946f..c90fce647f4be969fbb80399f9c8ce2efbf9b154 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
diff --git a/po/eo.gmo b/po/eo.gmo
index febd872d7b3ef1724c424ab9abab26f90cb31d96..9383dee5ee7521eafd20b1b50cfaf167db725359 100644
Binary files a/po/eo.gmo and b/po/eo.gmo differ
diff --git a/po/eo.po b/po/eo.po
index 7984875b75c0fd7485a7da70acb29cb08f5e4bf8..538e5f501a777e43c253044957b142716b7d5925 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 bf3653778573f83818dd0a89ad32fb83fa6eb18d..c59456bf412e822e82df6b2b7a278781a8e93d9f 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 48254a0fd2dd5c141febc9327619430aee975fd1..264adbe3d5038b3db518fb78a65cccfa0e18414d 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 6b51ab616eafc24d79db214f349ba69cd9c74857..e0726a23d4cb8250b9c4f2bffa6c2eb6ab75b908 100644
Binary files a/po/eu.gmo and b/po/eu.gmo differ
diff --git a/po/eu.po b/po/eu.po
index bbc497d719cf5ebac3ef8aa9bcb7611763f7aa34..578cc3b07503cfd7185941c894bd8aafa69683f7 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.18.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 53cb8c2d923d058211d5ebfefbfaf79be37c3759..bfe016843d096edea31d6bd0f6f56a64f1b7c5a2 100644
Binary files a/po/fi.gmo and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
index 4c978ad1aba6963533b902bda751bde88787ad67..69dacf3e4cc4de47b02dad5cffeb351fd6733b0c 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 e73720d9e2c7f442425f23907d07c20805452f3d..2a27c3c2b2b4be573cd83a5a6074be9a1ce8e06b 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index e395eb565effc3b05a6ed8235b0ba1dbe4b5b2fd..4a636df8e17b9bad8bfc9ffb115f17d38eb48ad2 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2011-04-28 09:22+0200\n"
 "Last-Translator: Claude Paroz <claude@2xlibre.net>\n"
 "Language-Team: French <traduc@traduc.org>\n"
diff --git a/po/gl.gmo b/po/gl.gmo
index b2398da2afac6fd425e23a22ab4911a0231c222a..1dbeb42331cba121703984e6c2f083886744fd90 100644
Binary files a/po/gl.gmo and b/po/gl.gmo differ
diff --git a/po/gl.po b/po/gl.po
index d0afa3199620e04353b221094a8eb9d93f948ca0..8d3139fbd3cd179337344f3aa963fa1b83091970 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 e31c027380b850e63b8b38949b88d101b04c1e72..67c97860faf7f46c233b44f2d7d6bbf93a4834a0 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.2.0\n"
+"Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,10 +20,10 @@ msgstr ""
 msgid "Jack server not found"
 msgstr ""
 
-#: ext/jpeg/gstjpegdec.c:924 ext/jpeg/gstjpegdec.c:1172
-#: ext/jpeg/gstjpegdec.c:1184 ext/jpeg/gstjpegdec.c:1213
-#: ext/jpeg/gstjpegdec.c:1222 ext/jpeg/gstjpegdec.c:1231
-#: ext/jpeg/gstjpegdec.c:1239
+#: ext/jpeg/gstjpegdec.c:921 ext/jpeg/gstjpegdec.c:1169
+#: ext/jpeg/gstjpegdec.c:1181 ext/jpeg/gstjpegdec.c:1210
+#: ext/jpeg/gstjpegdec.c:1219 ext/jpeg/gstjpegdec.c:1228
+#: ext/jpeg/gstjpegdec.c:1236
 msgid "Failed to decode JPEG image"
 msgstr ""
 
@@ -37,32 +37,32 @@ msgstr ""
 msgid "Could not connect to server"
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:658
+#: ext/soup/gstsouphttpsrc.c:659
 msgid "No URL set."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:886
+#: ext/soup/gstsouphttpsrc.c:887
 msgid "Server does not support seeking."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1134
+#: ext/soup/gstsouphttpsrc.c:1142
 msgid "Could not resolve server name."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1140
+#: ext/soup/gstsouphttpsrc.c:1148
 msgid "Could not establish connection to server."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1145
+#: ext/soup/gstsouphttpsrc.c:1153
 msgid "Secure connection setup failed."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1150
+#: ext/soup/gstsouphttpsrc.c:1158
 msgid ""
 "A network error occured, or the server closed the connection unexpectedly."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1156
+#: ext/soup/gstsouphttpsrc.c:1164
 msgid "Server sent bad data."
 msgstr ""
 
@@ -74,51 +74,51 @@ msgstr ""
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:565 gst/isomp4/qtdemux.c:569
+#: gst/isomp4/qtdemux.c:567 gst/isomp4/qtdemux.c:571
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:615 gst/isomp4/qtdemux.c:4596
-#: gst/isomp4/qtdemux.c:4662 gst/isomp4/qtdemux.c:4847
+#: gst/isomp4/qtdemux.c:617 gst/isomp4/qtdemux.c:4603
+#: gst/isomp4/qtdemux.c:4670 gst/isomp4/qtdemux.c:4872
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2276
+#: gst/isomp4/qtdemux.c:2282
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2841 gst/isomp4/qtdemux.c:2917
-#: gst/isomp4/qtdemux.c:2960 gst/isomp4/qtdemux.c:5513
-#: gst/isomp4/qtdemux.c:5520 gst/isomp4/qtdemux.c:6162
-#: gst/isomp4/qtdemux.c:6598 gst/isomp4/qtdemux.c:6605
-#: gst/isomp4/qtdemux.c:8409
+#: gst/isomp4/qtdemux.c:2847 gst/isomp4/qtdemux.c:2923
+#: gst/isomp4/qtdemux.c:2966 gst/isomp4/qtdemux.c:5548
+#: gst/isomp4/qtdemux.c:5555 gst/isomp4/qtdemux.c:6197
+#: gst/isomp4/qtdemux.c:6633 gst/isomp4/qtdemux.c:6640
+#: gst/isomp4/qtdemux.c:8444
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3051
+#: gst/isomp4/qtdemux.c:3057
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3119
+#: gst/isomp4/qtdemux.c:3125
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:7261
+#: gst/isomp4/qtdemux.c:7296
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:8446
+#: gst/isomp4/qtdemux.c:8481
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:5755
+#: gst/rtsp/gstrtspsrc.c:5788
 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:5760
+#: gst/rtsp/gstrtspsrc.c:5793
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -252,7 +252,7 @@ msgstr ""
 msgid "AUX 2 Out"
 msgstr ""
 
-#: sys/v4l2/gstv4l2bufferpool.c:1164
+#: sys/v4l2/gstv4l2bufferpool.c:1168
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index bbb9b28e4209c3d7012ac6df1c5fef8d4f55ed24..ad9a36817cb188fce31147218094e104b1be8bce 100644
Binary files a/po/hr.gmo and b/po/hr.gmo differ
diff --git a/po/hr.po b/po/hr.po
index 1677b56a1955bca972ae02701d7bd6fd263ffbb1..8286fadd51c71aa7023b33449aed829cf5a82c82 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2012-04-16 03:04+0200\n"
 "Last-Translator: Tomislav Krznar <tomislav.krznar@gmail.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
diff --git a/po/hu.gmo b/po/hu.gmo
index 0abbc322e916dac87b2bc63df656f61cc29e7e66..0ccc460394236fad466a1cbbd5c987c6b5e506de 100644
Binary files a/po/hu.gmo and b/po/hu.gmo differ
diff --git a/po/hu.po b/po/hu.po
index 98a2385500ebc8cc6918fdb9bc3ae20caacf61e6..676c907481d50933bd76eb22fee46e81d561f0cc 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2012-11-30 15:05+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 9ac21291ce13ef1be2a419d3108ce07681382185..23f5db111f75b8eebe494f2b4a00c90966d56ae9 100644
Binary files a/po/id.gmo and b/po/id.gmo differ
diff --git a/po/id.po b/po/id.po
index 546c591b3da3c8707697719e3f42cec2a0052310..7ed214444cb29a8f3f96da9cde826a1cd5bf7709 100644
--- a/po/id.po
+++ b/po/id.po
@@ -2,22 +2,25 @@
 # This file is put in the public domain.
 #
 # Andhika Padmawan <andhika.padmawan@gmail.com>, 2011.
+# Andika Triwidada <andika@gmail.com>, 2013.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 0.10.26.2\n"
+"Project-Id-Version: gst-plugins-good 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
-"PO-Revision-Date: 2011-02-26 18:09+0700\n"
-"Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
+"PO-Revision-Date: 2013-10-15 16:26+0700\n"
+"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
 "Language: id\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
 msgid "Jack server not found"
-msgstr ""
+msgstr "Server Jack tak ditemukan"
 
 msgid "Failed to decode JPEG image"
 msgstr "Gagal untuk mengawasandi citra JPEG"
@@ -66,7 +69,7 @@ msgid "This file is invalid and cannot be played."
 msgstr "Berkas ini tidak sah dan tak dapat diputar."
 
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
-msgstr ""
+msgstr "Tak bisa memainkan stream karena dienkripsi memakai DRM PlayReady."
 
 msgid "This file is corrupt and cannot be played."
 msgstr "Berkas ini rusak dan tak dapat diputar."
@@ -170,13 +173,11 @@ msgstr "AUX 1 Masuk"
 msgid "AUX 2 In"
 msgstr "AUX 2 Masuk"
 
-#, fuzzy
 msgid "Codec Loopback"
-msgstr "Loopback"
+msgstr "Loopback Kodek"
 
-#, fuzzy
 msgid "SunVTS Loopback"
-msgstr "Loopback"
+msgstr "Loopback SunVTS"
 
 msgid "Volume"
 msgstr "Volume"
@@ -219,23 +220,21 @@ msgstr ""
 msgid "Could not map buffers from device '%s'"
 msgstr "Tak dapat memetakan penyangga dari divais '%s'"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr ""
-"Driver dari divais '%s' tak mendukung metode penangkap apapun yang dikenal."
+msgstr "Driver dari divais '%s' tak mendukung metode IO %d"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr ""
-"Driver dari divais '%s' tak mendukung metode penangkap apapun yang dikenal."
+msgstr "Driver dari divais '%s' tak mendukung metode IO apapun yang dikenal."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Divais '%s' bukan divais keluaran."
+msgstr "Divais '%s' tak mendukung penangkapan video"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is busy"
-msgstr "Divais '%s' bukan divais keluaran."
+msgstr "Divais '%s' sibuk"
 
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
@@ -249,36 +248,35 @@ msgstr "Divais '%s' tak dapat menangkap dalam format yang ditentukan"
 msgid "Could not get parameters on device '%s'"
 msgstr "Tak bisa mendapatkan parameter di divais '%s'"
 
-#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Divais masukan video tak menerima pengaturan rasio bingkai baru."
+msgstr "Divais video tak menerima pengaturan laju bingkai baru."
 
 msgid "Video device could not create buffer pool."
-msgstr ""
+msgstr "Divais video tak bisa membuat pul singgahan."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr "Gagal mendapatkan pengaturan tuner %d di divais '%s'."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Galat membaca %d bita dari divais '%s'."
+msgstr "Galat saat mengambil kapabilitas bagi divais '%s'."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Divais '%s' bukan divais keluaran."
+msgstr "Divais '%s' bukan tuner."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Gagal mengatur masukan %d di divais %s."
+msgstr "Gagal mendapat masukan radio pada divais '%s'."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Gagal mengatur masukan %d di divais %s."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Gagal mendapatkan kekuatan sinyal untuk divais '%s'."
+msgstr "Gagal mengubah keadaan bisu untuk divais '%s'."
 
 #, c-format
 msgid "Cannot identify device '%s'."
@@ -368,387 +366,3 @@ msgstr "Mengubah resolusi saat waktu berjalan belum didukung."
 
 msgid "Cannot operate without a clock"
 msgstr "Tak dapat beroperasi tanpa jam"
-
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Mendapatkan ukuran bingkai %u ketimbang %u yang tak diharapkan."
-
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Gagal mencoba untuk mendapatkan bingkai video dari divais '%s'."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Gagal setelah %d percobaan. divais %s. galat sistem: %s"
-
-#~ msgid "Bass"
-#~ msgstr "Bas"
-
-#~ msgid "Treble"
-#~ msgstr "Treble"
-
-#~ msgid "Synth"
-#~ msgstr "Synth"
-
-#~ msgid "PCM"
-#~ msgstr "PCM"
-
-#~ msgid "Speaker"
-#~ msgstr "Pengeras Suara"
-
-#~ msgid "Line-in"
-#~ msgstr "Jalur masuk"
-
-#~ msgid "CD"
-#~ msgstr "CD"
-
-#~ msgid "Mixer"
-#~ msgstr "Mixer"
-
-#~ msgid "PCM-2"
-#~ msgstr "PCM-2"
-
-#~ msgid "Record"
-#~ msgstr "Rekam"
-
-#~ msgid "In-gain"
-#~ msgstr "Masukan-gain"
-
-#~ msgid "Out-gain"
-#~ msgstr "Keluaran-gain"
-
-#~ msgid "Line-1"
-#~ msgstr "Jalur-1"
-
-#~ msgid "Line-2"
-#~ msgstr "Jalur-2"
-
-#~ msgid "Line-3"
-#~ msgstr "Jalur-3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Digital-1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Digital-2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Digital-3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Telepon-masuk"
-
-#~ msgid "Phone-out"
-#~ msgstr "Telepon-keluar"
-
-#~ msgid "Video"
-#~ msgstr "Video"
-
-#~ msgid "Radio"
-#~ msgstr "Radio"
-
-#~ msgid "Could not open audio device for mixer control handling."
-#~ msgstr "Tak dapat membuka divais audio untuk menangani kontrol mixer."
-
-#~ msgid ""
-#~ "Could not open audio device for mixer control handling. This version of "
-#~ "the Open Sound System is not supported by this element."
-#~ msgstr ""
-#~ "Tak dapat membuka divais audio untuk menangani kontrol mixer. Versi Open "
-#~ "Sound System ini tidak didukung oleh elemen ini."
-
-#~ msgid "Master"
-#~ msgstr "Master"
-
-#~ msgid "Front"
-#~ msgstr "Depan"
-
-#~ msgid "Rear"
-#~ msgstr "Belakang"
-
-#~ msgid "Headphones"
-#~ msgstr "Headphone"
-
-#~ msgid "Center"
-#~ msgstr "Tengah"
-
-#~ msgid "LFE"
-#~ msgstr "LFE"
-
-#~ msgid "Surround"
-#~ msgstr "Sekeliling"
-
-#~ msgid "Side"
-#~ msgstr "Sisi"
-
-#~ msgid "AUX Out"
-#~ msgstr "AUX Keluaran"
-
-#~ msgid "3D Depth"
-#~ msgstr "Kedalaman 3D"
-
-#~ msgid "3D Center"
-#~ msgstr "3D Tengah"
-
-#~ msgid "3D Enhance"
-#~ msgstr "Dipercanggih 3D"
-
-#~ msgid "Telephone"
-#~ msgstr "Telepon"
-
-#~ msgid "Video In"
-#~ msgstr "Video Masuk"
-
-#~ msgid "AUX In"
-#~ msgstr "AUX Masuk"
-
-#~ msgid "Record Gain"
-#~ msgstr "Rekam Gain"
-
-#~ msgid "Output Gain"
-#~ msgstr "Keluaran Gain"
-
-#~ msgid "Microphone Boost"
-#~ msgstr "Mikrofon Boost"
-
-#~ msgid "Diagnostic"
-#~ msgstr "Diagnosis"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Bass Boost"
-
-#~ msgid "Playback Ports"
-#~ msgstr "Pangkalan Putar"
-
-#~ msgid "Input"
-#~ msgstr "Masukan"
-
-#~ msgid "Monitor Source"
-#~ msgstr "Sumber Monitor"
-
-#~ msgid "Keyboard Beep"
-#~ msgstr "Bip Papan Ketik"
-
-#~ msgid "Simulate Stereo"
-#~ msgstr "Simulasi Stereo"
-
-#~ msgid "Stereo"
-#~ msgstr "Stereo"
-
-#~ msgid "Surround Sound"
-#~ msgstr "Suara Sekeliling"
-
-#~ msgid "Microphone Gain"
-#~ msgstr "Mikrofon Gain"
-
-#~ msgid "Speaker Source"
-#~ msgstr "Sumber Pengeras Suara"
-
-#~ msgid "Microphone Source"
-#~ msgstr "Sumber Mikrofon"
-
-#~ msgid "Jack"
-#~ msgstr "Jack"
-
-#~ msgid "Center / LFE"
-#~ msgstr "Tengah / LFE"
-
-#~ msgid "Stereo Mix"
-#~ msgstr "Mix Stereo"
-
-#~ msgid "Mono Mix"
-#~ msgstr "Mix Mono"
-
-#~ msgid "Input Mix"
-#~ msgstr "Mix Masukan"
-
-#~ msgid "Microphone 1"
-#~ msgstr "Mikrofon 1"
-
-#~ msgid "Microphone 2"
-#~ msgstr "Mikrofon 2"
-
-#~ msgid "Digital Out"
-#~ msgstr "Digital Keluar"
-
-#~ msgid "Digital In"
-#~ msgstr "Digital Masuk"
-
-#~ msgid "HDMI"
-#~ msgstr "HDMI"
-
-#~ msgid "Modem"
-#~ msgstr "Modem"
-
-#~ msgid "Handset"
-#~ msgstr "Handset"
-
-#~ msgid "Other"
-#~ msgstr "Lainnya"
-
-#~ msgid "None"
-#~ msgstr "Tidak Ada"
-
-#~ msgid "On"
-#~ msgstr "Hidup"
-
-#~ msgid "Off"
-#~ msgstr "Mati"
-
-#~ msgid "Mute"
-#~ msgstr "Diam"
-
-#~ msgid "Fast"
-#~ msgstr "Cepat"
-
-#~ msgid "Very Low"
-#~ msgstr "Sangat Rendah"
-
-#~ msgid "Low"
-#~ msgstr "Rendah"
-
-#~ msgid "Medium"
-#~ msgstr "Sedang"
-
-#~ msgid "High"
-#~ msgstr "Tinggi"
-
-#~ msgid "Very High"
-#~ msgstr "Sangat Tinggi"
-
-#~ msgid "Production"
-#~ msgstr "Produksi"
-
-#~ msgid "Front Panel Microphone"
-#~ msgstr "Mikrofon Panel Depan"
-
-#~ msgid "Front Panel Line In"
-#~ msgstr "Masukan Jalur Panel Depan"
-
-#~ msgid "Front Panel Headphones"
-#~ msgstr "Headphone Panel Depan"
-
-#~ msgid "Front Panel Line Out"
-#~ msgstr "Keluaran Jalur Panel Depan"
-
-#~ msgid "Green Connector"
-#~ msgstr "Konektor Hijau"
-
-#~ msgid "Pink Connector"
-#~ msgstr "Konektor Merah Jambu"
-
-#~ msgid "Blue Connector"
-#~ msgstr "Konektor Biru"
-
-#~ msgid "White Connector"
-#~ msgstr "Konektor Putih"
-
-#~ msgid "Black Connector"
-#~ msgstr "Konektor Hitam"
-
-#~ msgid "Gray Connector"
-#~ msgstr "Konektor Abu-Abu"
-
-#~ msgid "Orange Connector"
-#~ msgstr "Konektor Jingga"
-
-#~ msgid "Red Connector"
-#~ msgstr "Konektor Merah"
-
-#~ msgid "Yellow Connector"
-#~ msgstr "Konektor Kuning"
-
-#~ msgid "Green Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Hijau"
-
-#~ msgid "Pink Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Merah Jambu"
-
-#~ msgid "Blue Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Biru"
-
-#~ msgid "White Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Putih"
-
-#~ msgid "Black Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Hitam"
-
-#~ msgid "Gray Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Abu-Abu"
-
-#~ msgid "Orange Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Jingga"
-
-#~ msgid "Red Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Merah"
-
-#~ msgid "Yellow Front Panel Connector"
-#~ msgstr "Konektor Panel Depan Kuning"
-
-#~ msgid "Spread Output"
-#~ msgstr "Keluaran Sebar"
-
-#~ msgid "Downmix"
-#~ msgstr "Downmix"
-
-#~ msgid "Virtual Mixer Input"
-#~ msgstr "Masukan Mixer Virtual"
-
-#~ msgid "Virtual Mixer Output"
-#~ msgstr "Keluaran Mixer Virtual"
-
-#~ msgid "Virtual Mixer Channels"
-#~ msgstr "Kanal Mixer Virtual"
-
-#~ msgid "%s %d Function"
-#~ msgstr "Fungsi %s %d"
-
-#~ msgid "%s Function"
-#~ msgstr "Fungsi %s"
-
-#~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Galat membaca %d bita pada divais '%s'."
-
-#~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Tak dapat mengantrekan penyangga di divais '%s'."
-
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Tak dapat membangun koneksi ke server suara"
-
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Gagal untuk kueri kemampuan server suara"
-
-#~ msgid ""
-#~ "The buffer type is not supported, or the index is out of bounds, or no "
-#~ "buffers have been allocated yet, or the userptr or length are invalid. "
-#~ "device %s"
-#~ msgstr ""
-#~ "Tipe penyangga tidak didukung, atau indeks di luar batas, atau tak ada "
-#~ "penyangga yang telah dialokasikan, atau userptr atau panjang tidak sah. "
-#~ "divais %s"
-
-#~ msgid ""
-#~ "Failed trying to get video frames from device '%s'. Not enough memory."
-#~ msgstr ""
-#~ "Gagal mencoba untuk mendapatkan bingkai video dari divais '%s'. Tak cukup "
-#~ "memori."
-
-#~ msgid "insufficient memory to enqueue a user pointer buffer. device %s."
-#~ msgstr ""
-#~ "kekurangan memori untuk mengantrekan penyangga penunjuk pengguna. divais "
-#~ "%s."
-
-#~ msgid "No free buffers found in the pool at index %d."
-#~ msgstr "Tak ada penyangga bebas ditemukan di lubuk pada indeks %d."
-
-#~ msgid "Could not get buffers from device '%s'."
-#~ msgstr "Tak bisa mendapatkan penyangga dari divais '%s'."
-
-#~ msgid "Could not get enough buffers from device '%s'."
-#~ msgstr "Tak bisa mendapatkan penyangga yang cukup dari divais '%s'."
-
-#~ msgid "Error starting streaming capture from device '%s'."
-#~ msgstr "Galat memulai penangkapan arus dari divais '%s'."
-
-#~ msgid "Error stopping streaming capture from device '%s'."
-#~ msgstr "Galat menghentikan penangkapan arus dari divais '%s'."
-
-#~ msgid "Failed getting controls attributes on device '%s.'"
-#~ msgstr "Gagal mendapatkan kendali atribut di divais '%s.'"
diff --git a/po/it.gmo b/po/it.gmo
index 2aa2ef2fb8077769da3a7c0fd0dd63be8392dbab..9ebc3b559cb1097d0dfee27f12988b8d41c6d415 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index b0ff05f8c7f4cf35476afaa2fcbc6addad43424b..c9df201fd1d89badb0785a85be5b0ecfc4689f73 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 8456a0afcc304dfcaf0fcdd7cbce2149283ad52e..773328930b8b4ae71b951be994df2d5bfadfdbe6 100644
Binary files a/po/ja.gmo and b/po/ja.gmo differ
diff --git a/po/ja.po b/po/ja.po
index e7fd9bd8b29aaec36c9a035d1ab3cf2ae206d693..299a6ba2ef633123f769238ca54ce3fb845c67e3 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 3fc6132614ea7acc085e74dce879186adf12de8f..5e995c4aa7a2f06514e2e136f4b0e7718ab4068c 100644
Binary files a/po/lt.gmo and b/po/lt.gmo differ
diff --git a/po/lt.po b/po/lt.po
index 518b5fa3a4fb92b392534d133fc6453de1430f21..498e75b2ecdabd4150d28af26819dbe46d00d382 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 1ee1c6d61681bd8931dec4b5d78b7c0a2725927a..55c13e59858dbc9e91615e5615b6421e24c7b69b 100644
Binary files a/po/lv.gmo and b/po/lv.gmo differ
diff --git a/po/lv.po b/po/lv.po
index 7e2beb29464f172fcbb9cb278513143c6b89a092..64bd4bb01d1650a212d248dc7a880df81bcc6cdc 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2011-09-02 11:23-0000\n"
 "Last-Translator: Rihards Priedītis <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 e9af73cbddbfebbb737fc4d20532a6d6a0039e08..1af948e0afa7517d56de8c24612b53365ab34dbf 100644
Binary files a/po/mt.gmo and b/po/mt.gmo differ
diff --git a/po/mt.po b/po/mt.po
index e0b784d8547ec64712ec601b4fdda0925ec10025..bb11e4f4c30006582bf5a63b029a71295d5074c1 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.10.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 9e225d70343e57d9d459e86075b76c9f8dba207f..f56b06dbc12550bebcacea1723d1c85bcd2aa227 100644
Binary files a/po/nb.gmo and b/po/nb.gmo differ
diff --git a/po/nb.po b/po/nb.po
index dc8374f237de58f2b1a13288beec794c25c31552..fde958ba403d2df2bad41f92cb342c5e5963e057 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2012-12-21 22:13+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 7626c2b5f76aff41d44446b1a502b66ae0312ccc..9af55e317de18c6405525ef89d1d1cde2eb4c36e 100644
Binary files a/po/nl.gmo and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
index 51d590ff69360249e383f322dd4fd642a820b169..402d66d154d265449c788feeb49ba7c54c667ed2 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-09-15 13:31+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
diff --git a/po/or.gmo b/po/or.gmo
index 5343b9362c1b9c6440e8424a010652bd17f5271d..df3a4e609b931eb650aefe13a9376ab46b10ae0f 100644
Binary files a/po/or.gmo and b/po/or.gmo differ
diff --git a/po/or.po b/po/or.po
index 983cbf05580439af716a8a507af04ca0de0d9063..4760d70a99692b004eafd7cd97bd0c2ee61d35d3 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
diff --git a/po/pl.gmo b/po/pl.gmo
index 712df45fef7f5d90e12ccabbc28d4868fd33e3d3..e8bcfbffaa243b2e8e5c555f20ed8aafcb71312a 100644
Binary files a/po/pl.gmo and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
index b999d9eecde99011ba8d3e74cee1430ed90765a3..fa8eac96f7e880d8f991128a3d920ee0c8b8880f 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-09-15 11:26+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 9f3b7f51e18f4a3fe4c2d2a3ed5b674660b71735..481b98edd0c2db0105aed13ee67a04c9fccb3c2a 100644
Binary files a/po/pt_BR.gmo and b/po/pt_BR.gmo differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index cd311aaa45fe4a06334a2de2e8f710d3247c80c2..79b205dd44d81db8e1acf54112bf28f760bac7f7 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-08-21 00:12-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
diff --git a/po/ro.gmo b/po/ro.gmo
index 953e3862234642ddb6226f176f7cf5fa24138102..1348f9a36c5653043c255f0189acf13d9bdb9d3b 100644
Binary files a/po/ro.gmo and b/po/ro.gmo differ
diff --git a/po/ro.po b/po/ro.po
index eec3e77a072248d0a154a3bcd256d67484375458..ed978d8fba9cfe3b18afb4ef52ed8502d9f748ed 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 5920f1233c4cffc9a5147e998d4f35854848cab2..f29ac6bb18678655bd3d46e2625367b0d178f7a9 100644
Binary files a/po/ru.gmo and b/po/ru.gmo differ
diff --git a/po/ru.po b/po/ru.po
index 21e0ca81a0c9c089c5cd9a26f785d1f3bb41f793..c698636c6da9335c8154d9ad3081e4769455eca0 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-03-09 17:09+0200\n"
 "Last-Translator: Pavel Maryanov <acid@jack.kiev.ua>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
diff --git a/po/sk.gmo b/po/sk.gmo
index f8dee56fd757d5200ec7438f9c80862f226adbf1..cb69d3c9db739576d7e43618b1aee1c3599b2edd 100644
Binary files a/po/sk.gmo and b/po/sk.gmo differ
diff --git a/po/sk.po b/po/sk.po
index 9507cc891d48b2abb8c381e8a2511d797f452c61..e0e711318058f2204be2b02bd869b65fa3343ed4 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2010-11-08 15:48+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
diff --git a/po/sl.gmo b/po/sl.gmo
index 208358a5c0e91dfbce3830c8c7028b6375652a7b..ca4fd5bdb281450805d66310c87b7bab12efbd23 100644
Binary files a/po/sl.gmo and b/po/sl.gmo differ
diff --git a/po/sl.po b/po/sl.po
index e05d51a759536a5742bbae04a07e0b1c1ac98448..7ae84ff0dfe066cefff7980acb72f98f7c22296c 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-01-05 10:03+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 effa30131fd33c58810db22c9d17929ff54df1b5..abc9ed67aba2aaf821b11197938935edd6c16cf8 100644
Binary files a/po/sq.gmo and b/po/sq.gmo differ
diff --git a/po/sq.po b/po/sq.po
index 3eb5985a7b7266425433838003390737d36f22cb..decc8c1827a5dfdb87addb79e583226f589835f5 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 15c46c4b3ded694bb1f8206b5671baaa3997ddd8..aad226505a7d99327c71a45e860148344f3ca7a5 100644
Binary files a/po/sr.gmo and b/po/sr.gmo differ
diff --git a/po/sr.po b/po/sr.po
index 8cfb86ca76a29fa9395effb796fe5480714c1ba7..c2aa8dfec0c2098ffd3aade7f181f2d93fadb6ce 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -2,26 +2,25 @@
 # Copyright (C) 2004 Free Software Foundation, Inc.
 # This file is distributed under the same license as the gst-plugins-good package.
 # Danilo Segan <dsegan@gmx.net>, 2004.
-# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011.
+# Мирослав Николић <miroslavnikolic@rocketmail.com>, 2011, 2013.
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good-0.10.28.2\n"
+"Project-Id-Version: gst-plugins-good-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
-"PO-Revision-Date: 2011-12-04 16:44+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
+"PO-Revision-Date: 2013-10-04 12:15+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
-"Language-Team: Serbian <gnu@prevod.org>\n"
+"Language-Team: Serbian <(nothing)>\n"
 "Language: sr\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: Virtaal 0.7.0\n"
 "X-Project-Style: gnome\n"
 
 msgid "Jack server not found"
-msgstr ""
+msgstr "Нисам пронашао сервер утичнице"
 
 msgid "Failed to decode JPEG image"
 msgstr "Нисам успео да декодирам ЈПЕГ слику"
@@ -70,6 +69,7 @@ msgstr "Ова датотека је неисправна и не може би
 
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
+"Не могу да пустим ток зато што је шифрован УДП-ом „Спреман за пуштање“."
 
 msgid "This file is corrupt and cannot be played."
 msgstr "Ова датотека је оштећена и не може бити пуштена."
@@ -173,13 +173,11 @@ msgstr "АУХ 1 улаз"
 msgid "AUX 2 In"
 msgstr "АУХ 2 улаз"
 
-#, fuzzy
 msgid "Codec Loopback"
-msgstr "Повратна петља"
+msgstr "Повратна петља кодека"
 
-#, fuzzy
 msgid "SunVTS Loopback"
-msgstr "Повратна петља"
+msgstr "Повратна петља СанВТС-а"
 
 msgid "Volume"
 msgstr "Јачина звука"
@@ -215,71 +213,70 @@ msgstr "Грешка приликом читања %d бајтова са уре
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
+"Нисам успео да нумеришем могући уређај записа снимка „%s“ са којим може да "
+"ради"
 
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr "Не могу да мапирам помоћне меморије са уређаја „%s“"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
-msgstr ""
-"Управљачки програм уређаја „%s“ не подржава ниједан познати начин снимања."
+msgstr "Управљачки програм уређаја „%s“ не подржава УИ начин %d"
 
-#, fuzzy, c-format
+#, c-format
 msgid "The driver of device '%s' does not support any known IO method."
-msgstr ""
-"Управљачки програм уређаја „%s“ не подржава ниједан познати начин снимања."
+msgstr "Управљачки програм уређаја „%s“ не подржава ниједан познати УИ начин."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' does not support video capture"
-msgstr "Уређај „%s“ није излазни уређај."
+msgstr "Уређај „%s“ не подржава видео снимање"
 
 #, c-format
 msgid "Device '%s' is busy"
-msgstr ""
+msgstr "Уређај „%s“ је заузет"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' cannot capture at %dx%d"
-msgstr "Уређај „%s“ није уређај за снимање."
+msgstr "Уређај „%s“ не може да снима на %dx%d"
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' cannot capture in the specified format"
-msgstr "Уређај „%s“ није уређај за снимање."
+msgstr "Уређај „%s“ не може да снима у наведеном запису"
 
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr "Не могу да добавим параметре на уређају „%s“"
 
-#, fuzzy
 msgid "Video device did not accept new frame rate setting."
-msgstr "Улазни видео уређај не прихвата нове поставке протока кадрова."
+msgstr "Видео уређај не прихвата нове поставке протока кадрова."
 
 msgid "Video device could not create buffer pool."
-msgstr ""
+msgstr "Видео уређај не може да направи смештај међумеморије."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr "Нисам успео да добавим подешавања тјунера %d на уређају „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Error getting capabilities for device '%s'."
-msgstr "Грешка приликом читања %d бајтова са уређаја „%s“."
+msgstr "Грешка добављања могућности за уређај „%s“."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Device '%s' is not a tuner."
-msgstr "Уређај „%s“ није излазни уређај."
+msgstr "Уређај „%s“ није тјунер."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to get radio input on device '%s'. "
-msgstr "Нисам успео да подесим улаз %d на уређају %s."
+msgstr "Нисам успео да добавим радио улаз на уређају „%s“."
 
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr "Нисам успео да подесим улаз %d на уређају %s."
 
-#, fuzzy, c-format
+#, c-format
 msgid "Failed to change mute state for device '%s'."
-msgstr "Нисам успео да добавим јачину сигнала за уређај „%s“."
+msgstr "Нисам успео да изменим стање утишаности за уређај „%s“."
 
 #, c-format
 msgid "Cannot identify device '%s'."
@@ -371,422 +368,3 @@ msgstr "Промена резолуције приликом извршавањ
 
 msgid "Cannot operate without a clock"
 msgstr "Не могу да радим без сата"
-
-#~ msgid "Got unexpected frame size of %u instead of %u."
-#~ msgstr "Добих неочекивану величину кадра, %u уместо %u."
-
-#~ msgid "Failed trying to get video frames from device '%s'."
-#~ msgstr "Нисам успео да добавим видео кадрове са уређаја „%s“."
-
-#~ msgid "Failed after %d tries. device %s. system error: %s"
-#~ msgstr "Нисам успео након %d покушаја. уређај %s. системска грешка: %s"
-
-#~ msgid "Bass"
-#~ msgstr "Бас"
-
-#~ msgid "Treble"
-#~ msgstr "Високотонац"
-
-#~ msgid "Synth"
-#~ msgstr "Синтисајзер"
-
-#~ msgid "PCM"
-#~ msgstr "ПЦМ"
-
-#~ msgid "Speaker"
-#~ msgstr "Звучник"
-
-#~ msgid "Line-in"
-#~ msgstr "Линијски улаз"
-
-#~ msgid "CD"
-#~ msgstr "ЦД"
-
-#~ msgid "Mixer"
-#~ msgstr "Мешач"
-
-#~ msgid "PCM-2"
-#~ msgstr "ПЦМ-2"
-
-#~ msgid "Record"
-#~ msgstr "Снимање"
-
-#~ msgid "In-gain"
-#~ msgstr "Улазно појачање"
-
-#~ msgid "Out-gain"
-#~ msgstr "Излазно појачање"
-
-#~ msgid "Line-1"
-#~ msgstr "Линија 1"
-
-#~ msgid "Line-2"
-#~ msgstr "Линија 2"
-
-#~ msgid "Line-3"
-#~ msgstr "Линија 3"
-
-#~ msgid "Digital-1"
-#~ msgstr "Дигитални 1"
-
-#~ msgid "Digital-2"
-#~ msgstr "Дигитални 2"
-
-#~ msgid "Digital-3"
-#~ msgstr "Дигитални 3"
-
-#~ msgid "Phone-in"
-#~ msgstr "Телефонски улаз"
-
-#~ msgid "Phone-out"
-#~ msgstr "Телефонски излаз"
-
-#~ msgid "Video"
-#~ msgstr "Видео"
-
-#~ msgid "Radio"
-#~ msgstr "Радио"
-
-#~ msgid "Could not open audio device for mixer control handling."
-#~ msgstr "Не могу да покренем звучни уређај за руковање управљањем мешача."
-
-#~ msgid ""
-#~ "Could not open audio device for mixer control handling. This version of "
-#~ "the Open Sound System is not supported by this element."
-#~ msgstr ""
-#~ "Не могу да покренем звучни уређај за руковање управљањем мешача. Ово "
-#~ "издање система отвореног звука није подржано овим елементом."
-
-#~ msgid "Master"
-#~ msgstr "Главни"
-
-#~ msgid "Front"
-#~ msgstr "Предњи"
-
-#~ msgid "Rear"
-#~ msgstr "Задњи"
-
-#~ msgid "Headphones"
-#~ msgstr "Слушалице"
-
-#~ msgid "Center"
-#~ msgstr "Средињи"
-
-#~ msgid "LFE"
-#~ msgstr "ЛФЕ"
-
-#~ msgid "Surround"
-#~ msgstr "Окружење"
-
-#~ msgid "Side"
-#~ msgstr "Са стране"
-
-#~ msgid "AUX Out"
-#~ msgstr "АУХ излаз"
-
-#~ msgid "3D Depth"
-#~ msgstr "3Д дубина"
-
-#~ msgid "3D Center"
-#~ msgstr "3Д средиште"
-
-#~ msgid "3D Enhance"
-#~ msgstr "3Д побољшање"
-
-#~ msgid "Telephone"
-#~ msgstr "Телефон"
-
-#~ msgid "Video In"
-#~ msgstr "Видео улаз"
-
-#~ msgid "AUX In"
-#~ msgstr "АУХ улаз"
-
-#~ msgid "Record Gain"
-#~ msgstr "Појачање снимања"
-
-#~ msgid "Output Gain"
-#~ msgstr "Појачање излаза"
-
-#~ msgid "Microphone Boost"
-#~ msgstr "Појачање микрофона"
-
-#~ msgid "Diagnostic"
-#~ msgstr "Дијагностика"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Појачање баса"
-
-#~ msgid "Playback Ports"
-#~ msgstr "Портови пуштања"
-
-#~ msgid "Input"
-#~ msgstr "Улаз"
-
-#~ msgid "Monitor Source"
-#~ msgstr "Извор праћења"
-
-#~ msgid "Keyboard Beep"
-#~ msgstr "Звук тастатуре"
-
-#~ msgid "Simulate Stereo"
-#~ msgstr "Лажни стерео"
-
-#~ msgid "Stereo"
-#~ msgstr "Стерео"
-
-#~ msgid "Surround Sound"
-#~ msgstr "Звук окружења"
-
-#~ msgid "Microphone Gain"
-#~ msgstr "Појачање микрофона"
-
-#~ msgid "Speaker Source"
-#~ msgstr "Извор звучника"
-
-#~ msgid "Microphone Source"
-#~ msgstr "Извор микрофона"
-
-#~ msgid "Jack"
-#~ msgstr "Утичница"
-
-#~ msgid "Center / LFE"
-#~ msgstr "Средиште / ЛФЕ"
-
-#~ msgid "Stereo Mix"
-#~ msgstr "Стерео микс"
-
-#~ msgid "Mono Mix"
-#~ msgstr "Моно микс"
-
-#~ msgid "Input Mix"
-#~ msgstr "Улазни микс"
-
-#~ msgid "Microphone 1"
-#~ msgstr "Микрофон 1"
-
-#~ msgid "Microphone 2"
-#~ msgstr "Микрофон 2"
-
-#~ msgid "Digital Out"
-#~ msgstr "Дигитални излаз"
-
-#~ msgid "Digital In"
-#~ msgstr "Дигитални улаз"
-
-#~ msgid "HDMI"
-#~ msgstr "ХДМИ"
-
-#~ msgid "Modem"
-#~ msgstr "Модем"
-
-#~ msgid "Handset"
-#~ msgstr "Слушалица"
-
-#~ msgid "Other"
-#~ msgstr "Остало"
-
-#~ msgid "None"
-#~ msgstr "Ништа"
-
-#~ msgid "On"
-#~ msgstr "Укљ."
-
-#~ msgid "Off"
-#~ msgstr "Искљ."
-
-#~ msgid "Mute"
-#~ msgstr "Без звука"
-
-#~ msgid "Fast"
-#~ msgstr "Брзо"
-
-#~ msgid "Very Low"
-#~ msgstr "Врло низак"
-
-#~ msgid "Low"
-#~ msgstr "Низак"
-
-#~ msgid "Medium"
-#~ msgstr "Средњи"
-
-#~ msgid "High"
-#~ msgstr "Висок"
-
-#~ msgid "Very High"
-#~ msgstr "Врло висок"
-
-#~ msgid "Production"
-#~ msgstr "Производни"
-
-#~ msgid "Front Panel Microphone"
-#~ msgstr "Микрофон предње површи"
-
-#~ msgid "Front Panel Line In"
-#~ msgstr "Линијски улаз предње површи"
-
-#~ msgid "Front Panel Headphones"
-#~ msgstr "Слушалице предње површи"
-
-#~ msgid "Front Panel Line Out"
-#~ msgstr "Линијски излаз предње површи"
-
-#~ msgid "Green Connector"
-#~ msgstr "Зелени прикључак"
-
-#~ msgid "Pink Connector"
-#~ msgstr "Ружичаст прикључак"
-
-#~ msgid "Blue Connector"
-#~ msgstr "Плави прикључак"
-
-#~ msgid "White Connector"
-#~ msgstr "Бели прикључак"
-
-#~ msgid "Black Connector"
-#~ msgstr "Црни прикључак"
-
-#~ msgid "Gray Connector"
-#~ msgstr "Сиви прикључак"
-
-#~ msgid "Orange Connector"
-#~ msgstr "Наранџасти прикључак"
-
-#~ msgid "Red Connector"
-#~ msgstr "Црвени прикључак"
-
-#~ msgid "Yellow Connector"
-#~ msgstr "Жути прикључак"
-
-#~ msgid "Green Front Panel Connector"
-#~ msgstr "Зелени прикључак на предњој површи"
-
-#~ msgid "Pink Front Panel Connector"
-#~ msgstr "Ружичасти прикључак на предњој површи"
-
-#~ msgid "Blue Front Panel Connector"
-#~ msgstr "Плави прикључак на предњој површи"
-
-#~ msgid "White Front Panel Connector"
-#~ msgstr "Бели прикључак на предњој површи"
-
-#~ msgid "Black Front Panel Connector"
-#~ msgstr "Црни прикључак на предњој површи"
-
-#~ msgid "Gray Front Panel Connector"
-#~ msgstr "Сиви прикључак на предњој површи"
-
-#~ msgid "Orange Front Panel Connector"
-#~ msgstr "Наранџасти прикључак на предњој површи"
-
-#~ msgid "Red Front Panel Connector"
-#~ msgstr "Црвени прикључак на предњој површи"
-
-#~ msgid "Yellow Front Panel Connector"
-#~ msgstr "Жути прикључак на предњој површи"
-
-#~ msgid "Spread Output"
-#~ msgstr "Излаз ширења"
-
-#~ msgid "Downmix"
-#~ msgstr "Сабирни мешач"
-
-#~ msgid "Virtual Mixer Input"
-#~ msgstr "Улаз виртуелног мешача"
-
-#~ msgid "Virtual Mixer Output"
-#~ msgstr "Излаз виртуелног мешача"
-
-#~ msgid "Virtual Mixer Channels"
-#~ msgstr "Канали виртуелног мешача"
-
-#~ msgid "%s %d Function"
-#~ msgstr "%s %d функција"
-
-#~ msgid "%s Function"
-#~ msgstr "%s функција"
-
-#~ msgid "Could not establish connection to sound server"
-#~ msgstr "Не могу да успоставим везу са сервером звука"
-
-#~ msgid "Failed to query sound server capabilities"
-#~ msgstr "Нисам успео да испитам могућности сервера звука"
-
-#~ msgid "Error reading %d bytes on device '%s'."
-#~ msgstr "Грешка приликом читања %d бајтова на уређају „%s“."
-
-#~ msgid "Could not enqueue buffers in device '%s'."
-#~ msgstr "Не могу да додам помоћне меморије у уређају „%s“."
-
-#~ msgid "Could not open file \"%s\" for writing."
-#~ msgstr "Не могу да отворим датотеку „%s“ ради уписа."
-
-#~ msgid "Error closing file \"%s\"."
-#~ msgstr "Грешка при затварању датотеке „%s“."
-
-#~ msgid "Could not open file \"%s\" for reading."
-#~ msgstr "Не могу да отворим датотеку „%s“ ради читања."
-
-#~ msgid "No filename specified."
-#~ msgstr "Име датотеке није задато."
-
-#~ msgid "Could not write to file \"%s\"."
-#~ msgstr "Не могу да пишем у датотеку „%s“."
-
-#~ msgid "Could not open control device \"%s\" for writing."
-#~ msgstr "Не могу да отворим управљачки уређај „%s“ ради уписа."
-
-#~ msgid "Could not configure audio device \"%s\"."
-#~ msgstr "Не могу да подесим звучни уређај „%s“."
-
-#~ msgid "Could not set audio device \"%s\" to %d Hz."
-#~ msgstr "Не могу да поставим звучни уређај „%s“ на %d Hz."
-
-#~ msgid "Could not open video device \"%s\" for writing."
-#~ msgstr "Не могу да отворим видео уређај „%s“ ради уписа."
-
-#~ msgid "Could not close video device \"%s\"."
-#~ msgstr "Не могу да затворим видео уређај „%s“."
-
-#~ msgid "OSS device \"%s\" is already in use by another program."
-#~ msgstr "OSS уређај „%s“ већ користи неки програм."
-
-#~ msgid "Could not access device \"%s\", check its permissions."
-#~ msgstr "Не могу да приступим уређају „%s“, проверите његова овлашћења."
-
-#~ msgid "Device \"%s\" does not exist."
-#~ msgstr "Не постоји уређај „%s“."
-
-#~ msgid "Could not open device \"%s\" for writing."
-#~ msgstr "Не могу да отворим уређај „%s“ ради уписа."
-
-#~ msgid "Could not open device \"%s\" for reading."
-#~ msgstr "Не могу да отворим уређај „%s“ ради читања."
-
-# Виртуелни Систем Датотека
-#~ msgid "Could not open vfs file \"%s\" for reading."
-#~ msgstr "Не могу да отворим ВСД датотеку „%s“ ради читања."
-
-#, fuzzy
-#~ msgid "No filename given."
-#~ msgstr "Име датотеке није задато."
-
-#, fuzzy
-#~ msgid "Could not open vfs file \"%s\" for writing: %s."
-#~ msgstr "Не могу да отворим ВСД датотеку „%s“ ради уписа."
-
-#, fuzzy
-#~ msgid "No filename given"
-#~ msgstr "Име датотеке није задато."
-
-#~ msgid "Could not close vfs file \"%s\"."
-#~ msgstr "Не могу да затворим ВСД датотеку „%s“."
-
-#~ msgid "No device specified."
-#~ msgstr "Уређај није наведен."
-
-#~ msgid "Device is not open."
-#~ msgstr "Уређај није отворен."
-
-#~ msgid "Device is open."
-#~ msgstr "Уређај је отворен."
diff --git a/po/sv.gmo b/po/sv.gmo
index 069b9b1c4ec64764fb7a5f9b53182afda938d4f0..9e05c29d1e27920a2f99f8877d147cdf6707b09d 100644
Binary files a/po/sv.gmo and b/po/sv.gmo differ
diff --git a/po/sv.po b/po/sv.po
index e44ff4f2fabaaffc3b97ae1f1c316916d28f416b..8fd04ad105cb19eeb22d15036d786cc625fac0b4 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2011-01-09 19:36+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
diff --git a/po/tr.gmo b/po/tr.gmo
index 4840bb18f878b577bd08d8e8910584512d0f6fdb..eca765e175b25ba1b012b72a4d20aade38756ff8 100644
Binary files a/po/tr.gmo and b/po/tr.gmo differ
diff --git a/po/tr.po b/po/tr.po
index be995d489db6609bdd016fb3f4da795351ad5e6a..30445ad2586eb69b1ce7809cb12bb8c334a7d330 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-03-10 13:05+0200\n"
 "Last-Translator: Server Acim <serveracim@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
diff --git a/po/uk.gmo b/po/uk.gmo
index 30258be8d3595964b4dfb9a3c68e6382089a896d..c3eb8ed1952e12f2a50a5a548e6f99aaf1e796c1 100644
Binary files a/po/uk.gmo and b/po/uk.gmo differ
diff --git a/po/uk.po b/po/uk.po
index efb371a4736e5d37422de3c903d014513cb68dda..8d54ac68d02e95fe0f6638fa98413884f79234be 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-09-14 22:23+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
diff --git a/po/vi.gmo b/po/vi.gmo
index 0a954acbb20eef3d372848af4d15948d03d3f6c6..c3b82cc947cd663652e97c723a1d55fc8a809f45 100644
Binary files a/po/vi.gmo and b/po/vi.gmo differ
diff --git a/po/vi.po b/po/vi.po
index 63a0a936a5bba683b4a11210bd0bc80225307960..3b1ffcf9457324eb0297704d4a14a75fc9432879 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.1.4\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2013-09-16 14:36+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 b1ecb90eb772d9ef28b54fc79291c8bcfffb7bf2..345b8cb11d9ea58ae71522f9d2c3d888d2e5cd6f 100644
Binary files a/po/zh_CN.gmo and b/po/zh_CN.gmo differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 42cb3b8e79de1c5d711b179f966ea8aeb48199f0..e2c2233aa814b1d0ed35d2cacc5382d18335db2f 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.16.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\n"
 "PO-Revision-Date: 2009-11-13 22:20+0800\n"
 "Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index 33450c00240682507b2d971c786a2fc764b4ec29..db62a8902cd0f508cec75f1e83eea9d90c0c6ea8 100644
Binary files a/po/zh_HK.gmo and b/po/zh_HK.gmo differ
diff --git a/po/zh_HK.po b/po/zh_HK.po
index 601a80d03808464b4c0a0cf805b248dd095a3d5e..8b21d0c391246a86a736d0c7ddea3d772e7dfab4 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@ msgid ""
 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: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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 8daf242ad584cccbec443c617082000d57b33712..e54faddb08b36ac0a54bfe1740d4a6c36c39e0be 100644
Binary files a/po/zh_TW.gmo and b/po/zh_TW.gmo differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 75ed612320cfdfa9ddb209acf87ac338d1efb61f..1d442de387751f6c5cb2cd9c78c1528f2f7d7439 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@ msgid ""
 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: 2013-09-24 14:19+0200\n"
+"POT-Creation-Date: 2013-11-09 15:36+0100\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/osxaudio/gstosxcoreaudiohal.c b/sys/osxaudio/gstosxcoreaudiohal.c
index b707af9177a343e54394052271fa4e6b45a8d4e7..1c8736135c072e99315f15ad95c74c576f04db6b 100644
--- a/sys/osxaudio/gstosxcoreaudiohal.c
+++ b/sys/osxaudio/gstosxcoreaudiohal.c
@@ -371,8 +371,9 @@ gst_core_audio_audio_device_get_channel_layout (AudioDeviceID device_id)
     }
   }
 
-beach:
   gst_core_audio_dump_channel_layout (layout);
+
+beach:
   return layout;
 
 failed:
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 00c6086aa01031d8e430d959aa7de1a0f8ca9d46..f5396d93f6b7262f43613bdb1687d1ae8e637778 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -26,13 +26,17 @@
 #  include <config.h>
 #endif
 
-#include <sys/mman.h>
-#include <string.h>
-#include <unistd.h>
 #if HAVE_DECL_V4L2_MEMORY_DMABUF
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE            /* O_CLOEXEC */
+#endif
 #include <fcntl.h>
 #endif
 
+#include <sys/mman.h>
+#include <string.h>
+#include <unistd.h>
+
 #include "gst/video/video.h"
 #include "gst/video/gstvideometa.h"
 #include "gst/video/gstvideopool.h"
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 7af3536968a00b1f15ebab80e7a23665d20c1038..a2803a756661c8b1b3cfe1673c26d3f97d03fd86 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -2714,7 +2714,7 @@ gst_v4l2_object_get_caps (GstV4l2Object * v4l2object, GstCaps * filter)
     ret = gst_caps_ref (v4l2object->probed_caps);
   }
 
-  GST_INFO_OBJECT (v4l2object->element, "probed caps: %p", ret);
+  GST_INFO_OBJECT (v4l2object->element, "probed caps: %" GST_PTR_FORMAT, ret);
   LOG_CAPS (v4l2object->element, ret);
 
   return ret;
diff --git a/win32/common/config.h b/win32/common/config.h
index cf4c3761ff049d1ef17b981bd369d2851be5c249..483c33231011c5bb58b84061302d041134ac604e 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -58,7 +58,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2013-09-24"
+#define GST_PACKAGE_RELEASE_DATETIME "2013-11-09"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -385,7 +385,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.2.0"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.2.1"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-good"
@@ -394,7 +394,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.2.0"
+#define PACKAGE_VERSION "1.2.1"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -428,7 +428,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.2.0"
+#define VERSION "1.2.1"
 
 /* old wavpack API */
 #undef WAVPACK_OLD_API