diff --git a/ChangeLog b/ChangeLog
index 5da68cbd73269fdedc1fb5acf67479b796f71dd2..e4da387d05bd1af6dd2394efeee6061d2a38b93f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,1780 @@
+=== release 1.5.90 ===
+
+2015-08-19  Sebastian Dröge <slomo@coaxion.net>
+
+	* configure.ac:
+	  releasing 1.5.90
+
+2015-08-19 11:29:55 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/el.po:
+	* po/zh_CN.po:
+	  po: Update translations
+
+2015-08-13 17:29:58 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/multifile/gstmultifilesrc.c:
+	  multifilesrc: fix regression with starting from index set via index property
+	  When we haven't started yet, set the start_index when we set the index property,
+	  so that we start at the right index position after the initial seek. The index
+	  property was never really meant to be for writing, but it used to work, so let's
+	  support it for backwards compatibility.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=739472
+
+2015-08-18 10:52:11 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix offset calculation when parsing CENC aux info
+	  Commit 7d7e54ce6863ff53e188d0276d2651b65082ffdb added support for
+	  DASH common encryption, however commit
+	  bb336840c0b0b02fa18dc4437ce0ded3d9142801 that went onto master
+	  shortly before the CENC commit caused the calculation of the CENC
+	  aux info offset to be incorrect.
+	  The base_offset was being added if present, but if the base_offset
+	  is relative to the start of the moof, the offset was being added twice.
+	  The correct approach is to calculate the offset from the start of the
+	  moof and use that offset when parsing the CENC aux info.
+
+2015-08-17 14:28:24 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: actually return true for accept-caps query handling
+
+2015-08-17 14:07:10 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtp/gstrtpg723pay.c:
+	* gst/rtp/gstrtpgsmpay.c:
+	* gst/rtp/gstrtpklvpay.c:
+	  rtp: copy metadata in the (de)payloaders which is missed before
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753706
+
+2015-08-16 15:21:51 -0400  Dustin Spicuzza <dustin@virtualroadside.com>
+
+	* configure.ac:
+	* sys/directsound/gstdirectsoundsink.c:
+	* sys/directsound/gstdirectsoundsink.h:
+	  directsoundsink: allow specifying audio playback device
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753670
+
+2015-08-16 13:51:47 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: remove single entry if from loop
+	  Iterate from the 2nd channel on and create the 1 channel struct
+	  outside to make loop structure simpler and only slightly faster.
+
+2015-08-16 13:21:41 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: implement proper accept-caps
+	  Should just compare with what can be immediatelly accepted by
+	  the element. flacenc can't renegotiate so if it has a caps already
+	  it should only accept if it is that caps otherwise just use the
+	  template caps
+
+2015-08-16 13:03:36 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/flac/gstflacenc.c:
+	  flacenc: improve sink pad template caps
+	  Removes the need for custom caps query handling and makes it more
+	  correct from the beginning on the template. It is a bit uglier
+	  to read because there is 1 entry per channel but makes code easier
+	  to maintain.
+
+2015-08-16 12:41:56 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/y4m/gsty4mencode.c:
+	  y4mencode: fix gst-launch version in documentation
+
+2015-08-15 22:32:21 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/speex/gstspeexenc.c:
+	* ext/wavpack/gstwavpackenc.c:
+	* gst/law/alaw-encode.c:
+	* gst/law/mulaw-encode.c:
+	  audioencoders: use template subset check for accept-caps
+	  It is faster than doing a query that propagates downstream and
+	  should be enough
+	  Elements: speexenc, wavpackenc, mulawenc, alawenc
+
+2015-08-15 22:29:41 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/jpeg/gstjpegenc.c:
+	* ext/libpng/gstpngenc.c:
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp9enc.c:
+	* gst/y4m/gsty4mencode.c:
+	  videoencoders: use template subset check for accept-caps
+	  It is faster than doing a query that propagates downstream and
+	  should be enough
+	  Elements: jpegenc, pngenc, vp8enc, vp9enc, y4menc
+
+2015-08-16 17:21:24 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/audioparsers/gstmpegaudioparse.c:
+	  mpegaudioparse: use new baseparse API to fix tag handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679768
+
+2015-03-17 17:50:37 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstamrparse.c:
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstsbcparse.c:
+	* gst/audioparsers/gstwavpackparse.c:
+	  audioparsers: use new base parse API to fix tag handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679768
+
+2015-08-16 14:37:53 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/audioparsers/gstflacparse.c:
+	  flacparse: use new baseparse API and fix tag handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=679768
+
+2015-08-16 13:04:02 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Use signed integer type to be able to check for negative subtraction results
+	  CID 1315829
+
+2015-08-16 11:50:34 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/rtp/gstrtpvorbisdepay.c:
+	  rtpvorbisdepay: remove dead code
+	  payload_buffer must be NULL in ignore_reserved. Check will always be false.
+	  Introduced by b1089fb5207697ba26edb4ff66ed0f465c6df3cf
+	  CID #1316476
+
+2015-08-15 22:45:53 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/law/alaw-encode.c:
+	* gst/law/alaw-encode.h:
+	  alawenc: port to AudioEncoder base class
+
+2015-08-15 09:16:23 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/flac/gstflacdec.c:
+	* ext/speex/gstspeexdec.c:
+	* ext/wavpack/gstwavpackdec.c:
+	* gst/law/alaw-decode.c:
+	* gst/law/mulaw-decode.c:
+	  audiodecoders: use default pad accept-caps handling
+	  Avoids useless check of downstream caps when handling an
+	  accept-caps query
+	  Elements: flacdec, speexdec, wavpackdec, mulawdec, alawdec
+
+2015-08-15 08:49:57 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/jpeg/gstjpegdec.c:
+	* ext/libpng/gstpngdec.c:
+	* ext/vpx/gstvp8dec.c:
+	* ext/vpx/gstvp9dec.c:
+	  videodecoders: use default pad accept-caps handling
+	  Avoids useless check of downstream caps when handling an
+	  accept-caps query
+	  Elements: jpegdec, pngdec, vp8dec, vp9dec
+
+2015-08-15 11:31:04 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/law/alaw-decode.c:
+	  alawdec: make error handling a bit nicer
+	  Print the element along with the debug to make it easier to trace
+	  the failures
+
+2015-08-15 11:04:16 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/law/alaw-decode.c:
+	* gst/law/alaw-decode.h:
+	  alawdec: port to audiodecoder base class
+	  mulawdec was already ported, alawdec was left behind.
+
+2015-08-15 10:34:14 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: only look for more samples in moofs in pull-mode
+	  For playback of some fragmented formats with qtdemux it will
+	  try to look for the next moof after finishing one but it is only
+	  possible for pull-mode. For playback of streaming fragmented formats
+	  such as DASH it should just not try to look for another moof but
+	  instead wait for more data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752602
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2015-08-15 12:58:50 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audioparsers/gstdcaparse.c:
+	  dcaparse: Don't look for a second syncword
+	  There are streams out there that consistently contain garbage between
+	  every frame so we never ever find a second consecutive syncword.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=738237
+
+2015-08-15 11:12:05 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp9enc.c:
+	  vp8enc, vp9enc: reset multipass file index when stopping encoder
+	  Fixes multipass encoding when re-using the same element/pipeline
+	  for subsequent encoding runs.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747728
+
+2015-08-15 11:09:42 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/vpx/gstvp9enc.c:
+	* ext/vpx/gstvp9enc.h:
+	  vp9enc: provide support for multiple pass cache files
+	  Some files may provide different caps insight of one stream. Since
+	  vp9enc support caps reinit, we should support cache reinit too.
+	  If more then file cache file will be created, the naming will be:
+	  cache cache.1 cache.2 ...
+	  Based on patch by: Oleksij Rempel <linux@rempel-privat.de>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747728
+
+2015-08-14 11:41:42 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/aacparse.c:
+	  tests: aacparse: use caps query instead of accept-caps
+	  The accept-caps query just does a shallow check at the current
+	  element while at this test we want it to also look at downstream.
+	  So use caps query there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753623
+
+2015-08-14 11:40:22 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstac3parse.c:
+	* gst/audioparsers/gstamrparse.c:
+	* gst/audioparsers/gstdcaparse.c:
+	* gst/audioparsers/gstflacparse.c:
+	* gst/audioparsers/gstmpegaudioparse.c:
+	* gst/audioparsers/gstsbcparse.c:
+	* gst/audioparsers/gstwavpackparse.c:
+	  audioparsers: enable accept-template flag
+	  Do a quick check with the pad template caps as it is enough. Users
+	  should have figured the appropriate full caps on a previous caps query
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753623
+
+2015-08-14 15:46:53 +0200  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: send the User-Agent header
+	  Sometimes it is useful to know this information on the
+	  server side. Other popular implementations (vlc, ffmpeg, ...)
+	  also send this header on every message.
+	  This includes a new "user-agent" property that the user
+	  can set to use a custom User-Agent string. The default
+	  is "GStreamer/<version>"
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750101
+
+2015-08-14 15:42:42 +0200  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: wrap gst_rtsp_message_init_request in a local function
+	  This will allow adding common request initialization, like the
+	  user agent string, in just one place.
+
+2015-08-14 09:36:09 +0530  Prashant Gotarne <ps.gotarne@samsung.com>
+
+	* gst/audiofx/audioecho.c:
+	  audioecho: make sure buffer gets reallocated if max_delay changes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753490
+
+2015-07-09 09:51:26 +0200  Oleksij Rempel <linux@rempel-privat.de>
+
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp8enc.h:
+	  vp8enc: provide support for multiple pass cache files
+	  Some files may provide different caps insight of one stream. Since vp8enc
+	  support caps reinit, we should support cache reinit too.
+	  If more then file cache file will be created, the naming will be:
+	  cache
+	  cache.1
+	  cache.2
+	  ...
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747728
+
+2015-04-15 22:51:51 +0200  Ramiro Polla <ramiro.polla@collabora.co.uk>
+
+	* gst/rtp/gstrtpmp4gdepay.c:
+	  rtpmp4gdepay: fix timestamps for RTP packets with multiple AUs
+	  Use constantDuration to calculate the timestamp of non-first AU in the
+	  RTP packet.
+	  If constantDuration is not present in the MIME parameters, its value
+	  must be calculated based on the timing information from two consecutive
+	  RTP packets with AU-Index equal to 0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747881
+
+2015-08-14 06:43:13 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: remove unnecessary if, g_free is null safe
+
+2015-08-14 08:33:56 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: add property to set HTTP method
+	  To allow souphttpsrc to be use HTTP methods other than GET
+	  (e.g. HEAD), add a "method" property that is a string. If this
+	  property is not set, GET is used.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752413
+
+2015-08-14 11:13:01 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* tests/check/generic/states.c:
+	  check: Rename states unit test
+	  Makes it easier to differentiate from other modules states unit test
+
+2015-08-14 09:21:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/goom/gstaudiovisualizer.c:
+	* gst/goom/gstaudiovisualizer.h:
+	* gst/goom2k1/gstaudiovisualizer.c:
+	* gst/goom2k1/gstaudiovisualizer.h:
+	  goom: Rename get_type() function of base class to prevent symbol conflicts
+	  This is a problem when statically linking.
+
+2015-08-13 16:32:55 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Keep the DTS estimate if we got no DTS after a jitterbuffer reset
+	  Otherwise we will just output buffers without timestamps after a reset if no
+	  timestamps are provided by upstream, e.g. when using RTSP over TCP.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749536
+
+2015-08-12 17:16:01 +0530  Ravi Kiran K N <ravi.kiran@samsung.com>
+
+	* gst/matroska/matroska-demux.h:
+	* gst/matroska/matroska-parse.h:
+	  matroska: Remove unused variable
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753556
+
+2015-08-04 20:59:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpL24depay.c:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpac3pay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpamrpay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpceltdepay.c:
+	* gst/rtp/gstrtpceltpay.c:
+	* gst/rtp/gstrtpdvdepay.c:
+	* gst/rtp/gstrtpdvpay.c:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg723pay.c:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg729depay.c:
+	* gst/rtp/gstrtpg729pay.c:
+	* gst/rtp/gstrtpgsmdepay.c:
+	* gst/rtp/gstrtpgsmpay.c:
+	* gst/rtp/gstrtpgstdepay.c:
+	* gst/rtp/gstrtpgstpay.c:
+	* gst/rtp/gstrtph261depay.c:
+	* gst/rtp/gstrtph261pay.c:
+	* gst/rtp/gstrtph263depay.c:
+	* gst/rtp/gstrtph263pay.c:
+	* gst/rtp/gstrtph263pdepay.c:
+	* gst/rtp/gstrtph263ppay.c:
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph264pay.c:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kpay.c:
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	* gst/rtp/gstrtpmp1sdepay.c:
+	* gst/rtp/gstrtpmp2tdepay.c:
+	* gst/rtp/gstrtpmp2tpay.c:
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmp4apay.c:
+	* gst/rtp/gstrtpmp4gdepay.c:
+	* gst/rtp/gstrtpmp4gpay.c:
+	* gst/rtp/gstrtpmp4vdepay.c:
+	* gst/rtp/gstrtpmp4vpay.c:
+	* gst/rtp/gstrtpmpadepay.c:
+	* gst/rtp/gstrtpmpapay.c:
+	* gst/rtp/gstrtpmpvdepay.c:
+	* gst/rtp/gstrtpmpvpay.c:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	* gst/rtp/gstrtpqcelpdepay.c:
+	* gst/rtp/gstrtpqdmdepay.c:
+	* gst/rtp/gstrtpsbcdepay.c:
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsirendepay.c:
+	* gst/rtp/gstrtpspeexdepay.c:
+	* gst/rtp/gstrtpspeexpay.c:
+	* gst/rtp/gstrtpsv3vdepay.c:
+	* gst/rtp/gstrtptheoradepay.c:
+	* gst/rtp/gstrtptheorapay.c:
+	* gst/rtp/gstrtptheorapay.h:
+	* gst/rtp/gstrtputils.c:
+	* gst/rtp/gstrtputils.h:
+	* gst/rtp/gstrtpvorbisdepay.c:
+	* gst/rtp/gstrtpvorbispay.c:
+	* gst/rtp/gstrtpvorbispay.h:
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvrawdepay.c:
+	* gst/rtp/gstrtpvrawpay.c:
+	  rtp: Copy metadata in the (de)payloader, but only the relevant ones
+	  The payloader didn't copy anything so far, the depayloader copied every
+	  possible meta. Let's make it consistent and just copy all metas without
+	  tags or with only the video tag.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751774
+
+2015-08-10 18:20:15 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix small typo in comment
+
+2015-08-10 16:19:18 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* gst/goom2k1/gstgoom.c:
+	  goom2k1/doc: Fixup previous commit
+
+2015-08-10 15:55:19 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* gst/goom2k1/gstgoom.c:
+	* gst/goom2k1/gstgoom.h:
+	  goom2k1/doc: Use GstGoom2k1 namespace
+	  The doc generator isn't happy when we have class name clash. Simply
+	  use it's own namespace.
+
+2015-08-10 17:10:42 +0530  Prashant Gotarne <ps.gotarne@samsung.com>
+
+	* gst/audiofx/audioecho.c:
+	  audioecho: removed unused variable in set_property
+	  unused local variable 'delay' is removed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753450
+
+2015-08-10 12:45:27 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix suboptimal queue iteration code
+
+2015-08-09 17:25:45 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: don't use glib 2.44-only API
+
+2015-07-29 14:14:50 +0100  Alex Ashley <bugzilla@ashley-family.net>
+
+	* gst/isomp4/fourcc.h:
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	* gst/isomp4/qtdemux_types.c:
+	  qtdemux: add support for ISOBMFF Common Encryption
+	  This commit adds support for ISOBMFF Common Encryption (cenc), as
+	  defined in ISO/IEC 23001-7. It uses a GstProtection event to
+	  pass the contents of PSSH boxes to downstream decryptor elements
+	  and attached GstProtectionMeta to each sample.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=705991
+
+2015-08-10 14:13:50 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	  rtph264depay: checking if depay has sps/pps nals before insertion
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753430
+
+2015-08-08 16:44:49 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: fix outdated comment
+	  The default behaviour was changed in the 0.10 -> 1.x
+	  transition, but the comment was not updated.
+
+2015-08-08 17:42:22 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtptheorapay.c:
+	  rtptheorapay: If flushing a packet failed, go out of the loop immediately
+
+2015-08-08 17:41:02 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpvorbispay.c:
+	  rtpvorbispay: If flushing a packet failed, go out of the loop immediately
+
+2015-08-08 17:34:50 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtptheorapay.c:
+	* gst/rtp/gstrtptheorapay.h:
+	  rtptheorapay: Extract pixel format from the ident header to put it into the sampling field of the caps
+	  We always put 4:2:0 into the caps before, which obviously is wrong for 4:2:2
+	  and 4:4:4 formats.
+
+2015-08-06 17:46:13 +0200  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* gst/rtp/gstrtpklvdepay.c:
+	* gst/rtp/gstrtpklvpay.c:
+	  rtpklv(de)pay: add "RTP" in the klass string
+	  GstRTSPMedia uses this classification to detect the real payloader
+	  inside a dynpay bin and asserts if it doesn't find it, therefore
+	  it is required
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753325
+
+2015-08-05 11:13:09 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/rtpaux.c:
+	  tests: rtpaux: use a dynamic pt in the test
+	  1) Tests that using dynamic PT instead of the default ones work
+	  2) If we ever decide to change the codec here we don't need to
+	  worry about change the PT for the default one of the new codec
+	  in the test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=746445
+
+2015-08-05 10:53:15 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtpmanager/gstrtprtxsend.c:
+	  rtprtxsend: print valid type where guint32 is expected
+	  https://bugzilla.gnome.org/show_bug.cgi?id=746445
+
+2015-08-06 11:33:37 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtp/gstrtpL16pay.c:
+	* gst/rtp/gstrtpg722pay.c:
+	* gst/rtp/gstrtpg723pay.c:
+	* gst/rtp/gstrtpg729pay.c:
+	* gst/rtp/gstrtpgsmpay.c:
+	* gst/rtp/gstrtph261pay.c:
+	* gst/rtp/gstrtph263pay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	* gst/rtp/gstrtpmp2tpay.c:
+	* gst/rtp/gstrtpmpapay.c:
+	* gst/rtp/gstrtpmpvpay.c:
+	* gst/rtp/gstrtppcmapay.c:
+	* gst/rtp/gstrtppcmupay.c:
+	  rtppayload: set standard payload type as default
+	  Initialize the PT to the default value of the codec and check if
+	  it is still the default before declaring the pt to be dynamic or
+	  not when setting the caps.
+	  Also use the PT constants from the rtp lib when possible
+	  https://bugzilla.gnome.org/show_bug.cgi?id=747965
+
+2015-07-26 12:07:56 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: store the moof-offset also for push mode
+	  It will be used in some cases for getting the correct offsets
+	  from trun atoms.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2015-07-26 02:09:24 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/atoms.h:
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux_types.h:
+	  qtdemux: handle default-base-is-moof flag
+	  Handle the flag from the tfhd that signals the base offset to
+	  start from the moof atom
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752603
+
+2015-07-29 18:54:35 -0600  Glen Diener <grd@loganmill.net>
+
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-read-common.c:
+	* gst/matroska/matroska-read-common.h:
+	  matroskademux: Preserve forward referenced track tags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752850
+
+2015-08-04 18:07:35 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/rtpaux.c:
+	  tests: rtpaux: fix test failure
+	  The RTP PT for alaw is 8.
+	  Less than 50 packets are received in the length of this test so it
+	  would never drop a buffer or would drop only the last buffer and
+	  it would fail sometimes when the received wouldn't receive the
+	  retransmission packet in time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=746445
+
+2015-08-04 20:59:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpstreamdepay.c:
+	  rtpstreamdepay: Only allow activation in push mode
+	  We need a proper caps event from upstream with the full RTP caps as we can't
+	  create caps ourselves from thin air. Fixes usage of rtpstreamdepay after e.g.
+	  a filesrc or any other element that supports pull mode.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753066
+
+2015-08-04 16:28:17 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  soup: fix typo in translated string
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753240
+
+2015-08-04 12:25:46 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	  rtph264depay: Put the profile and level into the caps
+
+2015-08-04 12:09:12 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	  rtph264depay: Only update the srcpad caps if something else than the codec_data changed
+	  h264parse does the same, let's keep the behaviour consistent. As we now
+	  include the codec_data inside the stream too here, this causes less caps
+	  renegotiation.
+
+2015-08-04 11:48:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	  rtph264depay: PPS replaces and old PPS if it has the same id, independent of SPS id
+	  The spec says:
+	  When a picture parameter set NAL unit with a particular value of
+	  pic_parameter_set_id is received, its content replaces the content of the
+	  previous picture parameter set NAL unit, in decoding order, with the same
+	  value of pic_parameter_set_id (when a previous picture parameter set NAL unit
+	  with the same value of pic_parameter_set_id was present in the bitstream).
+
+2015-08-03 13:45:59 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: remove extra \n at debug message
+
+2015-08-03 13:42:20 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: prevent deadlock when states change too fast
+	  If the GOP is completed, pads have to start gathering for the
+	  next one but it is possible that the the state might go to
+	  COLLECTING_GOP_START and back to WAITING_GOP_COMPLETE before the
+	  thread has a chance to wake up and proceed, leaving it trapped in
+	  the check_completed_gop loop and deadlocking the other threads
+	  waiting for it to advance.
+	  To solve it, this patch also checks that tha input running time
+	  hasn't changed to prevent this scenario.
+
+2015-08-03 17:55:01 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	  rtph264depay: Insert SPS/PPS NALs into the stream
+	  h264parse does the same and this fixes decoding of some streams with 32 SPS
+	  (or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255), but
+	  the field in the codec_data for the number of SPS or PPS is only 5 (or 8) bit.
+	  As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.
+	  This looks like a mistake in the part of the spec about the codec_data.
+
+2015-07-30 11:29:27 +0900  Eunhae Choi <eunhae1.choi@samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: handle empty http proxy string
+	  1) If the system http_proxy environment variable is not set
+	  or set to an empty string, we must not set proxy to avoid
+	  http connection error.
+	  2) In case of proxy property setting, if user want to clear
+	  the proxy setting, they should be able to set it to NULL or
+	  an empty string again, so this is fixed too.
+	  3) Check if the proxy string was parsed correctly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752866
+
+2015-07-29 15:46:20 +0530  Ravi Kiran K N <ravi.kiran@samsung.com>
+
+	* ext/dv/gstdvdemux.c:
+	* ext/dv/gstdvdemux.h:
+	  dvdemux: remove unused variable
+	  Remove unused variable 'framecount' from dvdemux
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753008
+
+2015-07-30 15:32:09 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: assertion error due to wrong condition check
+	  In media to caps function, reserved_keys array is being used for variable i,
+	  leading to GLib-CRITICAL **: g_ascii_strcasecmp: assertion 's1 != NULL' failed
+	  changed it to variable j
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753009
+
+2015-07-30 15:21:20 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/rtp/gstrtpmp4vdepay.c:
+	  rtpmp4vdepay: rtpbuffer is being unref'ed twice
+	  process_rtp_packet doesn't transfer the rtp buffer to mp4v_process_depay
+	  the refernce should not be removed here
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753042
+
+2015-07-29 11:26:46 +0100  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Strip keys from the fmtp that we use internally in our caps
+	  Skip keys from the fmtp, which we already use ourselves for the
+	  caps. Some software is adding random things like clock-rate into
+	  the fmtp, and we would otherwise here set a string-typed clock-rate
+	  in the caps... and thus fail to create valid RTP caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753009
+
+2015-07-29 19:28:33 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Support mpegtsmux as a muxer.
+	  As a fallback, look for a pad template sink_%d on
+	  the muxer when requesting pads, to support mpegtsmux
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752999
+
+2015-06-25 01:35:27 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxpartreader.c:
+	* gst/multifile/gstsplitmuxpartreader.h:
+	  splitmuxsrc: Use a separate lock to delay typefind.
+	  Don't hold the main splitmux part lock over
+	  the parent state change function, as it prevents
+	  posting error messages that happen. Since the purpose
+	  is to prevent typefinding from proceeding, use a
+	  separate mutex just for that.
+
+2015-07-29 13:43:50 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/matroska/matroska-read-common.c:
+	  matroska: fix memory leak
+	  After adding to tag list, key_val is not being free'd
+	  resulting in memory leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752992
+
+2015-07-27 13:34:14 +0900  Manasa Athreya <manasa.athreya@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix 16-bit PCM audio advertised with 'raw ' fourcc
+	  'NONE' and 'raw ' fourcc don't always contain U8 audio, it can
+	  be more bits as well, in which case it's just like 'twos'.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752613
+
+2015-07-24 15:10:05 +0200  Dimitrios Katsaros <patcherwork@gmail.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2: Allow framerate to be large then 100pfs
+	  This limit was arbitrary. We still fixate near 100pfs for compatibility.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752825
+
+2015-07-25 03:25:28 -0400  Olivier Crête <olivier.crete@ocrete.ca>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: Stop without posting error on flushing
+	  This could just be a normal pipeline shutdown.
+
+2015-07-23 15:00:08 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2bufferpool: set GST_BUFFER_COPY_FLAGS to copy flags also
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752618
+
+2015-07-16 18:09:30 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/Makefile.am:
+	* tests/check/elements/.gitignore:
+	* tests/check/elements/matroskademux.c:
+	  tests: add minmal matroskademux test for subtitle output
+	  Some of the subtitle chunks will have embedded
+	  NUL-terminators (last three), some don't (first three),
+	  some will have markup, some won't, some will be valid
+	  UTF-8 (all but last), some won't (last stanza).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752421
+
+2015-07-16 18:49:26 +0300  Dimitrios Christidis <dchristidis@mykolab.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: fix for subtitle buffers with NUL terminators
+	  Commit 45892ec8 created a regression where g_utf8_validate() would fail
+	  if the subtitle buffer had a NUL terminator as part of the data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752421
+
+2015-07-21 13:31:05 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtpvp8depay.c:
+	  rtpvp8depay: Check available bytes before copy
+	  Need to check that the number of bytes we want to copy from the adapter
+	  actually is available and handle the error case gracefully. This error
+	  may happen if malformed packets are received and we don't have a
+	  complete frame.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752663
+
+2015-07-16 09:32:36 +0900  Paul Hyunil <paul.hyunil@lge.com>
+
+	* gst/isomp4/fourcc.h:
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Support subtitle when track subtype is fourcc_subt
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752655
+
+2015-07-20 16:59:40 +0800  Song Bing <b06498@freescale.com>
+
+	* sys/v4l2/gstv4l2bufferpool.c:
+	  v4l2bufferpool: Set timestamp when queue buffer.
+	  Should set timestamp when queue buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752618
+
+2015-07-16 15:12:17 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* tests/check/elements/rtpmux.c:
+	  rtpmux: handle different ssrc's on sinkpads
+	  Do this by not putting the ssrc from the src pads in the caps used to
+	  probe other sinkpads, and then  intersecting with it later.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752491
+
+2015-07-16 17:19:03 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/avi/gstavimux.c:
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-mux.c:
+	* gst/matroska/matroska-parse.c:
+	* gst/matroska/webm-mux.c:
+	  Update mailing list address from sourceforge to freedesktop
+
+2015-07-15 13:44:52 +0300  Dimitrios Christidis <dchristidis@mykolab.com>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: fix trailing '*' displayed with some text subtitles
+	  The subtitle buffer we push out should not include a NUL terminator
+	  as part of the data, we just add such a terminator for safety, but
+	  it should not be included in the buffer size.
+	  A NUL terminator is not valid UTF-8, so checks will fail if it's
+	  included in the size, and the NUL will be replaced by the fallback
+	  character specified when converting, i.e. '*'.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752421
+
+2015-07-15 18:23:05 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* ext/pulse/pulsedeviceprovider.c:
+	* ext/pulse/pulseutil.c:
+	* ext/pulse/pulseutil.h:
+	  pulse: add properties to GstDevice
+	  Add the extra properties we get from pulse to the GstDevice we expose
+	  with the device monitor
+
+2015-07-15 17:20:20 +0530  Ravi Kiran K N <ravi.kiran@samsung.com>
+
+	* gst/audiofx/audioinvert.c:
+	* gst/audiofx/audiowsincband.c:
+	  audiofx: Fix typo in example pipelines
+	  Fix typo in example pipelines of audiowsincband and audioinvert.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752416
+
+2015-04-15 18:27:04 +0200  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: add a "format-location" signal that allows better control over filenames
+	  In certain applications, splitting into files named after a base
+	  location template and an incremental sequence number is not enough.
+	  This signal gives more fine-grained control to the application to
+	  decide how to name the files.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750106
+
+2015-04-15 20:13:27 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	  osxaudiosrc: no resampling on OS X
+	  Unlike Remote IO, AUHAL doesn't have built-in resampling
+	  for sources -- confirmed by Core Audio engineer Doug Wyatt:
+	  http://lists.apple.com/archives/coreaudio-api/2006/Sep/msg00088.html
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743758
+
+2015-04-15 18:29:14 +0300  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	  osxaudiosrc: avoid get_channel_layout
+	  This only produces a warning and serves no purpose.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743758
+
+2015-04-07 15:40:14 +0530  Arun Raghavan <arun@centricular.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	  osxaudio: Avoid making a duplicate structure in caps for mono/stereo case
+	  For 1ch or 2ch devices, we just need to set the caps to allow both
+	  options since CoreAudio will up/downmix appropriately.
+	  Also fixes the condition for the 2ch case to be exact, rather than at
+	  least 2 channels since the downmix will not take place in the >stereo
+	  case.
+
+2015-04-06 16:22:34 +0530  Arun Raghavan <arun@centricular.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudiocommon.c:
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	* sys/osxaudio/gstosxcoreaudioremoteio.c:
+	  osxaudio: Don't set the format on an initialized AudioUnit
+	  We need to initialize the AudioUnit early to be able to probe the
+	  underlying device, but according to the AudioUnitInitialize() and
+	  AudioUnitUninitialize() documentation, format changes should be done
+	  while the AudioUnit is uninitialized. So we explicitly uninitialize the
+	  AudioUnit during a format change and reinitialize it when we're done.
+
+2015-04-06 15:55:59 +0530  Arun Raghavan <arun@centricular.com>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudio.h:
+	  osxaudio: Minor spelling fix (unitialize -> uninitialize)
+
+2015-03-21 20:34:25 +0200  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudio.h:
+	  osxaudio: Fix lockup in _audio_unit_property_listener
+	  _audio_unit_property_listener is called either from a Core Audio thread
+	  or as a result of a Core Audio API (e.g. AudioUnitInitialize)
+	  from our own thread. In the latter case, osxbuf can be already locked
+	  (GStreamer's mutex is not recursive).
+	  We introduce the flag cached_caps_valid and use it instead of nullifying
+	  cached_caps when we cannot lock on osxbuf.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743758
+
+2015-03-12 12:15:12 +0200  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	  osxaudio: Invalidate cached caps on format change
+	  Listen for changes in hardware stream format and channel layout, and
+	  invalidate cached caps (since they contain the preferred caps).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743758
+
+2015-03-09 23:34:06 +0200  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxaudioringbuffer.c:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxaudiosrc.h:
+	* sys/osxaudio/gstosxcoreaudio.c:
+	* sys/osxaudio/gstosxcoreaudio.h:
+	* sys/osxaudio/gstosxcoreaudiocommon.c:
+	* sys/osxaudio/gstosxcoreaudiocommon.h:
+	* sys/osxaudio/gstosxcoreaudiohal.c:
+	* sys/osxaudio/gstosxcoreaudioremoteio.c:
+	  osxaudio: Overhaul of probing caps
+	  - Probing caps is unified between source and sink
+	  - Hardware stream format is now reported as preferred capabilities
+	  (dynamically updated when hardware configuration changes)
+	  - Get hardware channel layout from Remote IO just like from HAL
+	  - More comprehensive mapping between AudioChannelLabel and
+	  GstAudioChannelPosition
+	  - Support for unpositioned channel layouts
+	  - Announce stereo-mono upmixing/downmixing in caps
+	  https://bugzilla.gnome.org/show_bug.cgi?id=743758
+
+2015-03-09 23:15:56 +0200  Ilya Konstantinov <ilya.konstantinov@gmail.com>
+
+	* sys/osxaudio/gstosxcoreaudio.c:
+	  osxaudio: AudioUnitInitialize on open
+	  Call AudioUnitInitialize upon open. Otherwise, we cannot get
+	  (hardware) stream format nor channel layout from the outer scope.
+
+2015-07-12 14:27:15 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpL24depay.c:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpceltdepay.c:
+	* gst/rtp/gstrtpdvdepay.c:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg723depay.c:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg729depay.c:
+	* gst/rtp/gstrtpgsmdepay.c:
+	* gst/rtp/gstrtpgstdepay.c:
+	* gst/rtp/gstrtph261depay.c:
+	* gst/rtp/gstrtph263depay.c:
+	* gst/rtp/gstrtph263pdepay.c:
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpklvdepay.c:
+	* gst/rtp/gstrtpmp1sdepay.c:
+	* gst/rtp/gstrtpmp2tdepay.c:
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmp4gdepay.c:
+	* gst/rtp/gstrtpmp4vdepay.c:
+	* gst/rtp/gstrtpmpadepay.c:
+	* gst/rtp/gstrtpmparobustdepay.c:
+	* gst/rtp/gstrtpmpvdepay.c:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	* gst/rtp/gstrtpqcelpdepay.c:
+	* gst/rtp/gstrtpqdmdepay.c:
+	* gst/rtp/gstrtpsbcdepay.c:
+	* gst/rtp/gstrtpsirendepay.c:
+	* gst/rtp/gstrtpspeexdepay.c:
+	* gst/rtp/gstrtpsv3vdepay.c:
+	* gst/rtp/gstrtptheoradepay.c:
+	* gst/rtp/gstrtpvorbisdepay.c:
+	* gst/rtp/gstrtpvp8depay.c:
+	  rtp: depayloaders: implement process_rtp_packet() vfunc
+	  For more optimised RTP packet handling: means we don't
+	  need to map the input buffer again but can just re-use
+	  the mapping the base class has already done.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750235
+
+2015-05-27 19:19:27 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpvrawdepay.c:
+	  rtpvrawdepay: implement process_rtp_packet() vfunc
+	  For more optimised RTP packet handling: means we don't
+	  need to map the input buffer again but can just re-use
+	  the map the base class has already done.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=750235
+
+2015-07-10 00:13:32 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix indention
+
+2015-07-09 23:59:10 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Always estimate DTS from the current clock time
+	  Estimating it from the RTP time will give us the PTS, so in cases of PTS!=DTS
+	  we would produce wrong DTS. As now the estimated DTS is based on the clock,
+	  don't store it in the jitterbuffer items as it would otherwise be used in the
+	  skew calculations and would influence the results. We only really need the DTS
+	  for timer calculations.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749536
+
+2015-07-09 09:26:09 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/.gitignore:
+	  gitignore: ignore rtph263 test
+
+2015-07-08 23:47:44 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2
+	  Replace static constants with macros to make gcc happy
+	  CC       elements/elements_rtpjitterbuffer-rtpjitterbuffer.o
+	  elements/rtpjitterbuffer.c:387:1: error: initializer element is not constant
+	  static const GstClockTime PCMU_BUF_DURATION = PCMU_BUF_MS * GST_MSECOND;
+	  ^
+	  elements/rtpjitterbuffer.c:388:1: error: initializer element is not constant
+	  static const guint PCMU_BUF_SIZE = 64000 * PCMU_BUF_MS / 1000;
+	  ^
+	  elements/rtpjitterbuffer.c:390:5: error: initializer element is not constant
+	  PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000;
+
+2015-07-08 23:40:45 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: run indent and fix some comments
+	  Fix indent on this file and break some comment lines into two to make
+	  it fit 80 chars per line
+
+2015-07-08 15:02:24 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: rework segment event handling for adaptive streaming
+	  When a new time segment is received upstream is going to restart
+	  with a new atom. Make the neededbytes and todrop variables
+	  reflect that to avoid waiting too much or dropping the
+	  initial bytes that contain the header.
+
+2015-07-08 12:35:55 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: push data from adapter before starting new segment
+	  The adapter might have data remaining from the previous segment,
+	  push it all before clearing the adapter and starting a new segment.
+	  It can accumulate data if it had pushed and got not-linked, returning
+	  immediately without processing all the data. Before starting a new
+	  segment this data should be handled.
+
+2015-07-08 19:59:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Calculate DTS from the clock if we had none for the first packet after a reset
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749536
+
+2015-07-08 21:08:36 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: fix gap-time calculation and remove "late"
+	  The amount of time that is completely expired and not worth waiting for,
+	  is the duration of the packets in the gap (gap * duration) - the
+	  latency (size) of the jitterbuffer (priv->latency_ns). This is the duration
+	  that we make a "multi-lost" packet for.
+	  The "late" concept made some sense in 0.10 as it reflected that a buffer
+	  coming in had not been waited for at all, but had a timestamp that was
+	  outside the jitterbuffer to wait for. With the rewrite of the waiting
+	  (timeout) mechanism in 1.0, this no longer makes any sense, and the
+	  variable no longer reflects anything meaningful (num > 0 is useless,
+	  the duration is what matters)
+	  Fixed up the tests that had been slightly modified in 1.0 to allow faulty
+	  behavior to sneak in, and port some of them to use GstHarness.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738363
+
+2015-06-30 11:21:31 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  Revert "rtpjitterbuffer: Fix expected_dts calc in calculate_expected"
+	  This reverts commit 05bd708fc5e881390fe839803b53144393d95ab0.
+	  The reverted patch is wrong and introduces a regression because there
+	  may still be time to receive some of the packets included in the gap
+	  if they are reordered.
+
+2015-07-07 23:53:02 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: flush samples before adding more from moof
+	  Avoids accumulating all samples from a fragmented stream that could
+	  lead to a 'index-too-big' error once it goes over 50MB of data. It
+	  could reach that before 2h of playback so it doesn't take that long.
+	  As upstream elements are providing data in time format they should
+	  be the ones that have more information about the full media index
+	  and should be able to seek if possible.
+
+2015-07-07 23:56:12 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: rename upstream_newsegment to upstream_format_is_time
+	  upstream_newsegment isn't really clear on what it means, it is set
+	  to TRUE when the upstream element sends a segment in TIME format, so
+	  rename it to be more clear about it.
+	  It is important to know this because it means that upstream has
+	  a notion of time and qtdemux is likely being driven by an upstream
+	  element that is reading from a higher level abstraction than a file,
+	  such as a DASH, MSS or DLNA element.
+
+2015-07-07 21:31:08 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix leak by flushing previous sample info from trak
+	  In fragmented streaming, multiple moov/moof will be parsed and their
+	  previously stored samples array might leak when new values are parsed.
+	  The parse_trak and callees won't free the previously stored values
+	  before parsing the new ones.
+	  In step-by-step, this is what happens:
+	  1) initial moov is parsed, traks as well, streams are created. The
+	  trak doesn't contain samples because they are in the moof's trun
+	  boxes. n_samples is set to 0 while parsing the trak and the samples
+	  array is still NULL.
+	  2) moofs are parsed, and their trun boxes will increase n_samples and
+	  create/extend the samples array
+	  3) At some point a new moov might be sent (bitrate switching, for example)
+	  and parsing the trak will overwrite n_samples with the values from
+	  this trak. If the n_samples is set to 0 qtdemux will assume that
+	  the samples array is NULL and will leak it when a new one is
+	  created for the subsequent moofs.
+	  This patch makes qtdemux properly free previous sample data before
+	  creating new ones and adds an assert to catch future occurrences of
+	  this issue when the code changes.
+
+2015-07-07 16:46:33 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix index size check and debug message
+	  It is allocating samples_count + n_samples, not only n_samples
+
+2015-07-08 17:02:05 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Calculate receive time if we don't have any
+	  This is required to properly schedule packet loss timers and make
+	  sure all our calculations work properly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749536
+
+2015-07-08 15:13:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Handle seqnum gaps in TCP streams without erroring out or overflowing calculations
+	  That is, handle DTS==GST_CLOCK_TIME_NONE correctly.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749536
+
+2015-07-08 20:31:42 +0900  Vineeth T M <vineeth.tm@samsung.com>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: fix event leak
+	  when seek fails in avidemux, event is not being freed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752117
+
+2015-07-08 12:02:22 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtph263depay.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/rtph263.c:
+	  rtph263depay: Make sure payload is large enough
+	  Plus new unit test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752112
+
+2015-07-08 08:59:49 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* gst/rtp/gstrtpklvdepay.c:
+	  rtpklvdepay: fix printf format compiler warning
+	  v_len is of type guint64, but while print the value(16 + len_size + v_len)
+	  G_GSIZE_FORMAT is being used instead of G_GUINT64_FORMAT
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752100
+
+2015-07-07 20:25:47 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	  docs: add new RTP elements to docs
+
+2015-07-07 20:07:31 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/rtp-payloading.c:
+	  tests: rtp-payloading: add basic unit test for KLV payloading
+	  Also make it so that the mtu is always set if specified, not
+	  only in case of the rather weird bufferlist test code path.
+	  This allows us to easily make the payloader fragment a payload
+	  across multiple output packets by setting a small MTU on it.
+
+2015-07-07 19:58:42 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpklvdepay.c:
+	* gst/rtp/gstrtpklvdepay.h:
+	  rtpklvdepay: improve start detection and handle fragmented KLV units
+
+2015-07-05 20:25:10 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpklvdepay.c:
+	* gst/rtp/gstrtpklvdepay.h:
+	  rtp: add SMPTE 336M KLV metadata depayloader
+	  http://tools.ietf.org/html/rfc6597
+
+2014-08-09 10:08:42 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtpklvpay.c:
+	* gst/rtp/gstrtpklvpay.h:
+	  rtp: add SMPTE 336M KLV metadata payloader
+	  http://tools.ietf.org/html/rfc6597
+
+2015-07-07 16:59:20 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/isomp4/atoms.c:
+	* gst/isomp4/atoms.h:
+	* gst/isomp4/atomsrecovery.c:
+	* gst/isomp4/properties.h:
+	* gst/matroska/matroska-mux.c:
+	* gst/rtpmanager/rtpsource.c:
+	  docs: fix "Symbol name not found at the start of the comment block"
+	  Add symbols or change comment into a regular comment.
+
+2015-07-07 16:58:53 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/audioparsers/gstamrparse.h:
+	  docs: remove outdated doc strings
+
+2015-07-03 23:10:40 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	  docs: add missing plugins and ensure master doc is sorted
+
+2015-07-07 15:54:41 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* gst/imagefreeze/gstimagefreeze.c:
+	  Revert "imagefreeze: Remove impossible error condition"
+	  This reverts commit d46631c5c7312ad613397f8238c7a9714ae3ae94.
+	  pad only handle EOS events but not EOS flow, and will push the buffer again
+	  resulting in an assertion error. So we should not handle the buffer
+	  and return EOS flow.
+
+2015-07-07 15:50:50 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpg729depay.c:
+	  rtpg729depay: unmap rtp buffer in error path
+
+2015-07-07 15:48:40 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpg729pay.c:
+	  rtpg729pay: fix buffer leak
+	  The handle_buffer vfunc takes ownership of the input buffer.
+	  Fixes elements/rtp-payloading under valgrind.
+
+2015-07-02 08:52:43 +0200  Tobias Mueller <muelli@cryptobitch.de>
+
+	* gst/goom/goom_core.c:
+	  goom: Initialised variables to remove compiler warnings
+	  goom_core.c: In function 'goom_update':
+	  goom_core.c:685:5: error: 'param2' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	  goom_lines_switch_to (goomInfo->gmline2, mode, param2, amplitude, couleur);
+	  ^
+	  goom_core.c:684:5: error: 'param1' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+	  goom_lines_switch_to (goomInfo->gmline1, mode, param1, amplitude, couleur);
+	  ^
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752053
+
+2015-07-07 09:18:39 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtph261pay.c:
+	  rtph261pay: fix indentation
+
+2015-07-06 19:11:00 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/rtp/gstrtph261pay.c:
+	  rtph261pay: Fix uninitialized variable compiler error
+	  endpos variable does not correctly understand in the
+	  4.6.3 GCC version. So compile error appears when we do
+	  compile rtph261pay using jhbuild.
+	  This patch is fixed the compile error in 4.6.3 GCC version.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751985
+
+2014-11-12 12:08:58 +0100  Jan Alexander Steffens (heftig) <jsteffens@make.tv>
+
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: Handle seek flags properly
+	  Allows for non-keyframe seeks.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738570
+
+2015-02-24 10:50:52 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: avoid looping reading the 'moof' atom forever
+	  It gets stuck if it only finds a moof and no mfra/mfro or moov
+	  atoms. Skip the moof to continue the parsing to have it either
+	  play or error out.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745089
+
+2015-06-26 13:24:17 +0900  Vineeth TM <vineeth.tm@samsung.com>
+
+	* ext/flac/gstflacdec.c:
+	  flacdec: improve error handling
+	  for files which have corrupted header, libflac is not able to
+	  process the metadata properly. We just try to ignore the error
+	  and continue with the processing, since metadata parsing is not
+	  making much of a difference to libflac
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751334
+
+2015-07-06 20:16:38 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* sys/ximage/ximageutil.c:
+	  ximagesrc: add meta transform function
+	  ximage metadata can't be transformed or copied, but provide an empty
+	  transformation function instead of NULL to allow unconditional calling
+	  of metas' transform functions.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751778
+
+2014-06-16 16:14:28 +0200  Stian Selnes <stian.selnes@gmail.com>
+
+	* gst/rtp/gstrtph263pdepay.c:
+	  rtph263pdepay: init debug category
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752012
+
+2014-06-20 10:59:14 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtpvp8depay.c:
+	  rtpv8depay: ignore reserved bit in payload descriptor
+	  Draft 16 of "RTP Payload Format for VP8" states in section 4.2 that:
+	  R: Bit reserved for future use.  MUST be set to zero and MUST be
+	  ignored by the receiver.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751929
+
+2015-07-04 20:56:42 +0200  Stian Selnes <stian@pexip.com>
+
+	* docs/plugins/gst-plugins-good-plugins-docs.sgml:
+	* docs/plugins/gst-plugins-good-plugins-sections.txt:
+	* gst/rtp/gstrtph261depay.c:
+	* gst/rtp/gstrtph261pay.c:
+	  rtph261pay: rtph261depay: Add documentation
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751982
+
+2015-07-03 21:58:14 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f74b2df to 9aed1d7
+
+2015-07-03 14:29:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph261pay.c:
+	  rtph261pay: Fix compiler warning
+	  gstrtph261pay.c: In function 'gst_rtp_h261_pay_class_init':
+	  gstrtph261pay.c:1003:17: error: variable 'gobject_class' set but not used [-Werror=unused-but-set-variable]
+	  GObjectClass *gobject_class;
+
+2015-07-03 14:03:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph261depay.c:
+	  rtph261depay: Let the base class push the buffer so it can deal with the flow return
+
+2015-07-03 14:11:35 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph261pay.c:
+	  rtph261pay: Remove unused adapter
+
+2015-07-03 13:17:24 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpspeexpay.c:
+	  speexpay: Directly attach payload to the output buffer instead of copying it
+
+2015-07-03 13:07:20 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	  sbcpay: Attach payload directly to the output instead of copying
+
+2014-12-01 14:18:40 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/Makefile.am:
+	* gst/rtp/gstrtp.c:
+	* gst/rtp/gstrtph261depay.c:
+	* gst/rtp/gstrtph261depay.h:
+	* gst/rtp/gstrtph261pay.c:
+	* gst/rtp/gstrtph261pay.h:
+	* tests/check/elements/rtp-payloading.c:
+	  rtp: add H.261 RTP payloader and depayloader
+	  Implementation according to RFC 4587.
+	  Payloader create fragments on MB boundaries in order to match MTU size
+	  the best it can. Some decoders/depayloaders in the wild are very strict
+	  about receiving a continuous bit-stream (e.g. no no-op bits between
+	  frames), so the payloader will shift the compressed bit-stream of a
+	  frame to align with the last significant bit of the previous frame.
+	  Depayloader does not try to be fancy in case of packet loss. It simply
+	  drops all packets for a frame if there is a loss, keeping it simple.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751886
+
+2015-07-03 12:18:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpmpvdepay.c:
+	  rtpmpvdepay: Don't forget to unmap the input buffer
+
+2015-07-03 12:14:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpmpvpay.c:
+	  rtpmpvpay: Create buffer lists instead of pushing each buffer individually
+
+2015-07-03 12:03:59 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpmpapay.c:
+	  rtpmpapay: Use buffer lists instead of pushing each fragment individually
+
+2015-07-03 10:51:57 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpmp4apay.c:
+	  rtpmp4apay: Create buffer lists and don't copy payload memory
+
+2015-06-29 16:14:18 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Consider timers len to compare with RTP_MAX_DROPOUT
+	  When there are a lot of small gaps, we can consider that there is
+	  a big gap (too losses) to reset the buffer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751636
+
+2015-06-29 15:53:52 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: If possible, always update the current time before looping over all timers
+	  If we have a clock, update "now" now with the very latest running time we have.
+	  If timers are unscheduled below we otherwise wouldn't update now (it's only updated
+	  when timers expire), and also for the very first loop iteration now would otherwise
+	  always be 0.
+	  Also the time is used for the timeout functions, e.g. to calculate any times
+	  for the next timeouts and we would otherwise pass too old times there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751636
+
+2015-07-02 14:34:57 +0100  Luis de Bethencourt <luis.bg@samsung.com>
+
+	* sys/v4l2/gstv4l2transform.c:
+	  v4l2transform: fix memory leak
+	  tmp needs to be freed before going out of scope in 'done'.
+	  CID #1308954
+
+2015-07-02 12:23:45 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph263ppay.c:
+	  rtph263ppay: Generate buffer lists and attach the payload directly instead of copying it
+
+2015-07-02 09:48:02 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph263pdepay.c:
+	  rtph263pdepay: Simplify code a bit and do less direct memcpy and let GstBuffer do that for us
+
+2015-07-02 09:17:59 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	* gst/rtp/gstrtph263pay.h:
+	  rtph263pay: Stop using an adapter and directly use the buffer
+	  We always pushed one buffer into the adapter, then handled exactly that one
+	  buffer and flushed it from the adapter. Now also don't memcpy() the actual
+	  payload but just attach the input buffer's data to the output buffer.
+	  This code still needs some serious refactoring/rewriting.
+
+2015-07-01 21:57:28 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpgsmpay.c:
+	  rtpgsmpay: Remove non-existing includes for now
+	  git add -p mistake.
+
+2015-07-01 19:29:07 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpgstpay.c:
+	  rtpgstpay: Use the return value of gst_buffer_append()
+
+2015-07-01 19:19:13 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpgsmpay.c:
+	  rtpgsmpay: Attach payload to the output buffer instead of copying it
+
+2015-07-01 17:58:56 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpg729pay.c:
+	  rtpg729pay: Attach payload directly to output buffers instead of copying
+
+2015-07-01 17:43:51 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpg723pay.c:
+	  rtpg723pay: Attach payload buffer to the output instead of copying
+
+2015-07-01 17:30:39 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpdvdepay.c:
+	  rtpdvdepay: Map the output buffer once instead of once every 80 bytes
+
+2015-07-01 21:46:46 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: fix return type of index_entry_offset_search()
+	  It's a compare function and may return a negative value,
+	  so should for correctness and consistency return a signed
+	  integer.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751780
+
+2015-07-01 14:12:57 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: refactor handle_next_buffer
+	  The goal of this patch is making handle_next_buffer function
+	  more readable avoiding unnecesary gotos and adding other
+	  cosmetic changes.
+
+2015-07-01 15:40:25 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpac3pay.c:
+	  rtpac3pay: Attach the payload to the output buffer instead of copying it
+	  Might also want to produce buffer lists here if needed.
+
+2015-07-01 15:38:47 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpsirendepay.c:
+	  rtp: Fix indention
+
+2015-07-01 12:37:11 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/examples/rtp/Makefile.am:
+	* tests/examples/rtp/client-VP8-OPUS.sh:
+	* tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh:
+	  rtp: Add examples with VTS/ATS for VP8/OPUS
+	  Let's have an example with modern codecs.
+
+2015-06-30 18:11:33 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264pay.c:
+	  rtph264pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()
+
+2015-06-30 14:06:20 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpvp8depay.c:
+	  vp8depay: Don't lock/map every non-keyframe buffer twice
+	  Just copy the complete header instead of first looking at the first byte
+	  and then at the remaining 10 bytes.
+
+2015-06-29 16:05:44 +0100  Luis de Bethencourt <luis@debethencourt.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: document fallthrough cases
+	  Pacify coverity and document fallthrough cases in switch statements.
+	  CID #1308948, #1308947, #1308946
+
+2015-06-29 10:36:58 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  Revert "rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout"
+	  This reverts commit 0c21cd7177ea883c710999147ddcedb19004d182.
+	  If we have multiple immediate timers, we want to first handle the one with the
+	  lowest sequence number... which would be broken now.
+	  Instead of this we should just use a GSequence for the timers, and have them
+	  sorted first by timestamp, and for equal timestamps by sequence number. Then
+	  we would always only have to take the very first timer from the list and never
+	  have to look at any others.
+
+2015-06-29 10:14:05 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: If we have an immediate timeout, don't try to find an earlier timeout
+	  If we have lots of such immediate timeouts, we would otherwise have quadratic
+	  runtime in the number of timeouts.
+
+2015-06-19 18:01:03 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/multifile/gstsplitmuxsrc.c:
+	  splitmuxsrc: sticky events are sent automatically from the pad
+	  No need to send them explicitly from the element
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751240
+
+2015-06-19 18:00:40 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/multifile/gstsplitmuxsrc.c:
+	  splitmuxsrc: make sure to push sticky events before adding pad
+	  It allows the caps to be set on the pad before being added for
+	  dynamic autoplugging to work.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751240
+
+2015-06-26 00:05:29 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: Add new ntp-time-source property and deprecate use-pipeline-clock property
+	  Enable to use new ntp-time-source property of rtpbin
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751496
+
+2015-06-25 23:19:58 +0900  Hyunjun Ko <zzoon.ko@samsung.com>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpbin/session: fix description
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751496
+
+2015-06-25 10:57:25 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/imagefreeze/gstimagefreeze.c:
+	* gst/matroska/matroska-demux.c:
+	* tests/examples/shapewipe/shapewipe-example.c:
+	  docs: decodebin2 -> decodebin
+
+2015-06-25 10:47:06 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: update example pipeline
+	  Update reference to decodebin2 to decodebin
+
+2015-06-25 10:45:35 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: remove dead assignments
+	  Values in fields_required and same_buffer are overwritten before used. Removing
+	  assignment
+
+2015-06-25 10:06:07 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/Makefile.am:
+	* ext/mikmod/Makefile.am:
+	* ext/mikmod/README:
+	* ext/mikmod/drv_gst.c:
+	* ext/mikmod/gstmikmod.c:
+	* ext/mikmod/gstmikmod.h:
+	* ext/mikmod/mikmod_reader.c:
+	* ext/mikmod/mikmod_types.c:
+	* ext/mikmod/mikmod_types.h:
+	* m4/Makefile.am:
+	* m4/libmikmod.m4:
+	* win32/MANIFEST:
+	* win32/vs8/libgstmikmod.vcproj:
+	  mikmod: remove ancient unported plugin
+	  This hasn't been touched in 11 years, and
+	  clearly no one's been missing it.
+
+2015-06-23 20:15:13 +0900  Gilbok Lee <gilbok.lee@samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: does not detect orientation
+	  Most files don't contain the values for transposing the coordinates
+	  back to the positive quadrant so qtdemux was ignoring the rotation
+	  tag. To be able to properly handle those files qtdemux will also ignore
+	  the transposing values to only detect the rotation using the values
+	  abde from the transformation matrix:
+	  [a b c]
+	  [d e f]
+	  [g h i]
+	  https://bugzilla.gnome.org/show_bug.cgi?id=738681
+
+2015-06-25 00:04:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
 === release 1.5.2 ===
 
-2015-06-24  Sebastian Dröge <slomo@coaxion.net>
+2015-06-24 23:30:41 +0200  Sebastian Dröge <sebastian@centricular.com>
 
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
 	* configure.ac:
-	  releasing 1.5.2
+	* 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.5.2
 
 2015-06-24 22:56:12 +0200  Sebastian Dröge <sebastian@centricular.com>
 
diff --git a/Makefile.in b/Makefile.in
index 91902bb5adbed8d87a59109546dfd9d477d3b362..de1f3871aaebffe4782828718e65c9adb0a3221a 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -26,7 +26,17 @@
 # set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -90,15 +100,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/win32.mak \
-	$(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak \
-	$(top_srcdir)/common/coverage/lcov.mak \
-	$(top_srcdir)/common/cruft.mak INSTALL NEWS README AUTHORS \
-	ChangeLog $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/configure $(am__configure_deps) \
-	$(srcdir)/config.h.in $(srcdir)/gst-plugins-good.spec.in \
-	ABOUT-NLS $(noinst_HEADERS) COPYING compile config.guess \
-	config.rpath config.sub depcomp install-sh missing ltmain.sh
 subdir = .
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -135,6 +136,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+	$(am__configure_deps) $(noinst_HEADERS) $(am__DIST_COMMON)
 am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(install_sh) -d
@@ -198,6 +201,14 @@ am__define_uniq_tagged_files = \
 ETAGS = etags
 CTAGS = ctags
 CSCOPE = cscope
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/config.h.in \
+	$(srcdir)/gst-plugins-good.spec.in \
+	$(top_srcdir)/common/coverage/lcov.mak \
+	$(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \
+	$(top_srcdir)/common/release.mak \
+	$(top_srcdir)/common/win32.mak ABOUT-NLS AUTHORS COPYING \
+	ChangeLog INSTALL NEWS README compile config.guess \
+	config.rpath config.sub depcomp install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -638,7 +649,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -648,7 +658,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak:
+$(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	$(SHELL) ./config.status --recheck
@@ -874,15 +884,15 @@ dist-xz: distdir
 	$(am__post_remove_distdir)
 
 dist-tarZ: distdir
-	@echo WARNING: "Support for shar distribution archives is" \
-	               "deprecated." >&2
+	@echo WARNING: "Support for distribution archives compressed with" \
+		       "legacy program 'compress' is deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__post_remove_distdir)
 
 dist-shar: distdir
-	@echo WARNING: "Support for distribution archives compressed with" \
-		       "legacy program 'compress' is deprecated." >&2
+	@echo WARNING: "Support for shar distribution archives is" \
+	               "deprecated." >&2
 	@echo WARNING: "It will be removed altogether in Automake 2.0" >&2
 	shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
 	$(am__post_remove_distdir)
@@ -918,18 +928,18 @@ distcheck: dist
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
-	mkdir $(distdir)/_build $(distdir)/_inst
+	mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
 	chmod a-w $(distdir)
 	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
 	  && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \
 	  && am__cwd=`pwd` \
-	  && $(am__cd) $(distdir)/_build \
-	  && ../configure \
+	  && $(am__cd) $(distdir)/_build/sub \
+	  && ../../configure \
 	    $(AM_DISTCHECK_CONFIGURE_FLAGS) \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
-	    --srcdir=.. --prefix="$$dc_install_base" \
+	    --srcdir=../.. --prefix="$$dc_install_base" \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) dvi \
 	  && $(MAKE) $(AM_MAKEFLAGS) check \
@@ -1107,6 +1117,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 win32-debug:
 	@echo; \
diff --git a/NEWS b/NEWS
index 916b1220d68db23916699bd37b33d5d3d2977647..53408b2e9f990f7b7d604652b9e2fb21a1d8818a 100644
--- a/NEWS
+++ b/NEWS
@@ -1,2 +1,2 @@
-This is GStreamer Good Plugins 1.5.2
+This is GStreamer Good Plugins 1.5.90
 
diff --git a/RELEASE b/RELEASE
index a55e172c592ace969a9b413bd2138f5b918c3330..7df98e6d2ee3fe4738790af10b40855ea81c042a 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,17 +1,16 @@
 
-Release notes for GStreamer Good Plugins 1.5.2
+Release notes for GStreamer Good Plugins 1.5.90
 
 
-The GStreamer team is pleased to announce the second release of the unstable
-1.5 release series. The 1.5 release series is adding new features on top of
+The GStreamer team is pleased to announce the first release candidate for the
+stable 1.6 release series. The 1.6 release series is adding new features on top of
 the 1.0, 1.2 and 1.4 series and is part of the API and ABI-stable 1.x release
-series of the GStreamer multimedia framework. The unstable 1.5 release series
-will lead to the stable 1.6 release series in the next weeks, and newly added
-API can still change until that point.
+series of the GStreamer multimedia framework. The final 1.6.0 release is planned
+in the next few days unless any major bugs are found.
 
 
-Binaries for Android, iOS, Mac OS X and Windows will be provided separately
-during the unstable 1.5 release series.
+Binaries for Android, iOS, Mac OS X and Windows will be provided separately by
+the GStreamer project.
 
 
 
@@ -58,26 +57,58 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
 
 Bugs fixed in this release
      
-      * 742917 : v4l2: Allow scaling in the v4l2*convert element
-      * 746146 : v4l2src: Seems to produce invalid or not-supported colorimetry field
-      * 750298 : souphttpsrc: add tls-database property
-      * 750471 : rtspsrc: Add support for TLS client authentication
-      * 750566 : goom: FTBFS: possible uninitialized variables compiler warning
-      * 750567 : rtpvp8depay: FTBFS because of access beyond end of array compiler warning
-      * 750653 : rtpmanager: document units of stats and arguments
-      * 750675 : qtdemux: reverse playback not working
-      * 750747 : splitmuxtest sometimes fails
-      * 750868 : osxaudio: fix latency property query on RemoteIO
-      * 750965 : rtpjitterbuffer: 1. Fix a typing error of comment, 2. Add null check in free_item function
-      * 751164 : rtspsrc does not respect the timeout value in the SETUP reply
-      * 751297 : rtprtxqueue: reverse pending list before pushing buffers
-      * 751298 : flvmux: produced files does not work well with common flash players
-      * 751306 : good plugins: fix some issues found using static analysis tool
-      * 751316 : rtpjitterbuffer : Fix a typing error of comment and the code which is wrong coding style. (trivial cleanup)
-      * 751320 : flvmux: Does not append AVC end of sequence
-      * 751361 : qtmux generates bad output timestamps
-      * 751364 : flacparse: fix possible memory leak
-      * 743338 : gstv4l2bufferpool: handle -EPIPE from DQBUF to signal EOS
+      * 738363 : jitterbuffer: lost-events are broken
+      * 738570 : flvdemux: Fix support for seeking flags
+      * 738681 : qtdemux: does not detect orientation
+      * 739472 : multifilesrc: Lost the ability to start at a different frame by setting index property
+      * 739868 : rtpmanager: rtpjitterbuffer fixes and improvements
+      * 745089 : qtdemux: gets stuck if file only has a moof and no moov
+      * 746445 : rtpaux: Unit test is racy and producing warnings
+      * 747728 : vp8enc: multipass-mode=2 is not working
+      * 747881 : rtpmp4gdepay does not calculate timestamp for RTP packets with multiple Access Units
+      * 747965 : rtppayload: payload type could be inconsistent in some payloader, which have pre-defined pt by RFC standard
+      * 749536 : rtspsrc: handle gap in tcp mode
+      * 750101 : rtspsrc: send the user-agent header
+      * 750106 : splitmuxsink: add a " format-location " signal that allows better control over filenames
+      * 751240 : splitmuxsrc: improve sticky events handling
+      * 751334 : FLAC: memory leak on a specific media file
+      * 751496 : rtspsrc: Add new ntp-time-source property and deprecate use-pipeline-clock property
+      * 751774 : rtp: Copy over metas if possible
+      * 751780 : avidemux: Fix the return type of index_entry_offset_search
+      * 751886 : Add rtph261pay and rtph261depay
+      * 751929 : rtpvp8depay: Ignore reserved bit in payload descriptor
+      * 751982 : rtph261pay: rtph261depay: Add documentation
+      * 751985 : rtph261pay: Fix uninitialized variable compiler error
+      * 752012 : rtph263pdepay: Fix initialization of debug category
+      * 752053 : goom:  Initialised variables to remove compiler warnings
+      * 752073 : Revert " imagefreeze: Remove impossible error condition " 
+      * 752100 : rtpklvdepay: fix build error
+      * 752112 : rtph263depay: Make sure payload is large enough
+      * 752117 : avidemux: fix event leak
+      * 752416 : audiofx: fix typos in example pipelines
+      * 752421 : matroskademux: SRT subtitles with markup are displayed with a trailing asterisk
+      * 752613 : qtdemux: raw 16 bit PCM audio in 'raw ' fourcc not working
+      * 752618 : v4l2bufferpool: Set timestamp when queue buffer
+      * 752655 : qtdemux: support 'subt' subtype for subtitle tracks
+      * 752663 : rtpvp8depay: Check available bytes before copy
+      * 752825 : v4l2: Patch to remove limit on framerate
+      * 752850 : matroskademux: Does not send user-supplied metadata tags from streamable files
+      * 752866 : souphttpsrc: allow empty http proxy string
+      * 752992 : matroska: fix minor tag string leak
+      * 753008 : dvdemux: Remove unused variable
+      * 753009 : rtspsrc: Strip keys from the fmtp that we use internally in our caps
+      * 753042 : rtpmp4vdepay: rtpbuffer is being unref'ed twice
+      * 753066 : rtpstreamdepay: No Caps set error when activating in pull mode
+      * 753240 : souphttpsrc: Typo (occured) in translatable string
+      * 753325 : rtpklv(de)pay: add " RTP " in the klass string
+      * 753430 : rtph264depay: Not working with caps " byte-stream/nal " 
+      * 753450 : audioecho: unused local variable in set_property function
+      * 753490 : audioecho: reallocate buffer on changing max_delay
+      * 753556 : matroska: Remove unused variables
+      * 753670 : directsoundsink: allow specifying audio playback device
+      * 753706 : rtp: some (de)payloaders are missing copying metadata.
+      * 743758 : osxaudiosrc supports only 44100 sample rate on iOS
+      * 679768 : mpegaudioparse, baseparse: fix tag handling
 
 ==== Download ====
 
@@ -114,22 +145,40 @@ subscribe to the gstreamer-devel list.
         
 Contributors to this release
     
+      * Alex Ashley
       * Arun Raghavan
-      * Chris Clayton
+      * Dimitrios Christidis
+      * Dimitrios Katsaros
+      * Dustin Spicuzza
       * Edward Hervey
-      * Enrico Jorns
+      * Eunhae Choi
+      * George Kiagiadakis
+      * Gilbok Lee
+      * Glen Diener
+      * Havard Graff
+      * Hyunjun Ko
       * Ilya Konstantinov
+      * Jan Alexander Steffens (heftig)
       * Jan Schmidt
-      * Jose Antonio Santos Cadenas
+      * Jimmy Ohn
       * Luis de Bethencourt
+      * Manasa Athreya
       * Miguel París Díaz
       * Nicolas Dufresne
-      * Philipp Zabel
-      * Sangkyu Park
+      * Oleksij Rempel
+      * Olivier Crête
+      * Paul Hyunil
+      * Prashant Gotarne
+      * Ramiro Polla
+      * Ravi Kiran K N
       * Sebastian Dröge
+      * Song Bing
       * Stefan Sauer
+      * Stian Selnes
       * Thiago Santos
+      * Tim-Philipp Müller
+      * Tobias Mueller
       * Vineeth T M
       * Vineeth TM
-      * Xavier Claessens
+      * Wim Taymans
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 4cff5332326066d8f25aa5ed6490e94100996129..18f8476176ae95d0bc6610ee20f81a07c208ed91 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.14.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.15 -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@ You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.14'
+[am__api_version='1.15'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.14.1], [],
+m4_if([$1], [1.15], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.14.1])dnl
+[AM_AUTOMAKE_VERSION([1.15])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -78,7 +78,7 @@ _AM_IF_OPTION([no-dependencies],, [_AM_DEPENDENCIES([CCAS])])dnl
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -130,7 +130,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -161,7 +161,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -352,7 +352,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -428,7 +428,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -518,8 +518,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
@@ -593,6 +593,9 @@ END
     AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
   fi
 fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
 ])
 
 dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
@@ -622,7 +625,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -633,7 +636,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -643,7 +646,7 @@ if test x"${install_sh}" != xset; then
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -665,7 +668,7 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -700,7 +703,7 @@ AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -750,7 +753,7 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2013 Free Software Foundation, Inc.
+# Copyright (C) 1997-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -787,7 +790,7 @@ else
 fi
 ])
 
-# Copyright (C) 2003-2013 Free Software Foundation, Inc.
+# Copyright (C) 2003-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -821,7 +824,7 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -850,7 +853,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -897,7 +900,7 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1132,7 +1135,7 @@ for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
 sys.exit(sys.hexversion < minverhex)"
   AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1151,7 +1154,7 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1232,7 +1235,7 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2013 Free Software Foundation, Inc.
+# Copyright (C) 2009-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1292,7 +1295,7 @@ AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2013 Free Software Foundation, Inc.
+# Copyright (C) 2001-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1320,7 +1323,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2013 Free Software Foundation, Inc.
+# Copyright (C) 2006-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1339,7 +1342,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2013 Free Software Foundation, Inc.
+# Copyright (C) 2004-2014 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/common/Makefile.in b/common/Makefile.in
index b3940185deb19057ca4af167c51068038c823f3f..e1fc75bef81c0b840fc8d8ace9a1313b4d620a73 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,8 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ChangeLog \
-	README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -175,6 +184,7 @@ am__define_uniq_tagged_files = \
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(srcdir)/Makefile.in ChangeLog README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -561,7 +571,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu common/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -856,6 +865,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj
index 4ad9786be74f127b606c6d0e51e488f8c49dc7fa..906857c99425b2b61131a7c6cdc188171076f09a 100755
--- a/common/gstdoc-scangobj
+++ b/common/gstdoc-scangobj
@@ -110,6 +110,8 @@ my $old_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites";
 my $new_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites.new";
 my $old_args_filename = "$OUTPUT_DIR/$MODULE.args";
 my $new_args_filename = "$OUTPUT_DIR/$MODULE.args.new";
+my $old_sections_filename = "$OUTPUT_DIR/$MODULE-sections";
+my $new_sections_filename = "$OUTPUT_DIR/$MODULE-sections.new";
 
 my $debug_log="g_message";
 if (!defined($VERBOSE) or $VERBOSE eq "0") {
@@ -437,32 +439,30 @@ const gchar *hierarchy_filename = "$new_hierarchy_filename";
 const gchar *interfaces_filename = "$new_interfaces_filename";
 const gchar *prerequisites_filename = "$new_prerequisites_filename";
 const gchar *args_filename = "$new_args_filename";
+const gchar *sections_filename = "$new_sections_filename";
 
 
 static void output_signals (void);
-static void output_object_signals (FILE *fp,
-				   GType object_type);
-static void output_object_signal (FILE *fp,
-				  const gchar *object_class_name,
+static void output_object_signals (FILE *fp, GType object_type);
+static void output_object_signal (FILE *fp, const gchar *object_class_name,
 				  guint signal_id);
-static const gchar * get_type_name (GType type,
-			            gboolean * is_pointer);
+static const gchar * get_type_name (GType type, gboolean * is_pointer);
 static void output_object_hierarchy (void);
-static void output_hierarchy (FILE *fp,
-			      GType type,
-			      guint level);
+static void output_hierarchy (FILE *fp, GType type, guint level);
 
 static void output_object_interfaces (void);
-static void output_interfaces (FILE *fp,
-			       GType type);
+static void output_interfaces (FILE *fp, GType type);
 
 static void output_interface_prerequisites (void);
-static void output_prerequisites (FILE *fp,
-			          GType type);
+static void output_prerequisites (FILE *fp, GType type);
 
 static void output_args (void);
 static void output_object_args (FILE *fp, GType object_type);
 
+static void output_sections (void);
+static void output_object_section (FILE *fp, GType object_type);
+
+
 int
 main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char *argv[])
 {
@@ -475,6 +475,8 @@ main (G_GNUC_UNUSED int argc, G_GNUC_UNUSED char *argv[])
   output_object_interfaces ();
   output_interface_prerequisites ();
   output_args ();
+  
+  output_sections ();
 
   return 0;
 }
@@ -1570,6 +1572,139 @@ output_object_args (FILE *fp, GType object_type)
     break;
   }
 }
+
+static void
+output_sections (void)
+{
+  FILE *fp;
+  gint i;
+
+  fp = fopen (sections_filename, "w");
+  if (fp == NULL)
+    {
+      g_warning ("Couldn't open output file: %s : %s", sections_filename, g_strerror(errno));
+      return;
+    }
+
+  for (i = 0; object_types[i]; i++) { }
+  qsort (object_types, i, sizeof (GType), compare_types);
+    
+  for (i = 0; object_types[i]; i++) {
+    output_object_section (fp, object_types[i]);
+  }
+
+  fclose (fp);
+}
+
+static gboolean
+find_by_type (GstPluginFeature *f, gpointer data) {
+  return (GST_IS_ELEMENT_FACTORY(f) && 
+      ((GType)data == gst_element_factory_get_element_type (GST_ELEMENT_FACTORY(f))));
+}
+
+static void
+output_object_section (FILE *fp, GType object_type)
+{
+  /* e.g. GstFakeSink */
+  const gchar *tn = g_type_name (object_type);
+  const gchar *cct = &tn[3]; /* cut 'Gst' */
+  gchar *title, *lct, *uct;
+  gint i, j, l = strlen(cct);
+  gpointer class;
+  GParamSpec **properties;
+  guint n_properties;
+  const gchar *ptn;
+  gchar *ptns;
+  GString *strbuf = g_string_new (NULL);
+  GList *fl;
+  GstPluginFeature *f = NULL;
+  gboolean need_unserscore = TRUE, have_abbrev = FALSE;
+  
+  fl = gst_registry_feature_filter (gst_registry_get(), find_by_type, TRUE, 
+    (gpointer)object_type);
+  if (fl) {
+    f = fl->data;
+    g_list_free(fl);
+  }
+  if (f) {
+    title = g_strdup (gst_plugin_feature_get_name(f));
+    g_object_unref (f);
+  } else {
+    title = g_ascii_strdown(cct, -1);
+  }
+  
+  /* turn CamelCase into '_' separated all lower, resulting string is atmost
+   * twice as long, special casing for abbevs like GstTCPClientSink */
+  lct = g_malloc(2*l);
+  for (i = 0, j = 0; i < l; i++) {
+    if (g_ascii_isupper (cct[i])) {
+      if (need_unserscore) {
+        if (i > 0) {
+          lct[j++] = '_';
+        }
+      } else {
+        have_abbrev = TRUE;
+      }
+      lct[j++] = g_ascii_tolower(cct[i]);
+      need_unserscore = FALSE;
+    } else {
+      if (have_abbrev) {
+        lct[j] = lct[j-1];
+        lct[j-1] = '_';
+        j++;
+        have_abbrev = FALSE;
+      }
+      lct[j++] = cct[i];
+      need_unserscore = TRUE;
+    }
+  }
+  lct[j] = '\\0';
+  uct = g_ascii_strup(lct, -1);
+  
+  /* scan properties and find local enums */
+  class = g_type_class_peek (object_type);
+  properties = g_object_class_list_properties (class, &n_properties);
+  qsort (properties, n_properties, sizeof (GParamSpec *), compare_param_specs);
+  for (i = 0; i < n_properties; i++) {
+    GParamSpec *spec = properties[i];
+    if (!(G_IS_PARAM_SPEC_ENUM (spec) || G_IS_PARAM_SPEC_FLAGS (spec))) {
+      continue;
+    }
+    ptn = g_type_name(spec->value_type);
+    // does it start with tn?
+    if (strncmp(tn, ptn, strlen(tn))) {
+      continue;
+    }
+    g_string_append_c(strbuf, '\\n');
+    g_string_append(strbuf, ptn);
+  }
+  ptns = g_string_free (strbuf, FALSE);
+
+  /* later we can remove the SUBSECTION Standart/Private, since we only need to
+   * highlight what is public API */
+  fprintf (fp, "<SECTION>\\n"
+               "<FILE>element-%s</FILE>\\n"
+               "<TITLE>%s</TITLE>\\n"
+               "Gst%s%s\\n"
+               "<SUBSECTION Standard>\\n"
+               "Gst%sClass\\n"
+               "GST_%s\\n"
+               "GST_%s_CAST\\n"
+               "GST_IS_%s\\n"
+               "GST_%s_CLASS\\n"
+               "GST_IS_%s_CLASS\\n"
+               "GST_TYPE_%s\\n"
+               "<SUBSECTION Private>\\n"
+               "gst_%s_get_type\\n"
+               "</SECTION>\\n\\n",
+               title, title, cct, ptns, 
+               cct, uct, uct, uct, uct, uct, uct, lct);
+  g_free (title);
+  g_free (lct);
+  g_free (uct);
+  g_free (ptns);
+}
+
 EOT
 
 close OUTPUT;
@@ -1614,4 +1749,4 @@ if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) {
 #&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0);
 #&UpdateFileIfChanged ($old_signals_filename, $new_signals_filename, 0);
 #&UpdateFileIfChanged ($old_args_filename, $new_args_filename, 0);
-
+#&UpdateFileIfChanged ($old_sections_filename, $new_sections_filename, 0);
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 767c14e91b880f252fa1b44e306bb59043290f4e..292ab6fb39ee5c4a7c44378f47355007e1135ea1 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = common/m4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -115,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -139,6 +149,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -520,7 +531,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/m4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu common/m4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -695,6 +705,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/compile b/compile
index 531136b068ef00e23d38429e6ee9a57d581a0870..a85b723c7e67d46316e85e7422bd5088e9136042 100755
--- a/compile
+++ b/compile
@@ -3,7 +3,7 @@
 
 scriptversion=2012-10-14.11; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
diff --git a/configure b/configure
index 0d65e4ffcfed658f6012fd52d73778b5ec2d1916..123b2d05c9a4d7667f45f593138a2c2c2d0e5405 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.5.2.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.5.90.
 #
 # 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.5.2'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.5.2'
+PACKAGE_VERSION='1.5.90'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.5.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -1943,7 +1943,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.5.2 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.5.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2015,7 +2015,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.5.2:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.5.90:";;
    esac
   cat <<\_ACEOF
 
@@ -2379,7 +2379,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.5.2
+GStreamer Good Plug-ins configure 1.5.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3190,7 +3190,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.5.2, which was
+It was created by GStreamer Good Plug-ins $as_me 1.5.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3686,7 +3686,7 @@ test -n "$target_alias" &&
 
 
 
-am__api_version='1.14'
+am__api_version='1.15'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -3878,7 +3878,7 @@ else
 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
 fi
 
-if test x"${install_sh}" != xset; then
+if test x"${install_sh+set}" != xset; then
   case $am_aux_dir in
   *\ * | *\	*)
     install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
@@ -4172,7 +4172,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.5.2'
+ VERSION='1.5.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4206,8 +4206,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 # <http://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
 mkdir_p='$(MKDIR_P)'
 
-# We need awk for the "check" target.  The system "awk" is bad on
-# some platforms.
+# We need awk for the "check" target (and possibly the TAP driver).  The
+# system "awk" is bad on some platforms.
 # Always define AMTAR for backward compatibility.  Yes, it's still used
 # in the wild :-(  We should find a proper way to deprecate it ...
 AMTAR='$${TAR-tar}'
@@ -4383,9 +4383,9 @@ fi
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.5.2 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.5.2 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.5.2 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.5.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.5.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.5.90 | cut -d'.' -f3)
 
 
 
@@ -4396,7 +4396,7 @@ fi
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.5.2 | cut -d'.' -f4)
+  NANO=$(echo 1.5.90 | cut -d'.' -f4)
 
   if test x"$NANO" = x || test "x$NANO" = "x0" ; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5
@@ -9052,10 +9052,10 @@ fi
 done
 
 
-  GST_CURRENT=502
+  GST_CURRENT=590
   GST_REVISION=0
-  GST_AGE=502
-  GST_LIBVERSION=502:0:502
+  GST_AGE=590
+  GST_LIBVERSION=590:0:590
 
 
 
@@ -13380,8 +13380,8 @@ CC="$lt_save_CC"
 
 
 
-GST_REQ=1.5.2
-GSTPB_REQ=1.5.2
+GST_REQ=1.5.90
+GSTPB_REQ=1.5.90
 
 
 
@@ -28975,7 +28975,7 @@ if test x$USE_DIRECTSOUND = xyes; then
   save_LIBS="$LIBS"
   CFLAGS="$CFLAGS $DIRECTSOUND_CFLAGS"
   LDFLAGS="$LDFLAGS $DIRECTSOUND_LDFLAGS"
-  LIBS="$LIBS -ldsound -ldxerr9 -luser32"
+  LIBS="$LIBS -ldsound -ldxerr9 -luser32 -lole32"
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DirectSound LDFLAGS" >&5
 $as_echo_n "checking for DirectSound LDFLAGS... " >&6; }
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -28991,6 +28991,7 @@ main ()
 
   DXGetErrorString9 (0);
   DirectSoundCreate(NULL, NULL, NULL);
+  CLSIDFromString(NULL, NULL);
 
   ;
   return 0;
@@ -29011,7 +29012,7 @@ $as_echo "$HAVE_DIRECTSOUND" >&6; }
   LIBS=$save_LIBS
 
   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
-        DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
+        DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32 -lole32"
 
 
 
@@ -36394,7 +36395,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.5.2, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.5.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -36460,7 +36461,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.5.2
+GStreamer Good Plug-ins config.status 1.5.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index a8eb50b503d8f1ced0b3ec15ad86388d43b0f27f..dba94a7d81edf9828715410ceecc74eaccd17a4f 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.5.2],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.5.90],[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, 502, 0, 502)
+AS_LIBTOOL(GST, 590, 0, 590)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.5.2
-GSTPB_REQ=1.5.2
+GST_REQ=1.5.90
+GSTPB_REQ=1.5.90
 
 dnl *** autotools stuff ****
 
@@ -388,7 +388,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [
   save_LIBS="$LIBS"
   CFLAGS="$CFLAGS $DIRECTSOUND_CFLAGS"
   LDFLAGS="$LDFLAGS $DIRECTSOUND_LDFLAGS"
-  LIBS="$LIBS -ldsound -ldxerr9 -luser32"
+  LIBS="$LIBS -ldsound -ldxerr9 -luser32 -lole32"
   AC_MSG_CHECKING(for DirectSound LDFLAGS)
   AC_LINK_IFELSE([AC_LANG_PROGRAM([[
 #include <windows.h>
@@ -397,6 +397,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [
 ]], [[
   DXGetErrorString9 (0);
   DirectSoundCreate(NULL, NULL, NULL);
+  CLSIDFromString(NULL, NULL);
 ]])
 ],
     [HAVE_DIRECTSOUND="yes"],
@@ -408,7 +409,7 @@ AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound plug-in], directsoundsink, [
 
   if test "x$HAVE_DIRECTSOUND" = "xyes";  then
     dnl this is much more than we want
-    DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32"
+    DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32 -lole32"
     AC_SUBST(DIRECTSOUND_CFLAGS)
     AC_SUBST(DIRECTSOUND_LDFLAGS)
     AC_SUBST(DIRECTSOUND_LIBS)
diff --git a/depcomp b/depcomp
index 4ebd5b3a2f2d689de95251c9424e2763aa159de5..fc98710e2a1df7159cd72a01ffc011784748c3bc 100755
--- a/depcomp
+++ b/depcomp
@@ -3,7 +3,7 @@
 
 scriptversion=2013-05-30.07; # UTC
 
-# Copyright (C) 1999-2013 Free Software Foundation, Inc.
+# Copyright (C) 1999-2014 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
diff --git a/docs/Makefile.in b/docs/Makefile.in
index d0c321cf76bc6ae8b373966a18dd083cb1bcb338..45e700131f172a9c95c298ad8947dbf3d1978f94 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,8 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = docs
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/version.entities.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = version.entities
@@ -174,6 +183,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/version.entities.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -547,7 +557,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu docs/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -844,6 +853,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 upload:
 	@if test "x$(SUBDIRS)" != x; then for a in $(SUBDIRS); do cd $$a; make upload; cd ..; done; fi
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index 022748ae9edc1989df8a8f33e1c1c951b3637ecc..b31ba5736f373b8ff12eab249e3f71188ebe6008 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -31,7 +31,17 @@
 # This is an include file specifically tuned for building documentation
 # for GStreamer plug-ins
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -95,9 +105,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/upload-doc.mak \
-	$(top_srcdir)/common/gtk-doc-plugins.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am
 subdir = docs/plugins
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -134,6 +141,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -158,6 +166,9 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gtk-doc-plugins.mak \
+	$(top_srcdir)/common/upload-doc.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -832,7 +843,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/plugins/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu docs/plugins/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -841,7 +851,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak:
+$(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1012,6 +1022,8 @@ uninstall-am: uninstall-local
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags-am uninstall uninstall-am uninstall-local
 
+.PRECIOUS: Makefile
+
 html: html-build.stamp
 
 upload: $(FORMATS)
diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml
index 9222fe483858c96794723c9ee478d13f90764c0f..ba5036ce48aac1497614019dd755e0c5083ad4b7 100644
--- a/docs/plugins/gst-plugins-good-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml
@@ -23,10 +23,10 @@
     <xi:include href="xml/element-aasink.xml" />
     <xi:include href="xml/element-ac3parse.xml" />
     <xi:include href="xml/element-agingtv.xml" />
-    <xi:include href="xml/element-alpha.xml" />
-    <xi:include href="xml/element-alphacolor.xml" />
     <xi:include href="xml/element-alawdec.xml" />
     <xi:include href="xml/element-alawenc.xml" />
+    <xi:include href="xml/element-alphacolor.xml" />
+    <xi:include href="xml/element-alpha.xml" />
     <xi:include href="xml/element-amrparse.xml" />
     <xi:include href="xml/element-apedemux.xml" />
     <xi:include href="xml/element-apev2mux.xml" />
@@ -34,15 +34,15 @@
     <xi:include href="xml/element-audioamplify.xml" />
     <xi:include href="xml/element-audiochebband.xml" />
     <xi:include href="xml/element-audiocheblimit.xml" />
+    <xi:include href="xml/element-audiodynamic.xml" />
+    <xi:include href="xml/element-audioecho.xml" />
     <xi:include href="xml/element-audiofirfilter.xml" />
     <xi:include href="xml/element-audioiirfilter.xml" />
-    <xi:include href="xml/element-audiowsincband.xml" />
-    <xi:include href="xml/element-audiowsinclimit.xml" />
-    <xi:include href="xml/element-audioecho.xml" />
-    <xi:include href="xml/element-audiodynamic.xml" />
     <xi:include href="xml/element-audioinvert.xml" />
-    <xi:include href="xml/element-audiopanorama.xml" />
     <xi:include href="xml/element-audiokaraoke.xml" />
+    <xi:include href="xml/element-audiopanorama.xml" />
+    <xi:include href="xml/element-audiowsincband.xml" />
+    <xi:include href="xml/element-audiowsinclimit.xml" />
     <xi:include href="xml/element-auparse.xml" />
     <xi:include href="xml/element-autoaudiosink.xml" />
     <xi:include href="xml/element-autoaudiosrc.xml" />
@@ -68,6 +68,7 @@
     <xi:include href="xml/element-equalizer-10bands.xml" />
     <xi:include href="xml/element-equalizer-3bands.xml" />
     <xi:include href="xml/element-equalizer-nbands.xml" />
+    <xi:include href="xml/element-firfilter-example.xml" />
     <xi:include href="xml/element-flacdec.xml" />
     <xi:include href="xml/element-flacenc.xml" />
     <xi:include href="xml/element-flacparse.xml" />
@@ -77,26 +78,28 @@
     <xi:include href="xml/element-flxdec.xml" />
     <xi:include href="xml/element-gamma.xml" />
     <xi:include href="xml/element-gdkpixbufsink.xml" />
-    <xi:include href="xml/element-goom.xml" />
     <xi:include href="xml/element-goom2k1.xml" />
+    <xi:include href="xml/element-goom.xml" />
     <xi:include href="xml/element-hdv1394src.xml" />
     <xi:include href="xml/element-icydemux.xml" />
     <xi:include href="xml/element-id3demux.xml" />
     <xi:include href="xml/element-id3v2mux.xml" />
+    <xi:include href="xml/element-iirfilter-example.xml" />
     <xi:include href="xml/element-imagefreeze.xml" />
     <xi:include href="xml/element-interleave.xml" />
     <xi:include href="xml/element-ismlmux.xml" />
-    <xi:include href="xml/element-jackaudiosrc.xml" />
     <xi:include href="xml/element-jackaudiosink.xml" />
+    <xi:include href="xml/element-jackaudiosrc.xml" />
     <xi:include href="xml/element-jpegdec.xml" />
     <xi:include href="xml/element-jpegenc.xml" />
+    <xi:include href="xml/element-level-example.xml" />
     <xi:include href="xml/element-level.xml" />
-    <xi:include href="xml/element-matroskamux.xml" />
     <xi:include href="xml/element-matroskademux.xml" />
+    <xi:include href="xml/element-matroskamux.xml" />
     <xi:include href="xml/element-mj2mux.xml" />
     <xi:include href="xml/element-monoscope.xml" />
-    <xi:include href="xml/element-mpegaudioparse.xml" />
     <xi:include href="xml/element-mp4mux.xml" />
+    <xi:include href="xml/element-mpegaudioparse.xml" />
     <xi:include href="xml/element-mulawdec.xml" />
     <xi:include href="xml/element-mulawenc.xml" />
     <xi:include href="xml/element-multifilesink.xml" />
@@ -117,23 +120,25 @@
     <xi:include href="xml/element-progressreport.xml" />
     <xi:include href="xml/element-pulsesink.xml" />
     <xi:include href="xml/element-pulsesrc.xml" />
-    <xi:include href="xml/element-quarktv.xml" />
     <xi:include href="xml/element-qtdemux.xml" />
-    <xi:include href="xml/element-qtmux.xml" />
     <xi:include href="xml/element-qtmoovrecover.xml" />
+    <xi:include href="xml/element-qtmux.xml" />
+    <xi:include href="xml/element-quarktv.xml" />
     <xi:include href="xml/element-radioactv.xml" />
     <xi:include href="xml/element-revtv.xml" />
     <xi:include href="xml/element-rganalysis.xml" />
     <xi:include href="xml/element-rglimiter.xml" />
     <xi:include href="xml/element-rgvolume.xml" />
     <xi:include href="xml/element-rippletv.xml" />
-    <xi:include href="xml/element-rtpdec.xml" />
     <xi:include href="xml/element-rtpac3depay.xml" />
     <xi:include href="xml/element-rtpac3pay.xml" />
     <xi:include href="xml/element-rtpamrdepay.xml" />
     <xi:include href="xml/element-rtpamrpay.xml" />
+    <xi:include href="xml/element-rtpbin.xml" />
     <xi:include href="xml/element-rtpbvdepay.xml" />
     <xi:include href="xml/element-rtpbvpay.xml" />
+    <xi:include href="xml/element-rtph261depay.xml" />
+    <xi:include href="xml/element-rtph261pay.xml" />
     <xi:include href="xml/element-rtpL16depay.xml" />
     <xi:include href="xml/element-rtpL16pay.xml" />
     <xi:include href="xml/element-rtpj2kpay.xml" />
@@ -141,36 +146,49 @@
     <xi:include href="xml/element-rtpsbcpay.xml" />
     <xi:include href="xml/element-rtspsrc.xml" />
     <xi:include href="xml/element-rtpbin.xml" />
+    <xi:include href="xml/element-rtpdec.xml" />
+    <xi:include href="xml/element-rtpdtmfdepay.xml" />
     <xi:include href="xml/element-rtpdtmfmux.xml" />
     <xi:include href="xml/element-rtpdtmfsrc.xml" />
+    <xi:include href="xml/element-rtpj2kpay.xml" />
     <xi:include href="xml/element-rtpjitterbuffer.xml" />
+    <xi:include href="xml/element-rtpjpegpay.xml" />
+    <xi:include href="xml/element-rtpklvdepay.xml" />
+    <xi:include href="xml/element-rtpklvpay.xml" />
+    <xi:include href="xml/element-rtpL16depay.xml" />
+    <xi:include href="xml/element-rtpL16pay.xml" />
     <xi:include href="xml/element-rtpmux.xml" />
     <xi:include href="xml/element-rtpptdemux.xml" />
+    <xi:include href="xml/element-rtprtxreceive.xml" />
+    <xi:include href="xml/element-rtprtxsend.xml" />
+    <xi:include href="xml/element-rtpsbcpay.xml" />
     <xi:include href="xml/element-rtpsession.xml" />
     <xi:include href="xml/element-rtpssrcdemux.xml" />
-    <xi:include href="xml/element-rtprtxsend.xml" />
-    <xi:include href="xml/element-rtprtxreceive.xml" />
+    <xi:include href="xml/element-rtspsrc.xml" />
     <xi:include href="xml/element-sbcparse.xml" />
     <xi:include href="xml/element-scaletempo.xml" />
     <xi:include href="xml/element-shagadelictv.xml" />
     <xi:include href="xml/element-shapewipe.xml" />
     <xi:include href="xml/element-shout2send.xml" />
-    <xi:include href="xml/element-smpte.xml" />
+    <xi:include href="xml/element-smokedec.xml" />
+    <xi:include href="xml/element-smokeenc.xml" />
     <xi:include href="xml/element-smptealpha.xml" />
+    <xi:include href="xml/element-smpte.xml" />
     <xi:include href="xml/element-souphttpsrc.xml" />
+    <xi:include href="xml/element-spectrum-example.xml" />
     <xi:include href="xml/element-spectrum.xml" />
-    <xi:include href="xml/element-speexenc.xml" />
     <xi:include href="xml/element-speexdec.xml" />
+    <xi:include href="xml/element-speexenc.xml" />
     <xi:include href="xml/element-splitfilesrc.xml" />
-    <xi:include href="xml/element-splitmuxsrc.xml" />
     <xi:include href="xml/element-splitmuxsink.xml" />
+    <xi:include href="xml/element-splitmuxsrc.xml" />
     <xi:include href="xml/element-streaktv.xml" />
     <xi:include href="xml/element-taginject.xml" />
-    <xi:include href="xml/element-udpsrc.xml" />
     <xi:include href="xml/element-udpsink.xml" />
-    <xi:include href="xml/element-v4l2src.xml" />
-    <xi:include href="xml/element-v4l2sink.xml" />
+    <xi:include href="xml/element-udpsrc.xml" />
     <xi:include href="xml/element-v4l2radio.xml" />
+    <xi:include href="xml/element-v4l2sink.xml" />
+    <xi:include href="xml/element-v4l2src.xml" />
     <xi:include href="xml/element-vertigotv.xml" />
     <xi:include href="xml/element-videobalance.xml" />
     <xi:include href="xml/element-videobox.xml" />
@@ -180,8 +198,8 @@
     <xi:include href="xml/element-vp8dec.xml" />
     <xi:include href="xml/element-vp8enc.xml" />
     <xi:include href="xml/element-warptv.xml" />
-    <xi:include href="xml/element-wavenc.xml" />
     <xi:include href="xml/element-waveformsink.xml" />
+    <xi:include href="xml/element-wavenc.xml" />
     <xi:include href="xml/element-wavpackdec.xml" />
     <xi:include href="xml/element-wavpackenc.xml" />
     <xi:include href="xml/element-wavpackparse.xml" />
@@ -196,10 +214,11 @@
     <xi:include href="xml/plugin-1394.xml" />
     <xi:include href="xml/plugin-aasink.xml" />
     <xi:include href="xml/plugin-alaw.xml" />
-    <xi:include href="xml/plugin-alpha.xml" />
     <xi:include href="xml/plugin-alphacolor.xml" />
+    <xi:include href="xml/plugin-alpha.xml" />
     <xi:include href="xml/plugin-apetag.xml" />
     <xi:include href="xml/plugin-audiofx.xml" />
+    <xi:include href="xml/plugin-audioparsers.xml" />
     <xi:include href="xml/plugin-auparse.xml" />
     <xi:include href="xml/plugin-autodetect.xml" />
     <xi:include href="xml/plugin-avi.xml" />
@@ -211,14 +230,14 @@
     <xi:include href="xml/plugin-directsound.xml" />
     <xi:include href="xml/plugin-dtmf.xml" />
     <xi:include href="xml/plugin-dv.xml" />
-    <xi:include href="xml/plugin-equalizer.xml" />
     <xi:include href="xml/plugin-effectv.xml" />
+    <xi:include href="xml/plugin-equalizer.xml" />
     <xi:include href="xml/plugin-flac.xml" />
     <xi:include href="xml/plugin-flv.xml" />
     <xi:include href="xml/plugin-flxdec.xml" />
     <xi:include href="xml/plugin-gdkpixbuf.xml" />
-    <xi:include href="xml/plugin-goom.xml" />
     <xi:include href="xml/plugin-goom2k1.xml" />
+    <xi:include href="xml/plugin-goom.xml" />
     <xi:include href="xml/plugin-icydemux.xml" />
     <xi:include href="xml/plugin-id3demux.xml" />
     <xi:include href="xml/plugin-imagefreeze.xml" />
@@ -240,8 +259,8 @@
     <xi:include href="xml/plugin-png.xml" />
     <xi:include href="xml/plugin-pulseaudio.xml" />
     <xi:include href="xml/plugin-replaygain.xml" />
-    <xi:include href="xml/plugin-rtp.xml" />
     <xi:include href="xml/plugin-rtpmanager.xml" />
+    <xi:include href="xml/plugin-rtp.xml" />
     <xi:include href="xml/plugin-rtsp.xml" />
     <xi:include href="xml/plugin-shapewipe.xml" />
     <xi:include href="xml/plugin-shout2send.xml" />
diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt
index 7a9dcc82f1366abfb265d826db3fe0df9d35ff8e..fb55d0017c2349ff494a40cd3549d54c8a6a9747 100644
--- a/docs/plugins/gst-plugins-good-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-good-plugins-sections.txt
@@ -889,15 +889,15 @@ gst_goom_get_type
 <SECTION>
 <FILE>element-goom2k1</FILE>
 <TITLE>goom2k1</TITLE>
-GstGoom
+GstGoom2k1
 <SUBSECTION Standard>
-GstGoomClass
-GOOM_SAMPLES
-GST_GOOM
-GST_IS_GOOM
-GST_TYPE_GOOM
-GST_GOOM_CLASS
-GST_IS_GOOM_CLASS
+GstGoomClass2k1
+GOOM2K1_SAMPLES
+GST_GOOM2K1
+GST_IS_GOOM2K1
+GST_TYPE_GOOM2K1
+GST_GOOM2K1_CLASS
+GST_IS_GOOM2K1_CLASS
 </SECTION>
 
 <SECTION>
@@ -1744,6 +1744,68 @@ gst_rtp_bv_pay_plugin_init
 gst_rtp_bv_pay_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtph261depay</FILE>
+<TITLE>rtph261depay</TITLE>
+GstRtpH261Depay
+<SUBSECTION Standard>
+GstRtpH261DepayClass
+GST_RTP_H261_DEPAY
+GST_IS_RTP_H261_DEPAY
+GST_TYPE_RTP_H261_DEPAY
+GST_RTP_H261_DEPAY_CLASS
+GST_IS_RTP_H261_DEPAY_CLASS
+gst_rtp_h261_depay_plugin_init
+gst_rtp_h261_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph261pay</FILE>
+<TITLE>rtph261pay</TITLE>
+GstRtpH261Pay
+<SUBSECTION Standard>
+GstRtpH261PayClass
+GST_RTP_H261_PAY
+GST_IS_RTP_H261_PAY
+GST_TYPE_RTP_H261_PAY
+GST_RTP_H261_PAY_CLASS
+GST_IS_RTP_H261_PAY_CLASS
+gst_rtp_h261_pay_plugin_init
+gst_rtp_h261_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpklvdepay</FILE>
+<TITLE>rtpklvdepay</TITLE>
+GstRtpKlvDepay
+<SUBSECTION Standard>
+GstRtpKlvDepayClass
+GST_RTP_KLV_DEPAY
+GST_RTP_KLV_DEPAY_CAST
+GST_IS_RTP_KLV_DEPAY
+GST_RTP_KLV_DEPAY_CLASS
+GST_IS_RTP_KLV_DEPAY_CLASS
+GST_TYPE_RTP_KLV_DEPAY
+<SUBSECTION Private>
+gst_rtp_klv_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpklvpay</FILE>
+<TITLE>rtpklvpay</TITLE>
+GstRtpKlvPay
+<SUBSECTION Standard>
+GstRtpKlvPayClass
+GST_RTP_KLV_PAY
+GST_RTP_KLV_PAY_CAST
+GST_IS_RTP_KLV_PAY
+GST_RTP_KLV_PAY_CLASS
+GST_IS_RTP_KLV_PAY_CLASS
+GST_TYPE_RTP_KLV_PAY
+<SUBSECTION Private>
+gst_rtp_klv_pay_get_type
+</SECTION>
+
 <SECTION>
 <FILE>element-rtpL16depay</FILE>
 <TITLE>rtpL16depay</TITLE>
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index 73cf080a0c47d17c9be143c8368d44a45cc4aeb6..a9f189c83040ab75d93f3d9d2db832d9f7de615c 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -994,7 +994,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Use pipeline clock</NICK>
-<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</BLURB>
+<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages(DEPRECATED: Use ntp-time-source property).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -1048,6 +1048,26 @@
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstRTSPSrc::ntp-time-source</NAME>
+<TYPE>GstRTSPSrcNtpTimeSource</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>NTP Time Source</NICK>
+<BLURB>NTP time source for RTCP packets.</BLURB>
+<DEFAULT>NTP time based on realtime clock</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRTSPSrc::user-agent</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>User Agent</NICK>
+<BLURB>The User-Agent string to send to the server.</BLURB>
+<DEFAULT>"GStreamer/1.5.90"</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRTPDec::skip</NAME>
 <TYPE>gint</TYPE>
@@ -4308,6 +4328,16 @@
 <DEFAULT></DEFAULT>
 </ARG>
 
+<ARG>
+<NAME>GstSoupHTTPSrc::method</NAME>
+<TYPE>gchar*</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>HTTP method</NICK>
+<BLURB>The HTTP method to use (GET, HEAD, OPTIONS, etc).</BLURB>
+<DEFAULT>NULL</DEFAULT>
+</ARG>
+
 <ARG>
 <NAME>GstRTPDVPay::mode</NAME>
 <TYPE>GstDVPayMode</TYPE>
@@ -21344,7 +21374,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Use pipeline clock</NICK>
-<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-source property).</BLURB>
+<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -21674,7 +21704,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Use pipeline clock</NICK>
-<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-source property).</BLURB>
+<BLURB>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property).</BLURB>
 <DEFAULT>FALSE</DEFAULT>
 </ARG>
 
@@ -23904,7 +23934,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Multipass Cache File</NICK>
-<BLURB>Multipass cache file.</BLURB>
+<BLURB>Multipass cache file. If stream caps reinited, multiple files will be created: file, file.1, file.2, ... and so on.</BLURB>
 <DEFAULT>"multipass.cache"</DEFAULT>
 </ARG>
 
@@ -24814,7 +24844,7 @@
 <RANGE></RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>Multipass Cache File</NICK>
-<BLURB>Multipass cache file.</BLURB>
+<BLURB>Multipass cache file. If stream caps reinited, multiple files will be created: file, file.1, file.2, ... and so on.</BLURB>
 <DEFAULT>"multipass.cache"</DEFAULT>
 </ARG>
 
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index c259c7983da537589092802be31dda7825f71e24..7f4bd0fe42b289400f42b8e7f757f1d514fd5a25 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -19,16 +19,16 @@ GObject
         GstV4l2DeviceProvider
       GstElement
         Gst3GPPMux
-        GstALawDec
-        GstALawEnc
         GstAsteriskh263
         GstAuParse
         GstAudioDecoder
+          GstALawDec
           GstFlacDec
           GstMuLawDec
           GstSpeexDec
           GstWavpackDec
         GstAudioEncoder
+          GstALawEnc
           GstFlacEnc
           GstMuLawEnc
           GstSpeexEnc
@@ -197,11 +197,13 @@ GObject
           GstRtpG726Depay
           GstRtpG729Depay
           GstRtpGSTDepay
+          GstRtpH261Depay
           GstRtpH263Depay
           GstRtpH263PDepay
           GstRtpH264Depay
           GstRtpJ2KDepay
           GstRtpJPEGDepay
+          GstRtpKlvDepay
           GstRtpL16Depay
           GstRtpL24Depay
           GstRtpMP1SDepay
@@ -245,11 +247,13 @@ GObject
           GstRtpAMRPay
           GstRtpCELTPay
           GstRtpGSTPay
+          GstRtpH261Pay
           GstRtpH263PPay
           GstRtpH263Pay
           GstRtpH264Pay
           GstRtpJ2KPay
           GstRtpJPEGPay
+          GstRtpKlvPay
           GstRtpMP4APay
           GstRtpMP4GPay
           GstRtpMP4VPay
diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces
index 9652cb7a7aab7a1ac202a706a6696a0378a5d58a..fc7edd0ebe06e5becd4af9b0bee2da0bcb467c1b 100644
--- a/docs/plugins/gst-plugins-good-plugins.interfaces
+++ b/docs/plugins/gst-plugins-good-plugins.interfaces
@@ -2,6 +2,7 @@ GSocket GInitable
 GdkPixbuf GIcon
 GdkPixbuf GIcon GLoadableIcon
 Gst3GPPMux GstTagSetter GstTagXmpWriter
+GstALawEnc GstPreset
 GstApev2Mux GstTagSetter
 GstAspectRatioCrop GstChildProxy
 GstAudioEncoder GstPreset
diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals
index ac5d16513ef507c9b3893d9f75f3606494de725b..25d0c51d2919d4a12713b21cefb65a57a30900e4 100644
--- a/docs/plugins/gst-plugins-good-plugins.signals
+++ b/docs/plugins/gst-plugins-good-plugins.signals
@@ -789,3 +789,11 @@ GstRTSPSrc *gstrtspsrc
 guint  arg1
 </SIGNAL>
 
+<SIGNAL>
+<NAME>GstSplitMuxSink::format-location</NAME>
+<RETURNS>gchar*</RETURNS>
+<FLAGS>l</FLAGS>
+GstSplitMuxSink *gstsplitmuxsink
+guint  arg1
+</SIGNAL>
+
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index 61651a4bc903853fd88922de3136b5dd19bb65bd..9fc95d95a9bdbb8087dd9c4ba3e810759db6f22d 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -39,16 +39,16 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-agingtv.html">agingtv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alpha.html">alpha</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawdec.html">alawdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alphacolor.html">alphacolor</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawenc.html">alawenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawdec.html">alawdec</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alphacolor.html">alphacolor</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawenc.html">alawenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alpha.html">alpha</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-amrparse.html">amrparse</a></span><span class="refpurpose"> — AMR parser</span>
@@ -72,31 +72,31 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-audiocheblimit.html">audiocheblimit</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiofirfilter.html">audiofirfilter</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiodynamic.html">audiodynamic</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioiirfilter.html">audioiirfilter</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioecho.html">audioecho</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsincband.html">audiowsincband</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiofirfilter.html">audiofirfilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsinclimit.html">audiowsinclimit</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioiirfilter.html">audioiirfilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioecho.html">audioecho</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioinvert.html">audioinvert</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiodynamic.html">audiodynamic</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiokaraoke.html">audiokaraoke</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioinvert.html">audioinvert</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiopanorama.html">audiopanorama</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiopanorama.html">audiopanorama</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsincband.html">audiowsincband</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiokaraoke.html">audiokaraoke</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsinclimit.html">audiowsinclimit</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-auparse.html">auparse</a></span><span class="refpurpose"></span>
@@ -201,10 +201,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom2k1.html">goom2k1</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom2k1.html">goom2k1</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-hdv1394src.html">hdv1394src</a></span><span class="refpurpose"></span>
@@ -228,10 +228,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-ismlmux.html">ismlmux</a></span><span class="refpurpose"> — Muxer for ISML smooth streaming (.isml) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosrc.html">jackaudiosrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosink.html">jackaudiosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosink.html">jackaudiosink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosrc.html">jackaudiosrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-jpegdec.html">jpegdec</a></span><span class="refpurpose"></span>
@@ -243,10 +243,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-level.html">level</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskamux.html">matroskamux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskademux.html">matroskademux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskademux.html">matroskademux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskamux.html">matroskamux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mj2mux.html">mj2mux</a></span><span class="refpurpose"> — Muxer for Motion JPEG-2000 (.mj2) files</span>
@@ -255,10 +255,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-monoscope.html">monoscope</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mp4mux.html">mp4mux</a></span><span class="refpurpose"> — Muxer for ISO MPEG-4 (.mp4) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-mp4mux.html">mp4mux</a></span><span class="refpurpose"> — Muxer for ISO MPEG-4 (.mp4) files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mulawdec.html">mulawdec</a></span><span class="refpurpose"></span>
@@ -321,16 +321,16 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-pulsesrc.html">pulsesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-quarktv.html">quarktv</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmoovrecover.html">qtmoovrecover</a></span><span class="refpurpose"> — Utility element for recovering unfinished quicktime files</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmux.html">qtmux</a></span><span class="refpurpose"> — Muxer for quicktime(.mov) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmoovrecover.html">qtmoovrecover</a></span><span class="refpurpose"> — Utility element for recovering unfinished quicktime files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-quarktv.html">quarktv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-radioactv.html">radioactv</a></span><span class="refpurpose"></span>
@@ -351,9 +351,6 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rippletv.html">rippletv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -366,12 +363,21 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph261depay.html">rtph261depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph261pay.html">rtph261pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -393,31 +399,61 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfdepay.html">rtpdtmfdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvdepay.html">rtpklvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvpay.html">rtpklvpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"></span>
@@ -435,32 +471,38 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-shout2send.html">shout2send</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smokedec.html">smokedec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smokeenc.html">smokeenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-smptealpha.html">smptealpha</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-souphttpsrc.html">souphttpsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-spectrum.html">spectrum</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexenc.html">speexenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexdec.html">speexdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexdec.html">speexdec</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexenc.html">speexenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-splitfilesrc.html">splitfilesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsrc.html">splitmuxsrc</a></span><span class="refpurpose"> — Split Demuxer bin that recombines files created by
-the splitmuxsink element.</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsink.html">splitmuxsink</a></span><span class="refpurpose"> — Muxer wrapper for splitting output stream by size or time</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsink.html">splitmuxsink</a></span><span class="refpurpose"> — Muxer wrapper for splitting output stream by size or time</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsrc.html">splitmuxsrc</a></span><span class="refpurpose"> — Split Demuxer bin that recombines files created by
+the splitmuxsink element.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-streaktv.html">streaktv</a></span><span class="refpurpose"></span>
@@ -469,19 +511,19 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-taginject.html">taginject</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsrc.html">udpsrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsrc.html">udpsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2src.html">v4l2src</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2radio.html">v4l2radio</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2sink.html">v4l2sink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2radio.html">v4l2radio</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2src.html">v4l2src</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-vertigotv.html">vertigotv</a></span><span class="refpurpose"></span>
@@ -511,10 +553,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-warptv.html">warptv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-wavenc.html">wavenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-waveformsink.html">waveformsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-waveformsink.html">waveformsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-wavenc.html">wavenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-wavpackdec.html">wavpackdec</a></span><span class="refpurpose"></span>
@@ -538,6 +580,588 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-y4menc.html">y4menc</a></span><span class="refpurpose"></span>
 </dt>
 </dl></div>
+<pre class="programlisting">
+/* GStreamer
+ * Copyright (C) 2009 Sebastian Droege &lt;sebastian.droege@collabora.co.uk&gt;
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/* This small sample application creates a bandpass FIR filter
+ * by transforming the frequency response to the filter kernel.
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (&gt;= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include &lt;string.h&gt;
+#include &lt;math.h&gt;
+
+#include &lt;gst/gst.h&gt;
+#include &lt;gst/fft/gstfftf64.h&gt;
+
+static gboolean
+on_message (GstBus * bus, GstMessage * message, gpointer user_data)
+{
+  GMainLoop *loop = (GMainLoop *) user_data;
+
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_ERROR:
+      g_error ("Got ERROR");
+      g_main_loop_quit (loop);
+      break;
+    case GST_MESSAGE_WARNING:
+      g_warning ("Got WARNING");
+      g_main_loop_quit (loop);
+      break;
+    case GST_MESSAGE_EOS:
+      g_main_loop_quit (loop);
+      break;
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static void
+on_rate_changed (GstElement * element, gint rate, gpointer user_data)
+{
+  GValueArray *va;
+  GValue v = { 0, };
+  GstFFTF64 *fft;
+  GstFFTF64Complex frequency_response[17];
+  gdouble tmp[32];
+  gdouble filter_kernel[32];
+  guint i;
+
+  /* Create the frequency response: zero outside
+   * a small frequency band */
+  for (i = 0; i &lt; 17; i++) {
+    if (i &lt; 5 || i &gt; 11)
+      frequency_response[i].r = 0.0;
+    else
+      frequency_response[i].r = 1.0;
+
+    frequency_response[i].i = 0.0;
+  }
+
+  /* Calculate the inverse FT of the frequency response */
+  fft = gst_fft_f64_new (32, TRUE);
+  gst_fft_f64_inverse_fft (fft, frequency_response, tmp);
+  gst_fft_f64_free (fft);
+
+  /* Shift the inverse FT of the frequency response by 16,
+   * i.e. the half of the kernel length to get the
+   * impulse response. See http://www.dspguide.com/ch17/1.htm
+   * for more information.
+   */
+  for (i = 0; i &lt; 32; i++)
+    filter_kernel[i] = tmp[(i + 16) % 32];
+
+  /* Apply the hamming window to the impulse response to get
+   * a better result than given from the rectangular window
+   */
+  for (i = 0; i &lt; 32; i++)
+    filter_kernel[i] *= (0.54 - 0.46 * cos (2 * G_PI * i / 32));
+
+  va = g_value_array_new (1);
+
+  g_value_init (&amp;v, G_TYPE_DOUBLE);
+  for (i = 0; i &lt; 32; i++) {
+    g_value_set_double (&amp;v, filter_kernel[i]);
+    g_value_array_append (va, &amp;v);
+    g_value_reset (&amp;v);
+  }
+  g_object_set (G_OBJECT (element), "kernel", va, NULL);
+  /* Latency is 1/2 of the kernel length for this method of
+   * calculating a filter kernel from the frequency response
+   */
+  g_object_set (G_OBJECT (element), "latency", (gint64) (32 / 2), NULL);
+  g_value_array_free (va);
+}
+
+gint
+main (gint argc, gchar * argv[])
+{
+  GstElement *pipeline, *src, *filter, *conv, *sink;
+  GstBus *bus;
+  GMainLoop *loop;
+
+  gst_init (NULL, NULL);
+
+  pipeline = gst_element_factory_make ("pipeline", NULL);
+
+  src = gst_element_factory_make ("audiotestsrc", NULL);
+  g_object_set (G_OBJECT (src), "wave", 5, NULL);
+
+  filter = gst_element_factory_make ("audiofirfilter", NULL);
+  g_signal_connect (G_OBJECT (filter), "rate-changed",
+      G_CALLBACK (on_rate_changed), NULL);
+
+  conv = gst_element_factory_make ("audioconvert", NULL);
+
+  sink = gst_element_factory_make ("autoaudiosink", NULL);
+  g_return_val_if_fail (sink != NULL, -1);
+
+  gst_bin_add_many (GST_BIN (pipeline), src, filter, conv, sink, NULL);
+  if (!gst_element_link_many (src, filter, conv, sink, NULL)) {
+    g_error ("Failed to link elements");
+    return -2;
+  }
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_signal_watch (bus);
+  g_signal_connect (G_OBJECT (bus), "message", G_CALLBACK (on_message), loop);
+  gst_object_unref (GST_OBJECT (bus));
+
+  if (gst_element_set_state (pipeline,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) {
+    g_error ("Failed to go into PLAYING state");
+    return -3;
+  }
+
+  g_main_loop_run (loop);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  g_main_loop_unref (loop);
+  gst_object_unref (pipeline);
+
+  return 0;
+}
+
+</pre>
+<pre class="programlisting">
+/* GStreamer
+ * Copyright (C) 2009 Sebastian Droege &lt;sebastian.droege@collabora.co.uk&gt;
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/* This small sample application creates a lowpass IIR filter
+ * and applies it to white noise.
+ * See http://www.dspguide.com/ch19/2.htm for a description
+ * of the IIR filter that is used.
+ */
+
+/* FIXME 0.11: suppress warnings for deprecated API such as GValueArray
+ * with newer GLib versions (&gt;= 2.31.0) */
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include &lt;string.h&gt;
+#include &lt;math.h&gt;
+
+#include &lt;gst/gst.h&gt;
+
+/* Cutoff of 4000 Hz */
+#define CUTOFF (4000.0)
+
+static gboolean
+on_message (GstBus * bus, GstMessage * message, gpointer user_data)
+{
+  GMainLoop *loop = (GMainLoop *) user_data;
+
+  switch (GST_MESSAGE_TYPE (message)) {
+    case GST_MESSAGE_ERROR:
+      g_error ("Got ERROR");
+      g_main_loop_quit (loop);
+      break;
+    case GST_MESSAGE_WARNING:
+      g_warning ("Got WARNING");
+      g_main_loop_quit (loop);
+      break;
+    case GST_MESSAGE_EOS:
+      g_main_loop_quit (loop);
+      break;
+    default:
+      break;
+  }
+
+  return TRUE;
+}
+
+static void
+on_rate_changed (GstElement * element, gint rate, gpointer user_data)
+{
+  GValueArray *va;
+  GValue v = { 0, };
+  gdouble x;
+
+  if (rate / 2.0 &gt; CUTOFF)
+    x = exp (-2.0 * G_PI * (CUTOFF / rate));
+  else
+    x = 0.0;
+
+  va = g_value_array_new (1);
+
+  g_value_init (&amp;v, G_TYPE_DOUBLE);
+  g_value_set_double (&amp;v, 1.0 - x);
+  g_value_array_append (va, &amp;v);
+  g_value_reset (&amp;v);
+  g_object_set (G_OBJECT (element), "a", va, NULL);
+  g_value_array_free (va);
+
+  va = g_value_array_new (1);
+  g_value_set_double (&amp;v, x);
+  g_value_array_append (va, &amp;v);
+  g_value_reset (&amp;v);
+  g_object_set (G_OBJECT (element), "b", va, NULL);
+  g_value_array_free (va);
+}
+
+gint
+main (gint argc, gchar * argv[])
+{
+  GstElement *pipeline, *src, *filter, *conv, *sink;
+  GstBus *bus;
+  GMainLoop *loop;
+
+  gst_init (NULL, NULL);
+
+  pipeline = gst_element_factory_make ("pipeline", NULL);
+
+  src = gst_element_factory_make ("audiotestsrc", NULL);
+  g_object_set (G_OBJECT (src), "wave", 5, NULL);
+
+  filter = gst_element_factory_make ("audioiirfilter", NULL);
+  g_signal_connect (G_OBJECT (filter), "rate-changed",
+      G_CALLBACK (on_rate_changed), NULL);
+
+  conv = gst_element_factory_make ("audioconvert", NULL);
+
+  sink = gst_element_factory_make ("autoaudiosink", NULL);
+  g_return_val_if_fail (sink != NULL, -1);
+
+  gst_bin_add_many (GST_BIN (pipeline), src, filter, conv, sink, NULL);
+  if (!gst_element_link_many (src, filter, conv, sink, NULL)) {
+    g_error ("Failed to link elements");
+    return -2;
+  }
+
+  loop = g_main_loop_new (NULL, FALSE);
+
+  bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
+  gst_bus_add_signal_watch (bus);
+  g_signal_connect (G_OBJECT (bus), "message", G_CALLBACK (on_message), loop);
+  gst_object_unref (GST_OBJECT (bus));
+
+  if (gst_element_set_state (pipeline,
+          GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) {
+    g_error ("Failed to go into PLAYING state");
+    return -3;
+  }
+
+  g_main_loop_run (loop);
+
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  g_main_loop_unref (loop);
+  gst_object_unref (pipeline);
+
+  return 0;
+}
+
+</pre>
+<pre class="programlisting">
+/* GStreamer
+ * Copyright (C) 2000,2001,2002,2003,2005
+ *           Thomas Vander Stichele &lt;thomas at apestaart dot org&gt;
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include &lt;string.h&gt;
+#include &lt;math.h&gt;
+
+#define GLIB_DISABLE_DEPRECATION_WARNINGS
+
+#include &lt;gst/gst.h&gt;
+
+static gboolean
+message_handler (GstBus * bus, GstMessage * message, gpointer data)
+{
+
+  if (message-&gt;type == GST_MESSAGE_ELEMENT) {
+    const GstStructure *s = gst_message_get_structure (message);
+    const gchar *name = gst_structure_get_name (s);
+
+    if (strcmp (name, "level") == 0) {
+      gint channels;
+      GstClockTime endtime;
+      gdouble rms_dB, peak_dB, decay_dB;
+      gdouble rms;
+      const GValue *array_val;
+      const GValue *value;
+      GValueArray *rms_arr, *peak_arr, *decay_arr;
+      gint i;
+
+      if (!gst_structure_get_clock_time (s, "endtime", &amp;endtime))
+        g_warning ("Could not parse endtime");
+
+      /* the values are packed into GValueArrays with the value per channel */
+      array_val = gst_structure_get_value (s, "rms");
+      rms_arr = (GValueArray *) g_value_get_boxed (array_val);
+
+      array_val = gst_structure_get_value (s, "peak");
+      peak_arr = (GValueArray *) g_value_get_boxed (array_val);
+
+      array_val = gst_structure_get_value (s, "decay");
+      decay_arr = (GValueArray *) g_value_get_boxed (array_val);
+
+      /* we can get the number of channels as the length of any of the value
+       * arrays */
+      channels = rms_arr-&gt;n_values;
+      g_print ("endtime: %" GST_TIME_FORMAT ", channels: %d\n",
+          GST_TIME_ARGS (endtime), channels);
+      for (i = 0; i &lt; channels; ++i) {
+
+        g_print ("channel %d\n", i);
+        value = g_value_array_get_nth (rms_arr, i);
+        rms_dB = g_value_get_double (value);
+
+        value = g_value_array_get_nth (peak_arr, i);
+        peak_dB = g_value_get_double (value);
+
+        value = g_value_array_get_nth (decay_arr, i);
+        decay_dB = g_value_get_double (value);
+        g_print ("    RMS: %f dB, peak: %f dB, decay: %f dB\n",
+            rms_dB, peak_dB, decay_dB);
+
+        /* converting from dB to normal gives us a value between 0.0 and 1.0 */
+        rms = pow (10, rms_dB / 20);
+        g_print ("    normalized rms value: %f\n", rms);
+      }
+    }
+  }
+  /* we handled the message we want, and ignored the ones we didn't want.
+   * so the core can unref the message for us */
+  return TRUE;
+}
+
+int
+main (int argc, char *argv[])
+{
+  GstElement *audiotestsrc, *audioconvert, *level, *fakesink;
+  GstElement *pipeline;
+  GstCaps *caps;
+  GstBus *bus;
+  guint watch_id;
+  GMainLoop *loop;
+
+  gst_init (&amp;argc, &amp;argv);
+
+  caps = gst_caps_from_string ("audio/x-raw,channels=2");
+
+  pipeline = gst_pipeline_new (NULL);
+  g_assert (pipeline);
+  audiotestsrc = gst_element_factory_make ("audiotestsrc", NULL);
+  g_assert (audiotestsrc);
+  audioconvert = gst_element_factory_make ("audioconvert", NULL);
+  g_assert (audioconvert);
+  level = gst_element_factory_make ("level", NULL);
+  g_assert (level);
+  fakesink = gst_element_factory_make ("fakesink", NULL);
+  g_assert (fakesink);
+
+  gst_bin_add_many (GST_BIN (pipeline), audiotestsrc, audioconvert, level,
+      fakesink, NULL);
+  if (!gst_element_link (audiotestsrc, audioconvert))
+    g_error ("Failed to link audiotestsrc and audioconvert");
+  if (!gst_element_link_filtered (audioconvert, level, caps))
+    g_error ("Failed to link audioconvert and level");
+  if (!gst_element_link (level, fakesink))
+    g_error ("Failed to link level and fakesink");
+
+  /* make sure we'll get messages */
+  g_object_set (G_OBJECT (level), "post-messages", TRUE, NULL);
+  /* run synced and not as fast as we can */
+  g_object_set (G_OBJECT (fakesink), "sync", TRUE, NULL);
+
+  bus = gst_element_get_bus (pipeline);
+  watch_id = gst_bus_add_watch (bus, message_handler, NULL);
+
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  /* we need to run a GLib main loop to get the messages */
+  loop = g_main_loop_new (NULL, FALSE);
+  g_main_loop_run (loop);
+
+  g_source_remove (watch_id);
+  g_main_loop_unref (loop);
+  return 0;
+}
+
+</pre>
+<pre class="programlisting">
+/* GStreamer
+ * Copyright (C) 2006 Stefan Kost &lt;ensonic@users.sf.net&gt;
+ * Copyright (C) 2008 Jan Schmidt &lt;jan.schmidt@sun.com&gt;
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include &lt;stdio.h&gt;
+#include &lt;string.h&gt;
+#include &lt;stdlib.h&gt;
+#include &lt;gst/gst.h&gt;
+
+static guint spect_bands = 20;
+
+#define AUDIOFREQ 32000
+
+/* receive spectral data from element message */
+static gboolean
+message_handler (GstBus * bus, GstMessage * message, gpointer data)
+{
+  if (message-&gt;type == GST_MESSAGE_ELEMENT) {
+    const GstStructure *s = gst_message_get_structure (message);
+    const gchar *name = gst_structure_get_name (s);
+    GstClockTime endtime;
+
+    if (strcmp (name, "spectrum") == 0) {
+      const GValue *magnitudes;
+      const GValue *phases;
+      const GValue *mag, *phase;
+      gdouble freq;
+      guint i;
+
+      if (!gst_structure_get_clock_time (s, "endtime", &amp;endtime))
+        endtime = GST_CLOCK_TIME_NONE;
+
+      g_print ("New spectrum message, endtime %" GST_TIME_FORMAT "\n",
+          GST_TIME_ARGS (endtime));
+
+      magnitudes = gst_structure_get_value (s, "magnitude");
+      phases = gst_structure_get_value (s, "phase");
+
+      for (i = 0; i &lt; spect_bands; ++i) {
+        freq = (gdouble) ((AUDIOFREQ / 2) * i + AUDIOFREQ / 4) / spect_bands;
+        mag = gst_value_list_get_value (magnitudes, i);
+        phase = gst_value_list_get_value (phases, i);
+
+        if (mag != NULL &amp;&amp; phase != NULL) {
+          g_print ("band %d (freq %g): magnitude %f dB phase %f\n", i, freq,
+              g_value_get_float (mag), g_value_get_float (phase));
+        }
+      }
+      g_print ("\n");
+    }
+  }
+  return TRUE;
+}
+
+int
+main (int argc, char *argv[])
+{
+  GstElement *bin;
+  GstElement *src, *audioconvert, *spectrum, *sink;
+  GstBus *bus;
+  GstCaps *caps;
+  GMainLoop *loop;
+
+  gst_init (&amp;argc, &amp;argv);
+
+  bin = gst_pipeline_new ("bin");
+
+  src = gst_element_factory_make ("audiotestsrc", "src");
+  g_object_set (G_OBJECT (src), "wave", 0, "freq", 6000.0, NULL);
+  audioconvert = gst_element_factory_make ("audioconvert", NULL);
+  g_assert (audioconvert);
+
+  spectrum = gst_element_factory_make ("spectrum", "spectrum");
+  g_object_set (G_OBJECT (spectrum), "bands", spect_bands, "threshold", -80,
+      "post-messages", TRUE, "message-phase", TRUE, NULL);
+
+  sink = gst_element_factory_make ("fakesink", "sink");
+  g_object_set (G_OBJECT (sink), "sync", TRUE, NULL);
+
+  gst_bin_add_many (GST_BIN (bin), src, audioconvert, spectrum, sink, NULL);
+
+  caps = gst_caps_new_simple ("audio/x-raw",
+      "rate", G_TYPE_INT, AUDIOFREQ, NULL);
+
+  if (!gst_element_link (src, audioconvert) ||
+      !gst_element_link_filtered (audioconvert, spectrum, caps) ||
+      !gst_element_link (spectrum, sink)) {
+    fprintf (stderr, "can't link elements\n");
+    exit (1);
+  }
+  gst_caps_unref (caps);
+
+  bus = gst_element_get_bus (bin);
+  gst_bus_add_watch (bus, message_handler, NULL);
+  gst_object_unref (bus);
+
+  gst_element_set_state (bin, GST_STATE_PLAYING);
+
+  /* we need to run a GLib main loop to get the messages */
+  loop = g_main_loop_new (NULL, FALSE);
+  g_main_loop_run (loop);
+
+  gst_element_set_state (bin, GST_STATE_NULL);
+
+  gst_object_unref (bin);
+
+  return 0;
+}
+
+</pre>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.24</div>
diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html
index 148ba61e0503d8c99e656f33e1000a619706647d..1c1e656602e1285251927e3c1f4ddbf3b46e027d 100644
--- a/docs/plugins/html/ch02.html
+++ b/docs/plugins/html/ch02.html
@@ -33,10 +33,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — ALaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — adds an alpha channel to video - constant or via chroma-keying</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — adds an alpha channel to video - constant or via chroma-keying</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — APEv1/2 tag reader</span>
@@ -45,6 +45,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — Audio effects plugin</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audioparsers.html">audioparsers</a></span><span class="refpurpose"> — Parsers for various audio formats</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — parses au streams</span>
 </dt>
 <dt>
@@ -78,10 +81,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — DV demuxer and decoder based on libdv (libdv.sf.net)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — GStreamer audio equalizers</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — effect plugins from the effectv project</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — effect plugins from the effectv project</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — GStreamer audio equalizers</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — The FLAC Lossless compressor Codec</span>
@@ -96,10 +99,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — GdkPixbuf-based image decoder, overlay and sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — GOOM visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — GOOM 2k1 visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — GOOM 2k1 visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — GOOM visualization filter</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — Demux ICY tags from a stream</span>
@@ -165,10 +168,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — ReplayGain volume normalization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — Real-time protocol plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — RTP session management plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — RTP session management plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — Real-time protocol plugins</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — transfer data via RTSP</span>
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 26c5a126605778fabdd939440756ef3c78d81e6e..59fb73a2e05dbf23158baae6763cc76c2f78d7af 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -7,10 +7,10 @@
       <sub name="aasink" link="gst-plugins-good-plugins-aasink.html"/>
       <sub name="ac3parse" link="gst-plugins-good-plugins-ac3parse.html"/>
       <sub name="agingtv" link="gst-plugins-good-plugins-agingtv.html"/>
-      <sub name="alpha" link="gst-plugins-good-plugins-alpha.html"/>
-      <sub name="alphacolor" link="gst-plugins-good-plugins-alphacolor.html"/>
       <sub name="alawdec" link="gst-plugins-good-plugins-alawdec.html"/>
       <sub name="alawenc" link="gst-plugins-good-plugins-alawenc.html"/>
+      <sub name="alphacolor" link="gst-plugins-good-plugins-alphacolor.html"/>
+      <sub name="alpha" link="gst-plugins-good-plugins-alpha.html"/>
       <sub name="amrparse" link="gst-plugins-good-plugins-amrparse.html"/>
       <sub name="apedemux" link="gst-plugins-good-plugins-apedemux.html"/>
       <sub name="apev2mux" link="gst-plugins-good-plugins-apev2mux.html"/>
@@ -18,15 +18,15 @@
       <sub name="audioamplify" link="gst-plugins-good-plugins-audioamplify.html"/>
       <sub name="audiochebband" link="gst-plugins-good-plugins-audiochebband.html"/>
       <sub name="audiocheblimit" link="gst-plugins-good-plugins-audiocheblimit.html"/>
+      <sub name="audiodynamic" link="gst-plugins-good-plugins-audiodynamic.html"/>
+      <sub name="audioecho" link="gst-plugins-good-plugins-audioecho.html"/>
       <sub name="audiofirfilter" link="gst-plugins-good-plugins-audiofirfilter.html"/>
       <sub name="audioiirfilter" link="gst-plugins-good-plugins-audioiirfilter.html"/>
-      <sub name="audiowsincband" link="gst-plugins-good-plugins-audiowsincband.html"/>
-      <sub name="audiowsinclimit" link="gst-plugins-good-plugins-audiowsinclimit.html"/>
-      <sub name="audioecho" link="gst-plugins-good-plugins-audioecho.html"/>
-      <sub name="audiodynamic" link="gst-plugins-good-plugins-audiodynamic.html"/>
       <sub name="audioinvert" link="gst-plugins-good-plugins-audioinvert.html"/>
-      <sub name="audiopanorama" link="gst-plugins-good-plugins-audiopanorama.html"/>
       <sub name="audiokaraoke" link="gst-plugins-good-plugins-audiokaraoke.html"/>
+      <sub name="audiopanorama" link="gst-plugins-good-plugins-audiopanorama.html"/>
+      <sub name="audiowsincband" link="gst-plugins-good-plugins-audiowsincband.html"/>
+      <sub name="audiowsinclimit" link="gst-plugins-good-plugins-audiowsinclimit.html"/>
       <sub name="auparse" link="gst-plugins-good-plugins-auparse.html"/>
       <sub name="autoaudiosink" link="gst-plugins-good-plugins-autoaudiosink.html"/>
       <sub name="autoaudiosrc" link="gst-plugins-good-plugins-autoaudiosrc.html"/>
@@ -61,8 +61,8 @@
       <sub name="flxdec" link="gst-plugins-good-plugins-flxdec.html"/>
       <sub name="gamma" link="gst-plugins-good-plugins-gamma.html"/>
       <sub name="gdkpixbufsink" link="gst-plugins-good-plugins-gdkpixbufsink.html"/>
-      <sub name="goom" link="gst-plugins-good-plugins-goom.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-goom2k1.html"/>
+      <sub name="goom" link="gst-plugins-good-plugins-goom.html"/>
       <sub name="hdv1394src" link="gst-plugins-good-plugins-hdv1394src.html"/>
       <sub name="icydemux" link="gst-plugins-good-plugins-icydemux.html"/>
       <sub name="id3demux" link="gst-plugins-good-plugins-id3demux.html"/>
@@ -70,17 +70,17 @@
       <sub name="imagefreeze" link="gst-plugins-good-plugins-imagefreeze.html"/>
       <sub name="interleave" link="gst-plugins-good-plugins-interleave.html"/>
       <sub name="ismlmux" link="gst-plugins-good-plugins-ismlmux.html"/>
-      <sub name="jackaudiosrc" link="gst-plugins-good-plugins-jackaudiosrc.html"/>
       <sub name="jackaudiosink" link="gst-plugins-good-plugins-jackaudiosink.html"/>
+      <sub name="jackaudiosrc" link="gst-plugins-good-plugins-jackaudiosrc.html"/>
       <sub name="jpegdec" link="gst-plugins-good-plugins-jpegdec.html"/>
       <sub name="jpegenc" link="gst-plugins-good-plugins-jpegenc.html"/>
       <sub name="level" link="gst-plugins-good-plugins-level.html"/>
-      <sub name="matroskamux" link="gst-plugins-good-plugins-matroskamux.html"/>
       <sub name="matroskademux" link="gst-plugins-good-plugins-matroskademux.html"/>
+      <sub name="matroskamux" link="gst-plugins-good-plugins-matroskamux.html"/>
       <sub name="mj2mux" link="gst-plugins-good-plugins-mj2mux.html"/>
       <sub name="monoscope" link="gst-plugins-good-plugins-monoscope.html"/>
-      <sub name="mpegaudioparse" link="gst-plugins-good-plugins-mpegaudioparse.html"/>
       <sub name="mp4mux" link="gst-plugins-good-plugins-mp4mux.html"/>
+      <sub name="mpegaudioparse" link="gst-plugins-good-plugins-mpegaudioparse.html"/>
       <sub name="mulawdec" link="gst-plugins-good-plugins-mulawdec.html"/>
       <sub name="mulawenc" link="gst-plugins-good-plugins-mulawenc.html"/>
       <sub name="multifilesink" link="gst-plugins-good-plugins-multifilesink.html"/>
@@ -101,23 +101,25 @@
       <sub name="progressreport" link="gst-plugins-good-plugins-progressreport.html"/>
       <sub name="pulsesink" link="gst-plugins-good-plugins-pulsesink.html"/>
       <sub name="pulsesrc" link="gst-plugins-good-plugins-pulsesrc.html"/>
-      <sub name="quarktv" link="gst-plugins-good-plugins-quarktv.html"/>
       <sub name="qtdemux" link="gst-plugins-good-plugins-qtdemux.html"/>
-      <sub name="qtmux" link="gst-plugins-good-plugins-qtmux.html"/>
       <sub name="qtmoovrecover" link="gst-plugins-good-plugins-qtmoovrecover.html"/>
+      <sub name="qtmux" link="gst-plugins-good-plugins-qtmux.html"/>
+      <sub name="quarktv" link="gst-plugins-good-plugins-quarktv.html"/>
       <sub name="radioactv" link="gst-plugins-good-plugins-radioactv.html"/>
       <sub name="revtv" link="gst-plugins-good-plugins-revtv.html"/>
       <sub name="rganalysis" link="gst-plugins-good-plugins-rganalysis.html"/>
       <sub name="rglimiter" link="gst-plugins-good-plugins-rglimiter.html"/>
       <sub name="rgvolume" link="gst-plugins-good-plugins-rgvolume.html"/>
       <sub name="rippletv" link="gst-plugins-good-plugins-rippletv.html"/>
-      <sub name="rtpdec" link="gst-plugins-good-plugins-rtpdec.html"/>
       <sub name="rtpac3depay" link="gst-plugins-good-plugins-rtpac3depay.html"/>
       <sub name="rtpac3pay" link="gst-plugins-good-plugins-rtpac3pay.html"/>
       <sub name="rtpamrdepay" link="gst-plugins-good-plugins-rtpamrdepay.html"/>
       <sub name="rtpamrpay" link="gst-plugins-good-plugins-rtpamrpay.html"/>
+      <sub name="rtpbin" link="gst-plugins-good-plugins-rtpbin.html"/>
       <sub name="rtpbvdepay" link="gst-plugins-good-plugins-rtpbvdepay.html"/>
       <sub name="rtpbvpay" link="gst-plugins-good-plugins-rtpbvpay.html"/>
+      <sub name="rtph261depay" link="gst-plugins-good-plugins-rtph261depay.html"/>
+      <sub name="rtph261pay" link="gst-plugins-good-plugins-rtph261pay.html"/>
       <sub name="rtpL16depay" link="gst-plugins-good-plugins-rtpL16depay.html"/>
       <sub name="rtpL16pay" link="gst-plugins-good-plugins-rtpL16pay.html"/>
       <sub name="rtpj2kpay" link="gst-plugins-good-plugins-rtpj2kpay.html"/>
@@ -125,36 +127,48 @@
       <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/>
       <sub name="rtspsrc" link="gst-plugins-good-plugins-rtspsrc.html"/>
       <sub name="rtpbin" link="gst-plugins-good-plugins-rtpbin.html"/>
+      <sub name="rtpdec" link="gst-plugins-good-plugins-rtpdec.html"/>
+      <sub name="rtpdtmfdepay" link="gst-plugins-good-plugins-rtpdtmfdepay.html"/>
       <sub name="rtpdtmfmux" link="gst-plugins-good-plugins-rtpdtmfmux.html"/>
       <sub name="rtpdtmfsrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html"/>
+      <sub name="rtpj2kpay" link="gst-plugins-good-plugins-rtpj2kpay.html"/>
       <sub name="rtpjitterbuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html"/>
+      <sub name="rtpjpegpay" link="gst-plugins-good-plugins-rtpjpegpay.html"/>
+      <sub name="rtpklvdepay" link="gst-plugins-good-plugins-rtpklvdepay.html"/>
+      <sub name="rtpklvpay" link="gst-plugins-good-plugins-rtpklvpay.html"/>
+      <sub name="rtpL16depay" link="gst-plugins-good-plugins-rtpL16depay.html"/>
+      <sub name="rtpL16pay" link="gst-plugins-good-plugins-rtpL16pay.html"/>
       <sub name="rtpmux" link="gst-plugins-good-plugins-rtpmux.html"/>
       <sub name="rtpptdemux" link="gst-plugins-good-plugins-rtpptdemux.html"/>
+      <sub name="rtprtxreceive" link="gst-plugins-good-plugins-rtprtxreceive.html"/>
+      <sub name="rtprtxsend" link="gst-plugins-good-plugins-rtprtxsend.html"/>
+      <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/>
       <sub name="rtpsession" link="gst-plugins-good-plugins-rtpsession.html"/>
       <sub name="rtpssrcdemux" link="gst-plugins-good-plugins-rtpssrcdemux.html"/>
-      <sub name="rtprtxsend" link="gst-plugins-good-plugins-rtprtxsend.html"/>
-      <sub name="rtprtxreceive" link="gst-plugins-good-plugins-rtprtxreceive.html"/>
+      <sub name="rtspsrc" link="gst-plugins-good-plugins-rtspsrc.html"/>
       <sub name="sbcparse" link="gst-plugins-good-plugins-sbcparse.html"/>
       <sub name="scaletempo" link="gst-plugins-good-plugins-scaletempo.html"/>
       <sub name="shagadelictv" link="gst-plugins-good-plugins-shagadelictv.html"/>
       <sub name="shapewipe" link="gst-plugins-good-plugins-shapewipe.html"/>
       <sub name="shout2send" link="gst-plugins-good-plugins-shout2send.html"/>
-      <sub name="smpte" link="gst-plugins-good-plugins-smpte.html"/>
+      <sub name="smokedec" link="gst-plugins-good-plugins-smokedec.html"/>
+      <sub name="smokeenc" link="gst-plugins-good-plugins-smokeenc.html"/>
       <sub name="smptealpha" link="gst-plugins-good-plugins-smptealpha.html"/>
+      <sub name="smpte" link="gst-plugins-good-plugins-smpte.html"/>
       <sub name="souphttpsrc" link="gst-plugins-good-plugins-souphttpsrc.html"/>
       <sub name="spectrum" link="gst-plugins-good-plugins-spectrum.html"/>
-      <sub name="speexenc" link="gst-plugins-good-plugins-speexenc.html"/>
       <sub name="speexdec" link="gst-plugins-good-plugins-speexdec.html"/>
+      <sub name="speexenc" link="gst-plugins-good-plugins-speexenc.html"/>
       <sub name="splitfilesrc" link="gst-plugins-good-plugins-splitfilesrc.html"/>
-      <sub name="splitmuxsrc" link="gst-plugins-good-plugins-splitmuxsrc.html"/>
       <sub name="splitmuxsink" link="gst-plugins-good-plugins-splitmuxsink.html"/>
+      <sub name="splitmuxsrc" link="gst-plugins-good-plugins-splitmuxsrc.html"/>
       <sub name="streaktv" link="gst-plugins-good-plugins-streaktv.html"/>
       <sub name="taginject" link="gst-plugins-good-plugins-taginject.html"/>
-      <sub name="udpsrc" link="gst-plugins-good-plugins-udpsrc.html"/>
       <sub name="udpsink" link="gst-plugins-good-plugins-udpsink.html"/>
-      <sub name="v4l2src" link="gst-plugins-good-plugins-v4l2src.html"/>
-      <sub name="v4l2sink" link="gst-plugins-good-plugins-v4l2sink.html"/>
+      <sub name="udpsrc" link="gst-plugins-good-plugins-udpsrc.html"/>
       <sub name="v4l2radio" link="gst-plugins-good-plugins-v4l2radio.html"/>
+      <sub name="v4l2sink" link="gst-plugins-good-plugins-v4l2sink.html"/>
+      <sub name="v4l2src" link="gst-plugins-good-plugins-v4l2src.html"/>
       <sub name="vertigotv" link="gst-plugins-good-plugins-vertigotv.html"/>
       <sub name="videobalance" link="gst-plugins-good-plugins-videobalance.html"/>
       <sub name="videobox" link="gst-plugins-good-plugins-videobox.html"/>
@@ -164,8 +178,8 @@
       <sub name="vp8dec" link="gst-plugins-good-plugins-vp8dec.html"/>
       <sub name="vp8enc" link="gst-plugins-good-plugins-vp8enc.html"/>
       <sub name="warptv" link="gst-plugins-good-plugins-warptv.html"/>
-      <sub name="wavenc" link="gst-plugins-good-plugins-wavenc.html"/>
       <sub name="waveformsink" link="gst-plugins-good-plugins-waveformsink.html"/>
+      <sub name="wavenc" link="gst-plugins-good-plugins-wavenc.html"/>
       <sub name="wavpackdec" link="gst-plugins-good-plugins-wavpackdec.html"/>
       <sub name="wavpackenc" link="gst-plugins-good-plugins-wavpackenc.html"/>
       <sub name="wavpackparse" link="gst-plugins-good-plugins-wavpackparse.html"/>
@@ -178,10 +192,11 @@
       <sub name="1394" link="gst-plugins-good-plugins-plugin-1394.html"/>
       <sub name="aasink" link="gst-plugins-good-plugins-plugin-aasink.html"/>
       <sub name="alaw" link="gst-plugins-good-plugins-plugin-alaw.html"/>
-      <sub name="alpha" link="gst-plugins-good-plugins-plugin-alpha.html"/>
       <sub name="alphacolor" link="gst-plugins-good-plugins-plugin-alphacolor.html"/>
+      <sub name="alpha" link="gst-plugins-good-plugins-plugin-alpha.html"/>
       <sub name="apetag" link="gst-plugins-good-plugins-plugin-apetag.html"/>
       <sub name="audiofx" link="gst-plugins-good-plugins-plugin-audiofx.html"/>
+      <sub name="audioparsers" link="gst-plugins-good-plugins-plugin-audioparsers.html"/>
       <sub name="auparse" link="gst-plugins-good-plugins-plugin-auparse.html"/>
       <sub name="autodetect" link="gst-plugins-good-plugins-plugin-autodetect.html"/>
       <sub name="avi" link="gst-plugins-good-plugins-plugin-avi.html"/>
@@ -193,14 +208,14 @@
       <sub name="directsound" link="gst-plugins-good-plugins-plugin-directsound.html"/>
       <sub name="dtmf" link="gst-plugins-good-plugins-plugin-dtmf.html"/>
       <sub name="dv" link="gst-plugins-good-plugins-plugin-dv.html"/>
-      <sub name="equalizer" link="gst-plugins-good-plugins-plugin-equalizer.html"/>
       <sub name="effectv" link="gst-plugins-good-plugins-plugin-effectv.html"/>
+      <sub name="equalizer" link="gst-plugins-good-plugins-plugin-equalizer.html"/>
       <sub name="flac" link="gst-plugins-good-plugins-plugin-flac.html"/>
       <sub name="flv" link="gst-plugins-good-plugins-plugin-flv.html"/>
       <sub name="flxdec" link="gst-plugins-good-plugins-plugin-flxdec.html"/>
       <sub name="gdkpixbuf" link="gst-plugins-good-plugins-plugin-gdkpixbuf.html"/>
-      <sub name="goom" link="gst-plugins-good-plugins-plugin-goom.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-plugin-goom2k1.html"/>
+      <sub name="goom" link="gst-plugins-good-plugins-plugin-goom.html"/>
       <sub name="icydemux" link="gst-plugins-good-plugins-plugin-icydemux.html"/>
       <sub name="id3demux" link="gst-plugins-good-plugins-plugin-id3demux.html"/>
       <sub name="imagefreeze" link="gst-plugins-good-plugins-plugin-imagefreeze.html"/>
@@ -222,8 +237,8 @@
       <sub name="png" link="gst-plugins-good-plugins-plugin-png.html"/>
       <sub name="pulseaudio" link="gst-plugins-good-plugins-plugin-pulseaudio.html"/>
       <sub name="replaygain" link="gst-plugins-good-plugins-plugin-replaygain.html"/>
-      <sub name="rtp" link="gst-plugins-good-plugins-plugin-rtp.html"/>
       <sub name="rtpmanager" link="gst-plugins-good-plugins-plugin-rtpmanager.html"/>
+      <sub name="rtp" link="gst-plugins-good-plugins-plugin-rtp.html"/>
       <sub name="rtsp" link="gst-plugins-good-plugins-plugin-rtsp.html"/>
       <sub name="shapewipe" link="gst-plugins-good-plugins-plugin-shapewipe.html"/>
       <sub name="shout2send" link="gst-plugins-good-plugins-plugin-shout2send.html"/>
@@ -287,6 +302,9 @@
     <keyword type="property" name="The “dusts” property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts"/>
     <keyword type="property" name="The “pits” property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits"/>
     <keyword type="property" name="The “scratch-lines” property" link="gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines"/>
+    <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"/>
+    <keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct"/>
+    <keyword type="struct" name="struct GstAlphaColor" link="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"/>
     <keyword type="struct" name="struct GstAlpha" link="gst-plugins-good-plugins-alpha.html#GstAlpha-struct"/>
     <keyword type="enum" name="enum GstAlphaMethod" link="gst-plugins-good-plugins-alpha.html#GstAlphaMethod"/>
     <keyword type="property" name="The “alpha” property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--alpha"/>
@@ -299,9 +317,6 @@
     <keyword type="property" name="The “black-sensitivity” property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity"/>
     <keyword type="property" name="The “white-sensitivity” property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity"/>
     <keyword type="property" name="The “prefer-passthrough” property" link="gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough"/>
-    <keyword type="struct" name="struct GstAlphaColor" link="gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct"/>
-    <keyword type="struct" name="struct GstALawDec" link="gst-plugins-good-plugins-alawdec.html#GstALawDec-struct"/>
-    <keyword type="struct" name="struct GstALawEnc" link="gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct"/>
     <keyword type="struct" name="struct GstAmrParse" link="gst-plugins-good-plugins-amrparse.html#GstAmrParse-struct"/>
     <keyword type="struct" name="struct GstApeDemux" link="gst-plugins-good-plugins-apedemux.html#GstApeDemux-struct"/>
     <keyword type="struct" name="struct GstApev2Mux" link="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"/>
@@ -323,6 +338,16 @@
     <keyword type="property" name="The “poles” property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles"/>
     <keyword type="property" name="The “ripple” property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple"/>
     <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type"/>
+    <keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/>
+    <keyword type="property" name="The “characteristics” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/>
+    <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/>
+    <keyword type="property" name="The “ratio” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/>
+    <keyword type="property" name="The “threshold” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/>
+    <keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/>
+    <keyword type="property" name="The “delay” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/>
+    <keyword type="property" name="The “feedback” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/>
+    <keyword type="property" name="The “intensity” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/>
+    <keyword type="property" name="The “max-delay” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/>
     <keyword type="struct" name="struct GstAudioFIRFilter" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter-struct"/>
     <keyword type="property" name="The “kernel” property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--kernel"/>
     <keyword type="property" name="The “latency” property" link="gst-plugins-good-plugins-audiofirfilter.html#GstAudioFIRFilter--latency"/>
@@ -331,6 +356,16 @@
     <keyword type="property" name="The “a” property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--a"/>
     <keyword type="property" name="The “b” property" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b"/>
     <keyword type="signal" name="The “rate-changed” signal" link="gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed"/>
+    <keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/>
+    <keyword type="property" name="The “degree” property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/>
+    <keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/>
+    <keyword type="property" name="The “filter-band” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/>
+    <keyword type="property" name="The “filter-width” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/>
+    <keyword type="property" name="The “level” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/>
+    <keyword type="property" name="The “mono-level” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/>
+    <keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/>
+    <keyword type="property" name="The “panorama” property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/>
+    <keyword type="property" name="The “method” property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/>
     <keyword type="struct" name="struct GstAudioWSincBand" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand-struct"/>
     <keyword type="property" name="The “lower-frequency” property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--lower-frequency"/>
     <keyword type="property" name="The “upper-frequency” property" link="gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand--upper-frequency"/>
@@ -343,26 +378,6 @@
     <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode"/>
     <keyword type="property" name="The “window” property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window"/>
     <keyword type="property" name="The “cutoff” property" link="gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff"/>
-    <keyword type="struct" name="struct GstAudioEcho" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct"/>
-    <keyword type="property" name="The “delay” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay"/>
-    <keyword type="property" name="The “feedback” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback"/>
-    <keyword type="property" name="The “intensity” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity"/>
-    <keyword type="property" name="The “max-delay” property" link="gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay"/>
-    <keyword type="struct" name="struct GstAudioDynamic" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct"/>
-    <keyword type="property" name="The “characteristics” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics"/>
-    <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode"/>
-    <keyword type="property" name="The “ratio” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio"/>
-    <keyword type="property" name="The “threshold” property" link="gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold"/>
-    <keyword type="struct" name="struct GstAudioInvert" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct"/>
-    <keyword type="property" name="The “degree” property" link="gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree"/>
-    <keyword type="struct" name="struct GstAudioPanorama" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct"/>
-    <keyword type="property" name="The “panorama” property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama"/>
-    <keyword type="property" name="The “method” property" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method"/>
-    <keyword type="struct" name="struct GstAudioKaraoke" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct"/>
-    <keyword type="property" name="The “filter-band” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band"/>
-    <keyword type="property" name="The “filter-width” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width"/>
-    <keyword type="property" name="The “level” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level"/>
-    <keyword type="property" name="The “mono-level” property" link="gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level"/>
     <keyword type="struct" name="struct GstAuParse" link="gst-plugins-good-plugins-auparse.html#GstAuParse-struct"/>
     <keyword type="struct" name="GstAutoAudioSink" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink-struct"/>
     <keyword type="property" name="The “filter-caps” property" link="gst-plugins-good-plugins-autoaudiosink.html#GstAutoAudioSink--filter-caps"/>
@@ -480,8 +495,8 @@
     <keyword type="property" name="The “last-pixbuf” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/>
     <keyword type="property" name="The “send-messages” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages"/>
     <keyword type="property" name="The “post-messages” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/>
+    <keyword type="struct" name="struct GstGoom2k1" link="gst-plugins-good-plugins-goom2k1.html#GstGoom2k1-struct"/>
     <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom.html#GstGoom-struct"/>
-    <keyword type="struct" name="struct GstGoom" link="gst-plugins-good-plugins-goom2k1.html#GstGoom-struct"/>
     <keyword type="struct" name="struct GstHDV1394Src" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src-struct"/>
     <keyword type="property" name="The “channel” property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--channel"/>
     <keyword type="property" name="The “device-name” property" link="gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src--device-name"/>
@@ -510,13 +525,6 @@
     <keyword type="property" name="The “reserved-duration-remaining” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-duration-remaining"/>
     <keyword type="property" name="The “reserved-max-duration” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-max-duration"/>
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-moov-update-period"/>
-    <keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/>
-    <keyword type="property" name="The “client” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/>
-    <keyword type="property" name="The “connect” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/>
-    <keyword type="property" name="The “server” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/>
-    <keyword type="property" name="The “client-name” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/>
-    <keyword type="property" name="The “transport” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/>
-    <keyword type="property" name="The “port-pattern” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--port-pattern"/>
     <keyword type="struct" name="struct GstJackAudioSink" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink-struct"/>
     <keyword type="property" name="The “client” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client"/>
     <keyword type="property" name="The “connect” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect"/>
@@ -524,6 +532,13 @@
     <keyword type="property" name="The “client-name” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name"/>
     <keyword type="property" name="The “transport” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport"/>
     <keyword type="property" name="The “port-pattern” property" link="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--port-pattern"/>
+    <keyword type="struct" name="struct GstJackAudioSrc" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct"/>
+    <keyword type="property" name="The “client” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client"/>
+    <keyword type="property" name="The “connect” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect"/>
+    <keyword type="property" name="The “server” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server"/>
+    <keyword type="property" name="The “client-name” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name"/>
+    <keyword type="property" name="The “transport” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport"/>
+    <keyword type="property" name="The “port-pattern” property" link="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--port-pattern"/>
     <keyword type="struct" name="struct GstJpegDec" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec-struct"/>
     <keyword type="property" name="The “idct-method” property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--idct-method"/>
     <keyword type="property" name="The “max-errors” property" link="gst-plugins-good-plugins-jpegdec.html#GstJpegDec--max-errors"/>
@@ -537,13 +552,13 @@
     <keyword type="property" name="The “peak-falloff” property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-falloff"/>
     <keyword type="property" name="The “peak-ttl” property" link="gst-plugins-good-plugins-level.html#GstLevel--peak-ttl"/>
     <keyword type="property" name="The “post-messages” property" link="gst-plugins-good-plugins-level.html#GstLevel--post-messages"/>
+    <keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/>
+    <keyword type="property" name="The “max-gap-time” property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/>
     <keyword type="struct" name="struct GstMatroskaMux" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux-struct"/>
     <keyword type="property" name="The “writing-app” property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--writing-app"/>
     <keyword type="property" name="The “version” property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version"/>
     <keyword type="property" name="The “min-index-interval” property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval"/>
     <keyword type="property" name="The “streamable” property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable"/>
-    <keyword type="struct" name="GstMatroskaDemux" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct"/>
-    <keyword type="property" name="The “max-gap-time” property" link="gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time"/>
     <keyword type="struct" name="GstMJ2Mux" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux-struct"/>
     <keyword type="property" name="The “dts-method” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--dts-method"/>
     <keyword type="property" name="The “faststart” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--faststart"/>
@@ -559,7 +574,6 @@
     <keyword type="property" name="The “reserved-max-duration” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--reserved-max-duration"/>
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--reserved-moov-update-period"/>
     <keyword type="struct" name="struct GstMonoscope" link="gst-plugins-good-plugins-monoscope.html#GstMonoscope"/>
-    <keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/>
     <keyword type="struct" name="GstMP4Mux" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux-struct"/>
     <keyword type="property" name="The “dts-method” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--dts-method"/>
     <keyword type="property" name="The “faststart” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--faststart"/>
@@ -574,6 +588,7 @@
     <keyword type="property" name="The “reserved-duration-remaining” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-duration-remaining"/>
     <keyword type="property" name="The “reserved-max-duration” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-max-duration"/>
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-moov-update-period"/>
+    <keyword type="struct" name="struct GstMpegAudioParse" link="gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct"/>
     <keyword type="struct" name="struct GstMuLawDec" link="gst-plugins-good-plugins-mulawdec.html#GstMuLawDec-struct"/>
     <keyword type="struct" name="struct GstMuLawEnc" link="gst-plugins-good-plugins-mulawenc.html#GstMuLawEnc-struct"/>
     <keyword type="struct" name="struct GstMultiFileSink" link="gst-plugins-good-plugins-multifilesink.html#GstMultiFileSink-struct"/>
@@ -682,10 +697,16 @@
     <keyword type="property" name="The “volume” property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume"/>
     <keyword type="property" name="The “client-name” property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name"/>
     <keyword type="property" name="The “current-device” property" link="gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device"/>
-    <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/>
-    <keyword type="property" name="The “planes” property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/>
     <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/>
     <keyword type="signal" name="The “got-redirect” signal" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect"/>
+    <keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/>
+    <keyword type="function" name="gst_qt_moov_recover_register ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register"/>
+    <keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/>
+    <keyword type="struct" name="struct GstQTMoovRecoverClass" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"/>
+    <keyword type="property" name="The “broken-input” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"/>
+    <keyword type="property" name="The “faststart-mode” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/>
+    <keyword type="property" name="The “fixed-output” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/>
+    <keyword type="property" name="The “recovery-input” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/>
     <keyword type="struct" name="struct GstQTMux" link="gst-plugins-good-plugins-qtmux.html#GstQTMux-struct"/>
     <keyword type="property" name="The “dts-method” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--dts-method"/>
     <keyword type="property" name="The “faststart” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--faststart"/>
@@ -700,14 +721,8 @@
     <keyword type="property" name="The “reserved-duration-remaining” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-duration-remaining"/>
     <keyword type="property" name="The “reserved-max-duration” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-max-duration"/>
     <keyword type="property" name="The “reserved-moov-update-period” property" link="gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-moov-update-period"/>
-    <keyword type="function" name="gst_qt_moov_recover_get_type ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type"/>
-    <keyword type="function" name="gst_qt_moov_recover_register ()" link="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register"/>
-    <keyword type="struct" name="struct GstQTMoovRecover" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct"/>
-    <keyword type="struct" name="struct GstQTMoovRecoverClass" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass"/>
-    <keyword type="property" name="The “broken-input” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input"/>
-    <keyword type="property" name="The “faststart-mode” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode"/>
-    <keyword type="property" name="The “fixed-output” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output"/>
-    <keyword type="property" name="The “recovery-input” property" link="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input"/>
+    <keyword type="struct" name="struct GstQuarkTV" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct"/>
+    <keyword type="property" name="The “planes” property" link="gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes"/>
     <keyword type="struct" name="struct GstRadioacTV" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV-struct"/>
     <keyword type="property" name="The “color” property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--color"/>
     <keyword type="property" name="The “interval” property" link="gst-plugins-good-plugins-radioactv.html#GstRadioacTV--interval"/>
@@ -734,21 +749,52 @@
     <keyword type="struct" name="struct GstRippleTV" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV-struct"/>
     <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode"/>
     <keyword type="property" name="The “reset” property" link="gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset"/>
-    <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/>
-    <keyword type="property" name="The “skip” property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/>
-    <keyword type="property" name="The “latency” property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/>
-    <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map"/>
-    <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map"/>
-    <keyword type="signal" name="The “on-bye-ssrc” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc"/>
-    <keyword type="signal" name="The “on-bye-timeout” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout"/>
-    <keyword type="signal" name="The “on-new-ssrc” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc"/>
-    <keyword type="signal" name="The “on-ssrc-collision” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/>
-    <keyword type="signal" name="The “on-ssrc-validated” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/>
-    <keyword type="signal" name="The “on-timeout” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/>
     <keyword type="struct" name="struct GstRtpAC3Depay" link="gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay-struct"/>
     <keyword type="struct" name="struct GstRtpAC3Pay" link="gst-plugins-good-plugins-rtpac3pay.html#GstRtpAC3Pay-struct"/>
     <keyword type="struct" name="struct GstRtpAMRDepay" link="gst-plugins-good-plugins-rtpamrdepay.html#GstRtpAMRDepay-struct"/>
     <keyword type="struct" name="struct GstRtpAMRPay" link="gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct"/>
+    <keyword type="struct" name="struct GstRtpBin" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct"/>
+    <keyword type="enum" name="enum RTPJitterBufferMode" link="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode"/>
+    <keyword type="enum" name="enum GstRTCPSync" link="gst-plugins-good-plugins-rtpbin.html#GstRTCPSync"/>
+    <keyword type="property" name="The “do-lost” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost"/>
+    <keyword type="property" name="The “latency” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency"/>
+    <keyword type="property" name="The “sdes” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes"/>
+    <keyword type="property" name="The “ignore-pt” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt"/>
+    <keyword type="property" name="The “autoremove” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove"/>
+    <keyword type="property" name="The “buffer-mode” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode"/>
+    <keyword type="property" name="The “ntp-sync” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync"/>
+    <keyword type="property" name="The “use-pipeline-clock” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock"/>
+    <keyword type="property" name="The “rtcp-sync” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync"/>
+    <keyword type="property" name="The “rtcp-sync-interval” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval"/>
+    <keyword type="property" name="The “drop-on-latency” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency"/>
+    <keyword type="property" name="The “do-sync-event” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event"/>
+    <keyword type="property" name="The “do-retransmission” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission"/>
+    <keyword type="property" name="The “rtp-profile” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtp-profile"/>
+    <keyword type="property" name="The “ntp-time-source” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-time-source"/>
+    <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map"/>
+    <keyword type="signal" name="The “get-internal-session” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session"/>
+    <keyword type="signal" name="The “on-bye-ssrc” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc"/>
+    <keyword type="signal" name="The “on-bye-timeout” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout"/>
+    <keyword type="signal" name="The “on-new-ssrc” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc"/>
+    <keyword type="signal" name="The “on-npt-stop” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop"/>
+    <keyword type="signal" name="The “on-sender-timeout” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout"/>
+    <keyword type="signal" name="The “on-ssrc-active” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active"/>
+    <keyword type="signal" name="The “on-ssrc-collision” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision"/>
+    <keyword type="signal" name="The “on-ssrc-sdes” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes"/>
+    <keyword type="signal" name="The “on-ssrc-validated” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated"/>
+    <keyword type="signal" name="The “on-timeout” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout"/>
+    <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map"/>
+    <keyword type="signal" name="The “reset-sync” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync"/>
+    <keyword type="signal" name="The “payload-type-change” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change"/>
+    <keyword type="signal" name="The “new-jitterbuffer” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-new-jitterbuffer"/>
+    <keyword type="signal" name="The “request-aux-receiver” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver"/>
+    <keyword type="signal" name="The “request-aux-sender” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender"/>
+    <keyword type="signal" name="The “request-rtcp-decoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-decoder"/>
+    <keyword type="signal" name="The “request-rtcp-encoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder"/>
+    <keyword type="signal" name="The “request-rtp-decoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder"/>
+    <keyword type="signal" name="The “request-rtp-encoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder"/>
+    <keyword type="struct" name="struct GstRtpH261Depay" link="gst-plugins-good-plugins-rtph261depay.html#GstRtpH261Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpH261Pay" link="gst-plugins-good-plugins-rtph261pay.html#GstRtpH261Pay-struct"/>
     <keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/>
     <keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/>
     <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/>
@@ -792,6 +838,8 @@
     <keyword type="property" name="The “tls-validation-flags” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"/>
     <keyword type="property" name="The “do-retransmission” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-retransmission"/>
     <keyword type="property" name="The “tls-interaction” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-interaction"/>
+    <keyword type="property" name="The “ntp-time-source” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-time-source"/>
+    <keyword type="property" name="The “user-agent” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent"/>
     <keyword type="signal" name="The “handle-request” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
     <keyword type="signal" name="The “on-sdp” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
     <keyword type="signal" name="The “select-stream” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
@@ -837,6 +885,20 @@
     <keyword type="signal" name="The “request-rtcp-encoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder"/>
     <keyword type="signal" name="The “request-rtp-decoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder"/>
     <keyword type="signal" name="The “request-rtp-encoder” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder"/>
+    <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/>
+    <keyword type="property" name="The “skip” property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip"/>
+    <keyword type="property" name="The “latency” property" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency"/>
+    <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map"/>
+    <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map"/>
+    <keyword type="signal" name="The “on-bye-ssrc” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc"/>
+    <keyword type="signal" name="The “on-bye-timeout” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout"/>
+    <keyword type="signal" name="The “on-new-ssrc” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc"/>
+    <keyword type="signal" name="The “on-ssrc-collision” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision"/>
+    <keyword type="signal" name="The “on-ssrc-validated” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated"/>
+    <keyword type="signal" name="The “on-timeout” signal" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout"/>
+    <keyword type="struct" name="struct GstRtpDTMFDepay" link="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay-struct"/>
+    <keyword type="property" name="The “max-duration” property" link="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--max-duration"/>
+    <keyword type="property" name="The “unit-time” property" link="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--unit-time"/>
     <keyword type="struct" name="struct GstRTPDTMFMux" link="gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux-struct"/>
     <keyword type="struct" name="struct GstRTPDTMFSrc" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc-struct"/>
     <keyword type="property" name="The “clock-rate” property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--clock-rate"/>
@@ -847,6 +909,8 @@
     <keyword type="property" name="The “ssrc” property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--ssrc"/>
     <keyword type="property" name="The “timestamp” property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp"/>
     <keyword type="property" name="The “timestamp-offset” property" link="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset"/>
+    <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/>
+    <keyword type="property" name="The “buffer-list” property" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list"/>
     <keyword type="struct" name="struct GstRtpJitterBuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-struct"/>
     <keyword type="property" name="The “do-lost” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--do-lost"/>
     <keyword type="property" name="The “drop-on-latency” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--drop-on-latency"/>
@@ -869,6 +933,14 @@
     <keyword type="signal" name="The “on-npt-stop” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop"/>
     <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map"/>
     <keyword type="signal" name="The “set-active” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active"/>
+    <keyword type="struct" name="struct GstRtpJPEGPay" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct"/>
+    <keyword type="property" name="The “quality” property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality"/>
+    <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type"/>
+    <keyword type="property" name="The “buffer-list” property" link="gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list"/>
+    <keyword type="struct" name="struct GstRtpKlvDepay" link="gst-plugins-good-plugins-rtpklvdepay.html#GstRtpKlvDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpKlvPay" link="gst-plugins-good-plugins-rtpklvpay.html#GstRtpKlvPay-struct"/>
+    <keyword type="struct" name="struct GstRtpL16Depay" link="gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpL16Pay" link="gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct"/>
     <keyword type="struct" name="struct GstRTPMux" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux-struct"/>
     <keyword type="property" name="The “seqnum” property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum"/>
     <keyword type="property" name="The “seqnum-offset” property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--seqnum-offset"/>
@@ -879,6 +951,22 @@
     <keyword type="signal" name="The “new-payload-type” signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type"/>
     <keyword type="signal" name="The “payload-type-change” signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change"/>
     <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map"/>
+    <keyword type="struct" name="struct GstRtpRtxReceive" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct"/>
+    <keyword type="property" name="The “rtx-payload-types” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types"/>
+    <keyword type="property" name="The “num-rtx-requests” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests"/>
+    <keyword type="property" name="The “num-rtx-packets” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets"/>
+    <keyword type="property" name="The “num-rtx-assoc-packets” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets"/>
+    <keyword type="property" name="The “payload-type-map” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map"/>
+    <keyword type="struct" name="struct GstRtpRtxSend" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend-struct"/>
+    <keyword type="property" name="The “rtx-payload-type” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--rtx-payload-type"/>
+    <keyword type="property" name="The “max-size-time” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-time"/>
+    <keyword type="property" name="The “max-size-packets” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-packets"/>
+    <keyword type="property" name="The “num-rtx-requests” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-requests"/>
+    <keyword type="property" name="The “num-rtx-packets” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets"/>
+    <keyword type="property" name="The “payload-type-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map"/>
+    <keyword type="property" name="The “ssrc-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map"/>
+    <keyword type="struct" name="struct GstRtpSBCPay" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct"/>
+    <keyword type="property" name="The “min-frames” property" link="gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames"/>
     <keyword type="struct" name="struct GstRtpSession" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct"/>
     <keyword type="property" name="The “bandwidth” property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth"/>
     <keyword type="property" name="The “internal-session” property" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session"/>
@@ -910,20 +998,46 @@
     <keyword type="signal" name="The “clear-ssrc” signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc"/>
     <keyword type="signal" name="The “new-ssrc-pad” signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad"/>
     <keyword type="signal" name="The “removed-ssrc-pad” signal" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad"/>
-    <keyword type="struct" name="struct GstRtpRtxSend" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend-struct"/>
-    <keyword type="property" name="The “rtx-payload-type” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--rtx-payload-type"/>
-    <keyword type="property" name="The “max-size-time” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-time"/>
-    <keyword type="property" name="The “max-size-packets” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--max-size-packets"/>
-    <keyword type="property" name="The “num-rtx-requests” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-requests"/>
-    <keyword type="property" name="The “num-rtx-packets” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets"/>
-    <keyword type="property" name="The “payload-type-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map"/>
-    <keyword type="property" name="The “ssrc-map” property" link="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map"/>
-    <keyword type="struct" name="struct GstRtpRtxReceive" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct"/>
-    <keyword type="property" name="The “rtx-payload-types” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types"/>
-    <keyword type="property" name="The “num-rtx-requests” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests"/>
-    <keyword type="property" name="The “num-rtx-packets” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets"/>
-    <keyword type="property" name="The “num-rtx-assoc-packets” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets"/>
-    <keyword type="property" name="The “payload-type-map” property" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map"/>
+    <keyword type="struct" name="struct GstRTSPSrc" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct"/>
+    <keyword type="property" name="The “debug” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug"/>
+    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location"/>
+    <keyword type="property" name="The “protocols” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols"/>
+    <keyword type="property" name="The “retry” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry"/>
+    <keyword type="property" name="The “timeout” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout"/>
+    <keyword type="property" name="The “latency” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency"/>
+    <keyword type="property" name="The “tcp-timeout” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout"/>
+    <keyword type="property" name="The “connection-speed” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed"/>
+    <keyword type="property" name="The “nat-method” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method"/>
+    <keyword type="property" name="The “do-rtcp” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp"/>
+    <keyword type="property" name="The “proxy” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy"/>
+    <keyword type="property" name="The “rtp-blocksize” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rtp-blocksize"/>
+    <keyword type="property" name="The “user-id” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id"/>
+    <keyword type="property" name="The “user-pw” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-pw"/>
+    <keyword type="property" name="The “buffer-mode” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--buffer-mode"/>
+    <keyword type="property" name="The “port-range” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range"/>
+    <keyword type="property" name="The “udp-buffer-size” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-buffer-size"/>
+    <keyword type="property" name="The “short-header” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header"/>
+    <keyword type="property" name="The “do-rtsp-keep-alive” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive"/>
+    <keyword type="property" name="The “drop-on-latency” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency"/>
+    <keyword type="property" name="The “probation” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation"/>
+    <keyword type="property" name="The “udp-reconnect” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect"/>
+    <keyword type="property" name="The “proxy-id” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id"/>
+    <keyword type="property" name="The “proxy-pw” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw"/>
+    <keyword type="property" name="The “multicast-iface” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface"/>
+    <keyword type="property" name="The “ntp-sync” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-sync"/>
+    <keyword type="property" name="The “use-pipeline-clock” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--use-pipeline-clock"/>
+    <keyword type="property" name="The “sdes” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--sdes"/>
+    <keyword type="property" name="The “tls-database” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-database"/>
+    <keyword type="property" name="The “tls-validation-flags” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-validation-flags"/>
+    <keyword type="property" name="The “do-retransmission” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-retransmission"/>
+    <keyword type="property" name="The “tls-interaction” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-interaction"/>
+    <keyword type="property" name="The “ntp-time-source” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-time-source"/>
+    <keyword type="property" name="The “user-agent” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent"/>
+    <keyword type="signal" name="The “handle-request” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-handle-request"/>
+    <keyword type="signal" name="The “on-sdp” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-on-sdp"/>
+    <keyword type="signal" name="The “select-stream” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream"/>
+    <keyword type="signal" name="The “new-manager” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager"/>
+    <keyword type="signal" name="The “request-rtcp-key” signal" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-request-rtcp-key"/>
     <keyword type="struct" name="struct GstSbcParse" link="gst-plugins-good-plugins-sbcparse.html#GstSbcParse-struct"/>
     <keyword type="struct" name="struct GstScaletempo" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo-struct"/>
     <keyword type="property" name="The “overlap” property" link="gst-plugins-good-plugins-scaletempo.html#GstScaletempo--overlap"/>
@@ -948,6 +1062,18 @@
     <keyword type="property" name="The “username” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--username"/>
     <keyword type="property" name="The “public” property" link="gst-plugins-good-plugins-shout2send.html#GstShout2send--public"/>
     <keyword type="signal" name="The “connection-problem” signal" link="gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem"/>
+    <keyword type="struct" name="struct GstSmokeDec" link="gst-plugins-good-plugins-smokedec.html#GstSmokeDec"/>
+    <keyword type="struct" name="struct GstSmokeEnc" link="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc"/>
+    <keyword type="property" name="The “keyframe” property" link="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--keyframe"/>
+    <keyword type="property" name="The “qmax” property" link="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmax"/>
+    <keyword type="property" name="The “qmin” property" link="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmin"/>
+    <keyword type="property" name="The “threshold” property" link="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--threshold"/>
+    <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/>
+    <keyword type="property" name="The “border” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/>
+    <keyword type="property" name="The “depth” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/>
+    <keyword type="property" name="The “position” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/>
+    <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/>
+    <keyword type="property" name="The “invert” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/>
     <keyword type="struct" name="struct GstSMPTE" link="gst-plugins-good-plugins-smpte.html#GstSMPTE-struct"/>
     <keyword type="property" name="The “border” property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--border"/>
     <keyword type="property" name="The “depth” property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--depth"/>
@@ -955,12 +1081,6 @@
     <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--type"/>
     <keyword type="property" name="The “duration” property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--duration"/>
     <keyword type="property" name="The “invert” property" link="gst-plugins-good-plugins-smpte.html#GstSMPTE--invert"/>
-    <keyword type="struct" name="struct GstSMPTEAlpha" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct"/>
-    <keyword type="property" name="The “border” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border"/>
-    <keyword type="property" name="The “depth” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth"/>
-    <keyword type="property" name="The “position” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position"/>
-    <keyword type="property" name="The “type” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type"/>
-    <keyword type="property" name="The “invert” property" link="gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert"/>
     <keyword type="struct" name="struct GstSoupHTTPSrc" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc-struct"/>
     <keyword type="property" name="The “automatic-redirect” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--automatic-redirect"/>
     <keyword type="property" name="The “cookies” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--cookies"/>
@@ -987,6 +1107,7 @@
     <keyword type="property" name="The “ssl-strict” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-strict"/>
     <keyword type="property" name="The “ssl-use-system-ca-file” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-use-system-ca-file"/>
     <keyword type="property" name="The “tls-database” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--tls-database"/>
+    <keyword type="property" name="The “method” property" link="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--method"/>
     <keyword type="struct" name="struct GstSpectrum" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum-struct"/>
     <keyword type="property" name="The “bands” property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--bands"/>
     <keyword type="property" name="The “interval” property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--interval"/>
@@ -996,6 +1117,8 @@
     <keyword type="property" name="The “message-phase” property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase"/>
     <keyword type="property" name="The “post-messages” property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages"/>
     <keyword type="property" name="The “multi-channel” property" link="gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel"/>
+    <keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/>
+    <keyword type="property" name="The “enh” property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/>
     <keyword type="struct" name="struct GstSpeexEnc" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc-struct"/>
     <keyword type="property" name="The “abr” property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--abr"/>
     <keyword type="property" name="The “bitrate” property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--bitrate"/>
@@ -1007,12 +1130,8 @@
     <keyword type="property" name="The “vad” property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad"/>
     <keyword type="property" name="The “vbr” property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr"/>
     <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode"/>
-    <keyword type="struct" name="struct GstSpeexDec" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct"/>
-    <keyword type="property" name="The “enh” property" link="gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh"/>
     <keyword type="struct" name="struct GstSplitFileSrc" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc-struct"/>
     <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location"/>
-    <keyword type="struct" name="struct GstSplitMuxSrc" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-struct"/>
-    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc--location"/>
     <keyword type="struct" name="struct GstSplitMuxSink" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-struct"/>
     <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--location"/>
     <keyword type="property" name="The “max-size-bytes” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-size-bytes"/>
@@ -1020,10 +1139,16 @@
     <keyword type="property" name="The “mux-overhead” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--mux-overhead"/>
     <keyword type="property" name="The “muxer” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--muxer"/>
     <keyword type="property" name="The “sink” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--sink"/>
+    <keyword type="signal" name="The “format-location” signal" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location"/>
+    <keyword type="struct" name="struct GstSplitMuxSrc" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-struct"/>
+    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc--location"/>
     <keyword type="struct" name="struct GstStreakTV" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV-struct"/>
     <keyword type="property" name="The “feedback” property" link="gst-plugins-good-plugins-streaktv.html#GstStreakTV--feedback"/>
     <keyword type="struct" name="struct GstTagInject" link="gst-plugins-good-plugins-taginject.html#GstTagInject-struct"/>
     <keyword type="property" name="The “tags” property" link="gst-plugins-good-plugins-taginject.html#GstTagInject--tags"/>
+    <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/>
+    <keyword type="property" name="The “host” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/>
+    <keyword type="property" name="The “port” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/>
     <keyword type="struct" name="struct GstUDPSrc" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc-struct"/>
     <keyword type="property" name="The “caps” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--caps"/>
     <keyword type="property" name="The “multicast-group” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--multicast-group"/>
@@ -1043,27 +1168,9 @@
     <keyword type="property" name="The “used-socket” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/>
     <keyword type="property" name="The “bind-address” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address"/>
     <keyword type="property" name="The “address” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address"/>
-    <keyword type="struct" name="struct GstUDPSink" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct"/>
-    <keyword type="property" name="The “host” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--host"/>
-    <keyword type="property" name="The “port” property" link="gst-plugins-good-plugins-udpsink.html#GstUDPSink--port"/>
-    <keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/>
-    <keyword type="property" name="The “device” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/>
-    <keyword type="property" name="The “device-name” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/>
-    <keyword type="property" name="The “flags” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags"/>
-    <keyword type="property" name="The “queue-size” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size"/>
-    <keyword type="property" name="The “always-copy” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy"/>
-    <keyword type="property" name="The “device-fd” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd"/>
-    <keyword type="property" name="The “brightness” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness"/>
-    <keyword type="property" name="The “contrast” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast"/>
-    <keyword type="property" name="The “decimate” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate"/>
-    <keyword type="property" name="The “hue” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue"/>
-    <keyword type="property" name="The “saturation” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/>
-    <keyword type="property" name="The “norm” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/>
-    <keyword type="property" name="The “io-mode” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/>
-    <keyword type="property" name="The “extra-controls” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/>
-    <keyword type="property" name="The “force-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/>
-    <keyword type="property" name="The “pixel-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/>
-    <keyword type="signal" name="The “prepare-format” signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/>
+    <keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/>
+    <keyword type="property" name="The “device” property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/>
+    <keyword type="property" name="The “frequency” property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/>
     <keyword type="struct" name="struct GstV4l2Sink" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink-struct"/>
     <keyword type="property" name="The “device” property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device"/>
     <keyword type="property" name="The “device-fd” property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--device-fd"/>
@@ -1088,9 +1195,24 @@
     <keyword type="property" name="The “extra-controls” property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls"/>
     <keyword type="property" name="The “force-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio"/>
     <keyword type="property" name="The “pixel-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio"/>
-    <keyword type="struct" name="struct GstV4l2Radio" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct"/>
-    <keyword type="property" name="The “device” property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device"/>
-    <keyword type="property" name="The “frequency” property" link="gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency"/>
+    <keyword type="struct" name="struct GstV4l2Src" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct"/>
+    <keyword type="property" name="The “device” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device"/>
+    <keyword type="property" name="The “device-name” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name"/>
+    <keyword type="property" name="The “flags” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags"/>
+    <keyword type="property" name="The “queue-size” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size"/>
+    <keyword type="property" name="The “always-copy” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy"/>
+    <keyword type="property" name="The “device-fd” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd"/>
+    <keyword type="property" name="The “brightness” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness"/>
+    <keyword type="property" name="The “contrast” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast"/>
+    <keyword type="property" name="The “decimate” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate"/>
+    <keyword type="property" name="The “hue” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue"/>
+    <keyword type="property" name="The “saturation” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation"/>
+    <keyword type="property" name="The “norm” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm"/>
+    <keyword type="property" name="The “io-mode” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode"/>
+    <keyword type="property" name="The “extra-controls” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls"/>
+    <keyword type="property" name="The “force-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio"/>
+    <keyword type="property" name="The “pixel-aspect-ratio” property" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio"/>
+    <keyword type="signal" name="The “prepare-format” signal" link="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format"/>
     <keyword type="struct" name="struct GstVertigoTV" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV-struct"/>
     <keyword type="property" name="The “speed” property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--speed"/>
     <keyword type="property" name="The “zoom-speed” property" link="gst-plugins-good-plugins-vertigotv.html#GstVertigoTV--zoom-speed"/>
@@ -1184,8 +1306,8 @@
     <keyword type="property" name="The “vertical-scaling-mode” property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--vertical-scaling-mode"/>
     <keyword type="property" name="The “timebase” property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--timebase"/>
     <keyword type="struct" name="struct GstWarpTV" link="gst-plugins-good-plugins-warptv.html#GstWarpTV-struct"/>
-    <keyword type="struct" name="struct GstWavEnc" link="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"/>
     <keyword type="struct" name="struct GstWaveFormSink" link="gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink"/>
+    <keyword type="struct" name="struct GstWavEnc" link="gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct"/>
     <keyword type="struct" name="struct GstWavpackDec" link="gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec-struct"/>
     <keyword type="struct" name="struct GstWavpackEnc" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc-struct"/>
     <keyword type="property" name="The “bitrate” property" link="gst-plugins-good-plugins-wavpackenc.html#GstWavpackEnc--bitrate"/>
@@ -1231,6 +1353,14 @@
     <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_ALWAYS" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-ALWAYS:CAPS"/>
     <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_INITIAL" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-INITIAL:CAPS"/>
     <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_RTP" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-RTP:CAPS"/>
+    <keyword type="constant" name="RTP_JITTER_BUFFER_MODE_NONE" link="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-NONE:CAPS"/>
+    <keyword type="constant" name="RTP_JITTER_BUFFER_MODE_SLAVE" link="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-SLAVE:CAPS"/>
+    <keyword type="constant" name="RTP_JITTER_BUFFER_MODE_BUFFER" link="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-BUFFER:CAPS"/>
+    <keyword type="constant" name="RTP_JITTER_BUFFER_MODE_SYNCED" link="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-SYNCED:CAPS"/>
+    <keyword type="constant" name="RTP_JITTER_BUFFER_MODE_LAST" link="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-LAST:CAPS"/>
+    <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_ALWAYS" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-ALWAYS:CAPS"/>
+    <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_INITIAL" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-INITIAL:CAPS"/>
+    <keyword type="constant" name="GST_RTP_BIN_RTCP_SYNC_RTP" link="gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-RTP:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_IDENTITY" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-IDENTITY:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_90R" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-90R:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_180" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-180:CAPS"/>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
index b7081cd79fc0fca65c2b8ac3739ab4f00bb4eb24..600dd860ada20e885764e5a0a4e10de3415400e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aacparse.html
@@ -88,7 +88,7 @@ can also estimate playback position and clip duration.</p>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
index 8614d2e3c7685439e3991e79acd3d75aef25ecb0..d29f243c519f580865836c8c6e8be21d18020705 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ac3parse.html
@@ -85,7 +85,7 @@
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
index a475283b906527482e7035f08879065cd01a43f9..7e5b443a0a9562731b2670b5bfedb41cc009f0a5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-agingtv.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">
-<link rel="next" href="gst-plugins-good-plugins-alpha.html" title="alpha">
+<link rel="next" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-ac3parse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-alawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-agingtv"></a><div class="titlepage"></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
index bdbe0e7155b7d2c49f45c8ef5258666bec68657f..19d9a23cd0c51abe587c4bec23760298ec467ebf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawdec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
+<link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
 <link rel="next" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-agingtv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-alawenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -51,7 +51,8 @@
     <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                <span class="lineart">╰──</span> GstALawDec
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudiodecoder.html#GstAudioDecoder">GstAudioDecoder</a>
+                    <span class="lineart">╰──</span> GstALawDec
 </pre>
 </div>
 <div class="refsect1">
@@ -60,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.9.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.7.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.9.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.7.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
index b379b0a5c12e35e1be9280a2276f1534cfc1ebee..1eba35510d82a10a6d4f19103ea995307db3d8d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
-<link rel="next" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
+<link rel="next" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-alawdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-amrparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-alawenc"></a><div class="titlepage"></div>
@@ -51,7 +51,8 @@
     <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                <span class="lineart">╰──</span> GstALawEnc
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstaudioencoder.html#GstAudioEncoder">GstAudioEncoder</a>
+                    <span class="lineart">╰──</span> GstALawEnc
 </pre>
 </div>
 <div class="refsect1">
@@ -60,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.10.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.8.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.10.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.8.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alpha.html b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
index 23ad8eeaf9cb576f26833ab3ef8d964dee595dfd..cc67d02eefcee4e64bec89c2d941687cf29e239e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alpha.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-agingtv.html" title="agingtv">
-<link rel="next" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
+<link rel="prev" href="gst-plugins-good-plugins-alphacolor.html" title="alphacolor">
+<link rel="next" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-agingtv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-amrparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-alpha"></a><div class="titlepage"></div>
@@ -153,7 +153,7 @@ a snow video stream.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.7.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.10.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +181,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.7.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.10.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -247,7 +247,7 @@ Jan Schmidt &lt;thaytan@noraisin.net&gt;</td>
 <div class="refsect2">
 <a name="GstAlphaMethod"></a><h3>enum GstAlphaMethod</h3>
 <div class="refsect3">
-<a name="id-1.2.7.9.3.3"></a><h4>Members</h4>
+<a name="id-1.2.10.9.3.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
index 4c6db646df2e5a876b859fd39a46850a0cb9fd74..eac0a64b72cd22cdfa1e6631ebd1ef347bc884d8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alphacolor.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha">
-<link rel="next" href="gst-plugins-good-plugins-alawdec.html" title="alawdec">
+<link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
+<link rel="next" href="gst-plugins-good-plugins-alpha.html" title="alpha">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,8 +20,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-alawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-alawenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-alphacolor"></a><div class="titlepage"></div>
@@ -79,7 +79,7 @@ alpha channel.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.8.6.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.9.6.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -105,7 +105,7 @@ alpha channel.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.8.6.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.9.6.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
index 1fa19d4174b29c54bd137244836abe9f31431b81..645ca30ce16d2e3436e263d3f613ca69d0800e61 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-amrparse.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-alawenc.html" title="alawenc">
+<link rel="prev" href="gst-plugins-good-plugins-alpha.html" title="alpha">
 <link rel="next" href="gst-plugins-good-plugins-apedemux.html" title="apedemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-alawenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-apedemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -86,7 +86,7 @@ formats.</p>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
index 86ffd5f6f0d086bff592c808aa997270f010bb71..9fb04411dc275f038294f7d004341df7c0d1ccc4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
-<link rel="next" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
+<link rel="next" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-audiochebband.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audiodynamic.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audiocheblimit"></a><div class="titlepage"></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
index 9adb1e599bb71de7263e39b8f56f94170dcef4e6..0b80a3258d70263f424a8baf54da4769039501f2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
-<link rel="next" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
+<link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
+<link rel="next" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audioecho.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audioinvert.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audioecho.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audiodynamic"></a><div class="titlepage"></div>
@@ -96,7 +96,7 @@ amplitude of all samples above a specific threshold with a specific ratio,
 a expander does the same for all samples below a specific threshold. If
 soft-knee mode is selected the ratio is applied smoothly.</p>
 <div class="refsect2">
-<a name="id-1.2.23.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.18.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -116,7 +116,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.23.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.18.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -142,7 +142,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.23.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.18.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
index ecf5af412a554871ed48ae9a4f20a63b48776855..341e9ba160874828de3da2c01581671479ad95a9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
-<link rel="next" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
+<link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
+<link rel="next" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audiodynamic.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audiodynamic.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audioecho"></a><div class="titlepage"></div>
@@ -100,7 +100,7 @@ reverb effect, which results in a slightly metallic sound.</p>
 will be used. This can only be set before going to the PAUSED or PLAYING
 state and will be set to the current delay by default.</p>
 <div class="refsect2">
-<a name="id-1.2.22.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.19.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.22.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.19.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.22.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.19.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
index e0c63280dc1293bd4c33ed47b0f181caca4cc56b..6a9299781f7690d36941c020ffe1d24810664e30 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audiocheblimit.html" title="audiocheblimit">
+<link rel="prev" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
 <link rel="next" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audiocheblimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audioecho.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -112,7 +112,7 @@ the Fourier Transform of the impulse response.</p>
 "rate-changed" signal can be used. This should be done for most
 FIR filters as they're depending on the sampling rate.</p>
 <div class="refsect2">
-<a name="id-1.2.18.8.5"></a><h3>Example application</h3>
+<a name="id-1.2.20.8.5"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -456,7 +456,7 @@ gint
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.18.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.20.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -482,7 +482,7 @@ gint
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.18.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.20.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -575,7 +575,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-audiofirfilter.htm
 will be called from the streaming thread and processing will
 stop until the event is handled.</p>
 <div class="refsect3">
-<a name="id-1.2.18.12.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.20.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
index 23053dcb617bca54dd00c171dbf26be83ef9e03c..1e33929f94471eeabfed6e4675503fc4dddada11 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiofirfilter.html" title="audiofirfilter">
-<link rel="next" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
+<link rel="next" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-audiofirfilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsincband.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audioinvert.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audioiirfilter"></a><div class="titlepage"></div>
@@ -109,7 +109,7 @@ transfer function.</p>
 "rate-changed" signal can be used. This should be done for most
 IIR filters as they're depending on the sampling rate.</p>
 <div class="refsect2">
-<a name="id-1.2.19.8.5"></a><h3>Example application</h3>
+<a name="id-1.2.21.8.5"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -405,7 +405,7 @@ gint
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.19.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.21.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -431,7 +431,7 @@ gint
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.19.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.21.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -523,7 +523,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-audioiirfilter.htm
 will be called from the streaming thread and processing will
 stop until the event is handled.</p>
 <div class="refsect3">
-<a name="id-1.2.19.12.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.21.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
index 9b880a943a173a324b11e1eff460c2f9ff013ef8..3c36dfed394a4899fe44158c741683d42a47d500 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audiodynamic.html" title="audiodynamic">
-<link rel="next" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
+<link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
+<link rel="next" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audiodynamic.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audiopanorama.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audioinvert"></a><div class="titlepage"></div>
@@ -78,7 +78,7 @@
 the original with a slight delay can produce effects that sound like resonance.
 Creating a stereo sample from a mono source, with one channel inverted produces wide-stereo sounds.</p>
 <div class="refsect2">
-<a name="id-1.2.24.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.22.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,9 +86,9 @@ Creating a stereo sample from a mono source, with one channel inverted produces
         <td class="listing_lines" align="right"><pre>1
 2
 3</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>saw <span class="gtkdoc opt">!</span> audioinvert invert<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> alsasink
-gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;melo1.ogg&quot;</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioinvert invert<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> alsasink
-gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>saw <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioinvert invert<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>saw <span class="gtkdoc opt">!</span> audioinvert degree<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> alsasink
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;melo1.ogg&quot;</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioinvert degree<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> alsasink
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>saw <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioinvert degree<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
       </tr>
     </tbody>
   </table>
@@ -98,7 +98,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.24.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.22.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,7 +124,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.24.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.22.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
index 70482bba4696a6fc00613a4e74c5c9eac6f8b604..02625f4493018117e1f6fa722e03c9330d57f4f3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
-<link rel="next" href="gst-plugins-good-plugins-auparse.html" title="auparse">
+<link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
+<link rel="next" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audiopanorama.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audioinvert.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audiopanorama.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audiokaraoke"></a><div class="titlepage"></div>
@@ -94,7 +94,7 @@
 <p>Remove the voice from audio by filtering the center channel.
 This plugin is useful for karaoke applications.</p>
 <div class="refsect2">
-<a name="id-1.2.26.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.23.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@ This plugin is useful for karaoke applications.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.26.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.23.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@ This plugin is useful for karaoke applications.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.26.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.23.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
index 55c867dbf12e345af02e597a3b140bddb38a3e21..0c06e979907d0e41dd99a0151a91594005c1debb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audioinvert.html" title="audioinvert">
-<link rel="next" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
+<link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
+<link rel="next" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audioinvert.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audiowsincband.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audiopanorama"></a><div class="titlepage"></div>
@@ -83,7 +83,7 @@
 <p>Stereo panorama effect with controllable pan position. One can choose between the default psychoacoustic panning method,
 which keeps the same perceived loudness, and a simple panning method that just controls the volume on one channel.</p>
 <div class="refsect2">
-<a name="id-1.2.25.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.24.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +105,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.25.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.24.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +131,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.25.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.24.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
index 1710c0c7aa73d5b2a11b0142863ee9c7ae76d2c1..d0dab0d0ada441fcc305539ad71055f0185a2042 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audioiirfilter.html" title="audioiirfilter">
+<link rel="prev" href="gst-plugins-good-plugins-audiopanorama.html" title="audiopanorama">
 <link rel="next" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audioiirfilter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audiopanorama.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -105,7 +105,7 @@ worse stopband attenuation, the other way around for the Blackman window.</p>
 a much better rolloff when using a larger kernel size and almost linear phase. The only
 disadvantage is the much slower execution time with larger kernels.</p>
 <div class="refsect2">
-<a name="id-1.2.20.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.25.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,7 +113,7 @@ disadvantage is the much slower execution time with larger kernels.</p>
         <td class="listing_lines" align="right"><pre>1
 2
 3</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiosincband mode<span class="gtkdoc opt">=</span>band<span class="gtkdoc opt">-</span>pass lower<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">3000</span> upper<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">10000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc freq<span class="gtkdoc opt">=</span><span class="number">1500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsincband mode<span class="gtkdoc opt">=</span>band<span class="gtkdoc opt">-</span>pass lower<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">3000</span> upper<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">10000</span> length<span class="gtkdoc opt">=</span><span class="number">501</span> window<span class="gtkdoc opt">=</span>blackman <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
 gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span><span class="string">&quot;melo1.ogg&quot;</span> <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsincband mode<span class="gtkdoc opt">=</span>band<span class="gtkdoc opt">-</span>reject lower<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">59</span> upper<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">61</span> length<span class="gtkdoc opt">=</span><span class="number">10001</span> window<span class="gtkdoc opt">=</span>hamming <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink
 gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> audiotestsrc wave<span class="gtkdoc opt">=</span>white<span class="gtkdoc opt">-</span>noise <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audiowsincband mode<span class="gtkdoc opt">=</span>band<span class="gtkdoc opt">-</span>pass lower<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">1000</span> upper<span class="gtkdoc opt">-</span>frequency<span class="gtkdoc opt">=</span><span class="number">2000</span> length<span class="gtkdoc opt">=</span><span class="number">31</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink</pre></td>
       </tr>
@@ -125,7 +125,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.20.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.25.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,7 +151,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.20.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.25.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
index 2abd6646fdb983c9ade7bb50a7a40c3074d95a43..51703dae6555e88eb0883183dbfe1d4d54994fa4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-audiowsincband.html" title="audiowsincband">
-<link rel="next" href="gst-plugins-good-plugins-audioecho.html" title="audioecho">
+<link rel="next" href="gst-plugins-good-plugins-auparse.html" title="auparse">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-audiowsincband.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audioecho.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-audiowsinclimit"></a><div class="titlepage"></div>
@@ -105,7 +105,7 @@ worse stopband attenuation, the other way around for the Blackman window.</p>
 a much better rolloff when using a larger kernel size and almost linear phase. The only
 disadvantage is the much slower execution time with larger kernels.</p>
 <div class="refsect2">
-<a name="id-1.2.21.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.26.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -125,7 +125,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.21.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.26.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,7 +151,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.21.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.26.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
index e976a71aa8335618a713e377224228d858cabebf..2f10e99cc3e94f6ac23e44f369fa7d4fce475342 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-audiokaraoke.html" title="audiokaraoke">
+<link rel="prev" href="gst-plugins-good-plugins-audiowsinclimit.html" title="audiowsinclimit">
 <link rel="next" href="gst-plugins-good-plugins-autoaudiosink.html" title="autoaudiosink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-audiokaraoke.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-audiowsinclimit.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-autoaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
index 9f32d78bc38b018d5ac1bfd84df101a0925a8e2b..3ed1e04c0515fcecfd9c08a07932872703a697ad 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
@@ -148,7 +148,7 @@ only work if you have the necessary encoder elements installed of course.
 </tr>
 <tr>
 <td><p><span class="term">author</span></p></td>
-<td>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</td>
+<td>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</td>
 </tr>
 <tr>
 <td><p><span class="term">class</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
index 83117bf61c6f17646de7b28693292b8fb63b658a..5300eba96632fbf9e6a40c2f465aeb58d6473cea 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
@@ -85,7 +85,7 @@
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index e857d1a4386884f5ba948c97474e279cd9d5dabf..a1da43300271e2998713569e51aa2de502adabcc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -120,7 +120,7 @@ For this different algorithms can be selected which will be described later.</p>
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>file <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> deinterlace <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=/</span>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>file <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> deinterlace <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
index bba5f413f274dccaacb8e5eba3972c9dec29478e..4a38c4f1f1c78303f324ebe76f3d89a048f9d089 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
@@ -108,6 +108,9 @@
   /* current volume setup by mixer interface */
   glong volume;
   gboolean mute;
+  
+  /* current directsound device ID */
+  gchar * device_id;
 
   GstCaps *cached_caps;
   /* lock used to protect writes and resets */
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
index 4eb8af165bc99a53aaac1c07b64c230c67dad794..3ee915f85106f4d718522b2c560b42b9a10eac6b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.52.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.53.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.52.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.53.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
index ad4c889f5eed68b3880446905e3c9a3bbf294b92..391297f204a2851648c2dc398ad32e0c55d009f5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
@@ -155,7 +155,7 @@ GstFlacEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.53.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.54.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +181,7 @@ GstFlacEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.53.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.54.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -202,7 +202,35 @@ GstFlacEnc implements
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/x-raw, format=(string){ S24LE, S24_32LE, S16LE, S8 }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</td>
+<td>audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)1</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)3, channel-mask=(bitmask)0x0000000000000007</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)4, channel-mask=(bitmask)0x0000000000000033</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)5, channel-mask=(bitmask)0x0000000000000037</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)6, channel-mask=(bitmask)0x000000000000003f</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)7, channel-mask=(bitmask)0x000000000000013f</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
index da59e286f42a3abb46f127272d71c5a527e230ee..b1054314348ff837002b75e88d4518a37742ad3a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
@@ -84,7 +84,7 @@ flacparse outputs have all of the metadata that oggmux expects to receive,
 which allows you to (for example) remux an ogg/flac or convert a native FLAC
 format file to an ogg bitstream.</p>
 <div class="refsect2">
-<a name="id-1.2.54.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.55.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.54.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.55.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -114,7 +114,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
@@ -130,7 +130,7 @@ buffer has the timestamp, duration, offset, and offset_end set.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.54.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.55.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flactag.html b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
index 191f47a8c0730ae91d46c254f371c3c736ec84af..bfb39767a17b7ecc8602992d06fa86d002de37b2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
@@ -66,7 +66,7 @@ GstFlacTag implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.55.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.56.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -92,7 +92,7 @@ GstFlacTag implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.55.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.56.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
index a9ed63e5cd3c9eced7d7a8a1a878288a51777d1e..d27137a8a7dee271282560b0618871d504bf8451 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
@@ -58,7 +58,7 @@
 <a name="gst-plugins-good-plugins-flvdemux.description"></a><h2>Description</h2>
 <p>flvdemux demuxes an FLV file into the different contained streams.</p>
 <div class="refsect2">
-<a name="id-1.2.56.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.57.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -74,7 +74,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.56.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.57.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -100,7 +100,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.56.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
index 8125ac638e52d9c3ea9fd628dc945c9ca80cfa41..56ea071a51cc8daa07f120d71339a05968c3b1e2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -88,7 +88,7 @@ GstFlvMux implements
 <a name="gst-plugins-good-plugins-flvmux.description"></a><h2>Description</h2>
 <p>flvmux muxes different streams into an FLV file.</p>
 <div class="refsect2">
-<a name="id-1.2.57.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.58.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ GstFlvMux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.57.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.58.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ GstFlvMux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.57.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
index cc00e79fa61f51c734dd6728b9590bf620f2196f..f55462fbe38bc944d6dcf191f8bf3cb2f37df242 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flxdec.html
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.58.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.59.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.58.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gamma.html b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
index 5c08a9e3fcc9aaa55ed3e7a96a178e033e0f08ee..cfc785e97e082407f53b29054baa484e9665d589 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.html
@@ -76,7 +76,7 @@
 <a name="gst-plugins-good-plugins-gamma.description"></a><h2>Description</h2>
 <p>Performs gamma correction on a video stream.</p>
 <div class="refsect2">
-<a name="id-1.2.59.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.60.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,7 +103,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.59.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.60.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.59.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.60.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
index e507514cd60ab73547ff0c13d14f7b8c6e72ebb3..87fefef49199b1885b042745251be24a8f9d150b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-gamma.html" title="gamma">
-<link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom">
+<link rel="next" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-gamma.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-gdkpixbufsink"></a><div class="titlepage"></div>
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.60.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.61.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +116,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.60.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.61.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html
index eba9d002711c946f3611908a8787ce52e8cdf35a..d0a2bc6364d0ffcd906fa8b8e43dcae53b11799c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
-<link rel="next" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
+<link rel="prev" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
+<link rel="next" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,8 +20,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-goom"></a><div class="titlepage"></div>
@@ -60,7 +60,7 @@
 <p>Goom is an audio visualisation element. It creates warping structures
 based on the incoming audio signal.</p>
 <div class="refsect2">
-<a name="id-1.2.61.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.63.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@ based on the incoming audio signal.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.61.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.63.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@ based on the incoming audio signal.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.61.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.63.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
index c0fd2359866f0a725367f8125a7dcfe212d683ea..a3e04c57afaed374340b4c8d1936ad75ab746106 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-goom.html" title="goom">
-<link rel="next" href="gst-plugins-good-plugins-hdv1394src.html" title="hdv1394src">
+<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
+<link rel="next" href="gst-plugins-good-plugins-goom.html" title="goom">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,8 +20,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-hdv1394src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-goom2k1"></a><div class="titlepage"></div>
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstGoom"></a><div class="refsect1">
+<a name="GstGoom2k1"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-goom2k1.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
@@ -41,7 +41,7 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-good-plugins-goom.html#GstGoom-struct" title="struct GstGoom">GstGoom</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-goom2k1.html#GstGoom2k1-struct" title="struct GstGoom2k1">GstGoom2k1</a></td>
 </tr></tbody>
 </table></div>
 </div>
@@ -51,8 +51,8 @@
     <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
             <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
-                <span class="lineart">╰──</span> GstAudioVisualizer-ExtGoom
-                    <span class="lineart">╰──</span> GstGoom
+                <span class="lineart">╰──</span> GstAudioVisualizer-ExtGoom2k1
+                    <span class="lineart">╰──</span> GstGoom2k1
 </pre>
 </div>
 <div class="refsect1">
@@ -166,8 +166,8 @@ visualisation. Also available is goom2k4, with a different look.</p>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-goom2k1.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
-<a name="GstGoom-struct"></a><h3>struct GstGoom</h3>
-<pre class="programlisting">struct GstGoom;</pre>
+<a name="GstGoom2k1-struct"></a><h3>struct GstGoom2k1</h3>
+<pre class="programlisting">struct GstGoom2k1;</pre>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
index da7ece07196cfa7dbb1eda34e67e8aefed16a668..da0409f3ea8e64363578aa5c51befefd9080b951 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
+<link rel="prev" href="gst-plugins-good-plugins-goom.html" title="goom">
 <link rel="next" href="gst-plugins-good-plugins-icydemux.html" title="icydemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -107,7 +107,7 @@ GstHDV1394Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.63.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.64.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -133,7 +133,7 @@ GstHDV1394Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.63.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.64.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
index 7b4b6c1d3195b9aa3f7d0a2518b0f49ea1163592..fc0d11681f34e5eaeae27ad7b6578db2c160a196 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
@@ -62,7 +62,7 @@ an HTTP stream). The mime type of the data between the tag blocks is
 detected using typefind functions, and the appropriate output mime type set
 on outgoing buffers. </p>
 <div class="refsect2">
-<a name="id-1.2.64.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.65.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -81,7 +81,7 @@ or giosrc instead of souphttpsrc should also work.)
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.64.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.65.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -107,7 +107,7 @@ or giosrc instead of souphttpsrc should also work.)
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.64.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.65.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
index f7110c4a4edab96db64c63d62253379e7fbcf40c..21df75cde3bf5fbe730a26d75aa2cfd6fabe212a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3demux.html
@@ -85,7 +85,7 @@ mode, such as wavparse, can operate on files containing ID3 tag information.</p>
 <p>This id3demux element replaced an older element with the same name which
 relied on libid3tag from the MAD project.</p>
 <div class="refsect2">
-<a name="id-1.2.65.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.66.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,7 +103,7 @@ the appropriate mime type set on buffers produced from id3demux.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.65.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.66.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -129,7 +129,7 @@ the appropriate mime type set on buffers produced from id3demux.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.65.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.66.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
index e32f4897d711938521dd026f1d77ae4bd2ec17c5..6b73ebfd50a29d675fee4298c5cf09d5b2fb8039 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
@@ -67,7 +67,7 @@ GstId3v2Mux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.66.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.67.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@ GstId3v2Mux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.66.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.67.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
index 61df5485709cd5842126bd955f2395cf86cffda7..bba1a27f97701c87b4cecac3b719a18b25d55368 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
@@ -60,13 +60,13 @@
 the input. It duplicates the first frame with the framerate requested
 by downstream, allows seeking and answers queries.</p>
 <div class="refsect2">
-<a name="id-1.2.67.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.69.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
       <tr>
         <td class="listing_lines" align="right"><pre>1</pre></td>
-        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>some<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> decodebin2 <span class="gtkdoc opt">!</span> imagefreeze <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>some<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> imagefreeze <span class="gtkdoc opt">!</span> autovideosink</pre></td>
       </tr>
     </tbody>
   </table>
@@ -76,7 +76,7 @@ by downstream, allows seeking and answers queries.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.67.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.69.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@ by downstream, allows seeking and answers queries.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.67.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.69.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
index 56875f86658e275a0b4263bd903929a64d308699..0110c4d4d11fc764fc1a2cbd5a22416c6e5201b2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-interleave.html
@@ -89,7 +89,7 @@ some of the request pads but this will change the caps of the output buffers. Ch
 caps is _not_ supported yet.</p>
 <p>The channel number of every sinkpad in the out can be retrieved from the "channel" property of the pad.</p>
 <div class="refsect2">
-<a name="id-1.2.68.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.70.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ channels exchanged.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.68.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.70.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ channels exchanged.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.68.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.70.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index c4cfc816113b65ce7fe13b4e1d5ef26ee0d5da99..6f7614e68b490945f65b1cbbf21d4189cef14397 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-interleave.html" title="interleave">
-<link rel="next" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
+<link rel="next" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-interleave.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-ismlmux"></a><div class="titlepage"></div>
@@ -171,7 +171,7 @@ fragmented layout is intended for streaming purposes, then
 <a class="link" href="gst-plugins-good-plugins-ismlmux.html#GstISMLMux--streamable" title="The “streamable” property"><span class="type">“streamable”</span></a> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.69.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.71.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -190,7 +190,7 @@ and muxes it into an mj2 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.69.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.71.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -216,7 +216,7 @@ and muxes it into an mj2 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.69.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.71.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
index d5bbf5ed02bc5c6eb450199b64ae8563f1e45b0e..af8b8c72c7279a17ba31c0ca8d1c2e5a3372f344 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
-<link rel="next" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
+<link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
+<link rel="next" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-jpegdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-ismlmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-jackaudiosink"></a><div class="titlepage"></div>
@@ -108,7 +108,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.71.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.72.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.71.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.72.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
index 3e89db103caeb855c035dfe1d89380dd2dbf4825..0a1e70c370b5ed735e052c15529baf75c9242404 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-ismlmux.html" title="ismlmux">
-<link rel="next" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
+<link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
+<link rel="next" href="gst-plugins-good-plugins-jpegdec.html" title="jpegdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-ismlmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-jpegdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-jackaudiosrc"></a><div class="titlepage"></div>
@@ -109,7 +109,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.70.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.73.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -135,7 +135,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.70.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.73.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index ba28071081153388e0d6d4ba09efeaac9c6abe85..8a07915c5067242d28b6cca1cfc6332382ee0427 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-jackaudiosink.html" title="jackaudiosink">
+<link rel="prev" href="gst-plugins-good-plugins-jackaudiosrc.html" title="jackaudiosrc">
 <link rel="next" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-jackaudiosrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-jpegenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -83,7 +83,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.72.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.74.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +109,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.72.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.74.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
index df46e54aff2ea16eb9717d1f9f082bf4960f93ae..96ebd0d2eef500279cca4be076aa162a8e3e4706 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
@@ -106,7 +106,7 @@ GstJpegEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.73.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.75.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +132,7 @@ GstJpegEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.73.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.75.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html
index 7706870bea2557cbc29e44a4a59f4d777aef2e3c..c7ca85284253680b0ff4886def11027a106d68c2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-level.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-jpegenc.html" title="jpegenc">
-<link rel="next" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
+<link rel="next" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-jpegenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-matroskamux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-matroskademux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-level"></a><div class="titlepage"></div>
@@ -148,7 +148,7 @@ The message's structure contains these fields:</p>
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.74.7.6"></a><h3>Example application</h3>
+<a name="id-1.2.77.7.6"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -442,7 +442,7 @@ The message's structure contains these fields:</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.74.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.77.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -468,7 +468,7 @@ The message's structure contains these fields:</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.74.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.77.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
index a061f525e02a6b2042c7f8fad7d824d3f672f6d0..23858b293a183aa3ebbe43c7485e4a3ab79be3c4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
-<link rel="next" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
+<link rel="prev" href="gst-plugins-good-plugins-level.html" title="level">
+<link rel="next" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-matroskamux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-mj2mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-level.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-matroskamux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-matroskademux"></a><div class="titlepage"></div>
@@ -74,7 +74,7 @@
 <a name="gst-plugins-good-plugins-matroskademux.description"></a><h2>Description</h2>
 <p>matroskademux demuxes a Matroska file into the different contained streams.</p>
 <div class="refsect2">
-<a name="id-1.2.76.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.78.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -90,7 +90,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.76.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.78.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -105,7 +105,7 @@
 </tr>
 <tr>
 <td><p><span class="term">author</span></p></td>
-<td>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</td>
+<td>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</td>
 </tr>
 <tr>
 <td><p><span class="term">class</span></p></td>
@@ -116,7 +116,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.76.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.78.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
index f7ffb01c6a4f5f614a206938289e85b1ced4d602..38204427f2432146d98debef2272fed130972177 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-level.html" title="level">
-<link rel="next" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
+<link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
+<link rel="next" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-level.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-matroskademux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-matroskademux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mj2mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-matroskamux"></a><div class="titlepage"></div>
@@ -100,7 +100,7 @@ GstMatroskaMux implements
 <a name="gst-plugins-good-plugins-matroskamux.description"></a><h2>Description</h2>
 <p>matroskamux muxes different input streams into a Matroska file.</p>
 <div class="refsect2">
-<a name="id-1.2.75.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.79.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -127,7 +127,7 @@ GstMatroskaMux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.75.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.79.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -142,7 +142,7 @@ GstMatroskaMux implements
 </tr>
 <tr>
 <td><p><span class="term">author</span></p></td>
-<td>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</td>
+<td>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</td>
 </tr>
 <tr>
 <td><p><span class="term">class</span></p></td>
@@ -153,7 +153,7 @@ GstMatroskaMux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.75.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.79.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index 36333831253347d12caee5ea3a5092dfa8e9cb60..c75c7f12ed5c70ce1c15315172ee7e10d7e27f47 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-matroskademux.html" title="matroskademux">
+<link rel="prev" href="gst-plugins-good-plugins-matroskamux.html" title="matroskamux">
 <link rel="next" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-matroskademux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-matroskamux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-monoscope.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -171,7 +171,7 @@ fragmented layout is intended for streaming purposes, then
 <a class="link" href="gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux--streamable" title="The “streamable” property"><span class="type">“streamable”</span></a> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.77.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.80.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -190,7 +190,7 @@ and muxes it into an mj2 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.77.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.80.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -216,7 +216,7 @@ and muxes it into an mj2 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.77.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.80.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
index ff845a67fc46281ee60ae5eaae64b3539148cdc5..166ac5e52e09787428fa34768e9cce3012ae7170 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
-<link rel="next" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
+<link rel="next" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-mj2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mp4mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-monoscope"></a><div class="titlepage"></div>
@@ -49,7 +49,7 @@
 <p>Monoscope is an audio visualisation element. It creates a coloured
 curve of the audio signal like on an oscilloscope.</p>
 <div class="refsect2">
-<a name="id-1.2.78.4.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.81.4.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -65,7 +65,7 @@ curve of the audio signal like on an oscilloscope.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.78.4.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.81.4.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +91,7 @@ curve of the audio signal like on an oscilloscope.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.78.4.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.81.4.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
index a3c79bd88d5a2fd87e909923027b45f0291bf094..f82d0987af71736d1853ae8225d38673f2b2e67c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
-<link rel="next" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
+<link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
+<link rel="next" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-mp4mux"></a><div class="titlepage"></div>
@@ -171,7 +171,7 @@ If such fragmented layout is intended for streaming purposes, then
 <span class="type">“streamable”</span> allows foregoing to add index metadata (at the end of
 file).</p>
 <div class="refsect2">
-<a name="id-1.2.80.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.82.8.7"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -189,7 +189,7 @@ and muxes it into an mp4 file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.80.8.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.82.8.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -215,7 +215,7 @@ and muxes it into an mp4 file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.80.8.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.82.8.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
index 7e993c6a7790bfed92cc6dd528c64ca7adf5b1c9..1b68be4d47d284d7330bf9e4702080766e5b277f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
-<link rel="next" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
+<link rel="prev" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
+<link rel="next" href="gst-plugins-good-plugins-mulawdec.html" title="mulawdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,8 +20,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-monoscope.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-mp4mux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-mp4mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-mulawdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-mpegaudioparse"></a><div class="titlepage"></div>
@@ -59,7 +59,7 @@
 <a name="gst-plugins-good-plugins-mpegaudioparse.description"></a><h2>Description</h2>
 <p>Parses and frames mpeg1 audio streams. Provides seeking.</p>
 <div class="refsect2">
-<a name="id-1.2.79.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.83.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -75,7 +75,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.79.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.83.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.79.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.83.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
index 1e44c82aecf7a985803a5472edb6c04eb405f984..0bb7bab5583b989037da797d57707f844a14b512 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-mp4mux.html" title="mp4mux">
+<link rel="prev" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">
 <link rel="next" href="gst-plugins-good-plugins-mulawenc.html" title="mulawenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-mp4mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-mpegaudioparse.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-mulawenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.81.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.84.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.81.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.84.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
index 2a7a93f86b14f9441eb60db9cd10f88789615991..4ad0818f944f917b801574e54de63376fd78645d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.82.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.85.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +87,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.82.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.85.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
index 26575179c5ec485a1a4ff3afb306c2748053d0c6..f45b8ed43f7eb75967f89c0f90d5d01cf2f6bfd3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesink.html
@@ -174,7 +174,7 @@ message named</p>
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.83.7.11"></a><h3>Example launch line</h3>
+<a name="id-1.2.86.7.11"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -192,7 +192,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.83.7.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.86.7.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -218,7 +218,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.83.7.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.86.7.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -261,7 +261,7 @@ gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span
 <a name="GstMultiFileSinkNext"></a><h3>enum GstMultiFileSinkNext</h3>
 <p>File splitting modes.</p>
 <div class="refsect3">
-<a name="id-1.2.83.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.86.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
index 1a31c6e48894f01a97c3b9278937d715d869c908..634accd6e935b2f3ba56339fed1703bf2ccf71ac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
@@ -110,7 +110,7 @@ after the first picture. We also need a videorate element to set timestamps
 on all buffers after the first one in accordance with the framerate.</p>
 <p>File names are created by replacing "%d" with the index using <code class="function">printf()</code>.</p>
 <div class="refsect2">
-<a name="id-1.2.84.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.87.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -131,7 +131,7 @@ files named img.0000.png, img.0001.png, etc.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.84.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.87.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +157,7 @@ files named img.0000.png, img.0001.png, etc.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.84.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.87.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
index c4ef8211f34dfa1d5c87016ec3ea64f63ba2fe25..c7d8647261b3eabd4639740acb5201eaf31d7ea1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
@@ -96,7 +96,7 @@ data).</p>
 be configured specifically with the <a class="link" href="gst-plugins-good-plugins-multipartdemux.html#GstMultipartDemux--boundary" title="The “boundary” property"><span class="type">“boundary”</span></a> property
 otherwise it will be autodetected.</p>
 <div class="refsect2">
-<a name="id-1.2.85.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.88.7.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,7 +113,7 @@ containing JPEG frames.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.85.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.88.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -139,7 +139,7 @@ containing JPEG frames.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.85.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.88.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
index a85bd774f39bcc06033a16be1a0d8d59764017a8..3c4b9eb787ce5f6b2e289276e8729437ff168812 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartmux.html
@@ -77,7 +77,7 @@
 incoming buffers when muxing them to a multipart stream. Most of the time 
 multipart streams are sequential JPEG frames.</p>
 <div class="refsect2">
-<a name="id-1.2.86.7.3"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.89.7.3"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -94,7 +94,7 @@ stored to a file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.86.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.89.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -120,7 +120,7 @@ stored to a file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.86.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.89.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
index 9284f8db458a84aaee06c2c519c19e703de30863..9e05f3aa6778302834d4263c472f0a36185f271f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
@@ -238,7 +238,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.87.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.90.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -264,7 +264,7 @@ It can be combined with rtp payload encoders to implement RTP streaming.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.87.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.90.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -503,7 +503,7 @@ the same host/port pair or not.</p>
 calls must be performed to actually remove the host/port pair from the list
 of destinations.</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -544,7 +544,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>Clear the list of clients.</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -578,7 +578,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
 <p>Signal emited when a new client is added to the list of
 clients.</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -622,7 +622,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
 <p>Signal emited when a client is removed from the list of
 clients.</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -667,7 +667,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
  and <em class="parameter"><code>port</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -699,7 +699,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.87.12.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.90.12.6.6"></a><h4>Returns</h4>
 <p> a GstStructure: bytes_sent, packets_sent,
 connect_time (in epoch seconds), disconnect_time (in epoch seconds)</p>
 </div>
@@ -718,7 +718,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-multiudpsink.html#
  from the list of
 clients.</p>
 <div class="refsect3">
-<a name="id-1.2.87.12.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.90.12.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html
index dc3d86d04e07f3cbff18e7566515c0bf186eb22f..786535ccc362e065b58356235e1fe6fdf8185fb3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-optv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html
@@ -90,7 +90,7 @@
 real-time video effect. Input images are binarized and combined with
 various optical pattern.</p>
 <div class="refsect2">
-<a name="id-1.2.88.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.91.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -106,7 +106,7 @@ various optical pattern.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.88.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.91.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +132,7 @@ various optical pattern.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.88.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.91.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
index 4f253ffe768f75e135d166eb4d39f0c46a362804..55f766695b0bb4f1850a16bd3dbc12aac9e59f64 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
@@ -104,7 +104,7 @@ GstOss4Sink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.89.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.92.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ GstOss4Sink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.89.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.92.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
index 64074ed347b754daf6d0470bea3cf75926c54222..a3fe56ad8f90cf49bfacc28b810d09ad04011f4c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
@@ -95,7 +95,7 @@ GstOss4Source implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.90.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.93.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +121,7 @@ GstOss4Source implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.90.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.93.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
index bb4ae9f267e05dfaf2b0af3103f4b3b9cbc290a8..61d2f424993f671729e002246430159d63b7b357 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
@@ -79,7 +79,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.91.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.94.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -105,7 +105,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.91.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.94.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
index 658da05bd51387042ab923e66299d61572c5e579..8127d15523845d68db473f6539899b6fa957ffdf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
@@ -95,7 +95,7 @@ GstOssSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.92.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.95.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +121,7 @@ GstOssSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.92.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.95.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
index c88c8524856b80774fd1c3bf77b49b03d76d9134..a68f4f1bd847965e1e57204b9ea81b0784911605 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
@@ -65,7 +65,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.93.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.96.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +91,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.93.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.96.5.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -110,10 +110,8 @@
 
   AudioUnit audiounit;
   double volume;
-  GstCaps *cached_caps;
 
   guint channels;
-  GstAudioChannelPosition channel_positions[GST_OSX_AUDIO_MAX_CHANNEL];
 };
 </pre>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
index 5cb774f13ac38868e748f18d4ab37da246f343b1..cbbc8d27c3fa44d7b10a3ef75f0b8db4effb2d3f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
@@ -65,7 +65,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.94.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.97.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +91,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.94.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.97.5.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -107,8 +107,6 @@
   GstAudioBaseSrc src;
 
   AudioDeviceID device_id;
-
-  GstCaps *cached_caps;
 };
 </pre>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
index 089fc9aedd7c06d3a1df69e2bf81506ce89caaca..3ddec3b6557f2ece9f4e11407fa1f097748b516e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
@@ -72,7 +72,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.95.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.98.5.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -98,7 +98,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.95.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.98.5.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </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 71f2f25590404a40953d5c667a54ac8ce66d6eb9..5ea3353f9be3393493a097a324fbc765c46fb689 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.5.2</td>
+<td>1.5.90</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 9e494b5f23d48be2ded6f0770268a2ee61b7cadb..3b10557f856f5d85c4db62df9814b2c15ffefe2f 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.5.2</td>
+<td>1.5.90</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 925e9a4cc3d9e52204525ec5b177596a85c6c739..c8e82a73dca0c88b9c76e32081007e2dcb662dd6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-aasink.html" title="aasink">
-<link rel="next" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
+<link rel="next" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-aasink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-alaw"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</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 0bddb4cef12c1a64968f969b332682139861cca9..30fe64931a4408e018039129b71ef60756d4e0dc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
-<link rel="next" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
+<link rel="next" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-alpha"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.5.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.6.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.5.4"></a><h2>Elements</h2>
+<a name="id-1.3.6.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 2a71b2e851886bfcd7daf58ba644f871972f953a..7b8f3d0186d591e32af2924888e51aea9437270b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
-<link rel="next" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-alaw.html" title="alaw">
+<link rel="next" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alaw.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-alphacolor"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.6.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.5.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.6.4"></a><h2>Elements</h2>
+<a name="id-1.3.5.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 0d2576cb8c292cd64fe2c6f551150e10e7de44a1..faf627d312d77ab3d3d610095491a35a8803ce4c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-alphacolor.html" title="alphacolor">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-alpha.html" title="alpha">
 <link rel="next" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alphacolor.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-alpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</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 447fac2a7a9cefcd734ada6da6a5cea80b3ad58a..bd4afd9909ff72b2549db93856fa4bc9e9782e41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-apetag.html" title="apetag">
-<link rel="next" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
+<link rel="next" href="gst-plugins-good-plugins-plugin-audioparsers.html" title="audioparsers">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-apetag.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-audioparsers.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-audiofx"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
new file mode 100644
index 0000000000000000000000000000000000000000..844c8a4aab081418e59cc6ef309655144c5e0d8a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
@@ -0,0 +1,109 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>audioparsers: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
+<link rel="next" href="gst-plugins-good-plugins-plugin-auparse.html" title="auparse">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts"></td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-auparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-plugin-audioparsers"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle">audioparsers</span></h2>
+<p>audioparsers — <a name="plugin-audioparsers"></a>Parsers for various audio formats</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="id-1.3.9.3"></a><h2>Plugin Information</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">filename</span></p></td>
+<td>libgstaudioparsers.so</td>
+</tr>
+<tr>
+<td><p><span class="term">version</span></p></td>
+<td>1.5.90</td>
+</tr>
+<tr>
+<td><p><span class="term">run-time license</span></p></td>
+<td>LGPL</td>
+</tr>
+<tr>
+<td><p><span class="term">package</span></p></td>
+<td>GStreamer Good Plug-ins source release</td>
+</tr>
+<tr>
+<td><p><span class="term">origin</span></p></td>
+<td>Unknown package origin</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="id-1.3.9.4"></a><h2>Elements</h2>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-aacparse.html" title="aacparse">aacparse</a></span></p></td>
+<td>Advanced Audio Coding parser</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-ac3parse.html" title="ac3parse">ac3parse</a></span></p></td>
+<td>AC3 parser</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-amrparse.html" title="amrparse">amrparse</a></span></p></td>
+<td>Adaptive Multi-Rate audio parser</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">dcaparse</a></span></p></td>
+<td>DCA parser</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-flacparse.html" title="flacparse">flacparse</a></span></p></td>
+<td>Parses audio with the FLAC lossless audio codec</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-mpegaudioparse.html" title="mpegaudioparse">mpegaudioparse</a></span></p></td>
+<td>Parses and frames mpeg1 audio streams (levels 1-3), provides seek</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">sbcparse</a></span></p></td>
+<td>Parses an SBC bluetooth audio stream</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-wavpackparse.html" title="wavpackparse">wavpackparse</a></span></p></td>
+<td>Wavpack parser</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
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 aefd6ed875fe753f56177bfa906a348f81784a48..ce28892b7900775c6728c2cce8face8218c11a15 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-audiofx.html" title="audiofx">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-audioparsers.html" title="audioparsers">
 <link rel="next" href="gst-plugins-good-plugins-plugin-autodetect.html" title="autodetect">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-audiofx.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-audioparsers.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-autodetect.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.9.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.10.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.9.4"></a><h2>Elements</h2>
+<a name="id-1.3.10.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 6704b50ddeccfb87c622eade1084be22e1c1b718..65899d33351feb34fa29c8139dce0fe2677363b1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.10.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.11.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.10.4"></a><h2>Elements</h2>
+<a name="id-1.3.11.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 03e7f7382775f951a41ed1c4febf25b979c0faaf..2028cb980ddbbcc2520a44dbbc9c532cd307a2fe 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.11.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.12.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.11.4"></a><h2>Elements</h2>
+<a name="id-1.3.12.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 8c9b1a9f221332c44a37f1000ec3f682cff2985a..e6a6342befcad7eb62faf7148df8c94e37507527 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.12.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.13.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.12.4"></a><h2>Elements</h2>
+<a name="id-1.3.13.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 b22f66cd827a8d4bda72035cc4b6e28db0453d96..ffcd13f499627311009eff2ad21468da293bb403 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.13.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.14.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.13.4"></a><h2>Elements</h2>
+<a name="id-1.3.14.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 847ecf2c21229f03ffd87fdcaf8d0b159d053e5e..7917c8f3bc52bc68cc548583873374b6025da6bf 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.14.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.14.4"></a><h2>Elements</h2>
+<a name="id-1.3.15.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 4115381b623567e9261153926fbe47acceeab3d2..6b46fba57991844c47c7ea6a53417257937f67b4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.15.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.15.4"></a><h2>Elements</h2>
+<a name="id-1.3.16.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 170d9075b669109e01f4a301f1c2015cf096b9fb..602edb7a1d141fcbc5c4849ac2533bcf246cbbf1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.16.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.17.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.16.4"></a><h2>Elements</h2>
+<a name="id-1.3.17.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
index de26db136da1d0745db64a171bcb045c43d96461..838b8566349e45f27b307183ca364adcaacb68e6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-directsound.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.17.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.18.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.17.4"></a><h2>Elements</h2>
+<a name="id-1.3.18.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 f5a77ee03f76c10a120beaecd7c24108686191a3..fb0cc9938384171e19645f33184489a416c05551 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.18.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.19.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.18.4"></a><h2>Elements</h2>
+<a name="id-1.3.19.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -72,7 +72,7 @@
 <td>Generates DTMF tones</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpdtmfdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">rtpdtmfdepay</a></span></p></td>
 <td>Generates DTMF Sound from telephone-event RTP packets</td>
 </tr>
 <tr>
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 9d6b76120ddedcf09735daf7bc6cb48a9660396c..339ddc28b390620f4d766193d3f0ce65b12824eb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-dtmf.html" title="dtmf">
-<link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
+<link rel="next" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dtmf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-dv"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.19.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.20.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.19.4"></a><h2>Elements</h2>
+<a name="id-1.3.20.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 7f8d4273a05aaa16523470b5a0dfd6d6191877ec..2c1c37d38ba0aaf6b52163b440db2043f8d66e5b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
-<link rel="next" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
+<link rel="next" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flac.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-effectv"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</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 fe5583d5e37bc3ea38e011211a812d050943c6e1..edc01869a07cc9402ec1543ae6fd89254dddf451 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-dv.html" title="dv">
-<link rel="next" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
+<link rel="next" href="gst-plugins-good-plugins-plugin-flac.html" title="flac">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-dv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flac.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-equalizer"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.20.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.22.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.20.4"></a><h2>Elements</h2>
+<a name="id-1.3.22.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 b2329c26e16406f597286e2b8d11ee2078ed0d3c..480226ce6b7758623c6323fb60f48a262196c298 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-effectv.html" title="effectv">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-equalizer.html" title="equalizer">
 <link rel="next" href="gst-plugins-good-plugins-plugin-flv.html" title="flv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-effectv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-equalizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-flv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.22.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.23.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.22.4"></a><h2>Elements</h2>
+<a name="id-1.3.23.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 0a5f91db0153920ee6be633d87446641314bc0ae..5fa0446f24527e4057d64ea747e770acf7ee7e67 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.23.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.24.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.23.4"></a><h2>Elements</h2>
+<a name="id-1.3.24.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 99bad7ceba6996408b9e00567cd55918b4bce07f..f4444fa032b4e819ed5cc662074c5cc51195c577 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.24.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.25.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.24.4"></a><h2>Elements</h2>
+<a name="id-1.3.25.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 adc6f7683add15e3323c8e16f478c4a995b0624e..d9992d8c0f7364058e152418df83fb6c0ca657ba 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-flxdec.html" title="flxdec">
-<link rel="next" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
+<link rel="next" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-flxdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-gdkpixbuf"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.25.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.26.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.25.4"></a><h2>Elements</h2>
+<a name="id-1.3.26.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 1633e89d5891b634e4506cd57e41c24c36197d5e..dda0a10a85784b207305bb17f0c45bc4ca483670 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
-<link rel="next" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
+<link rel="next" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-goom"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.26.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.28.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.26.4"></a><h2>Elements</h2>
+<a name="id-1.3.28.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 e108fad8d451f055888a5c33fea413b62018fe09..601d6f470d4afef2ab6855f84d82391b3292f467 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
-<link rel="next" href="gst-plugins-good-plugins-plugin-icydemux.html" title="icydemux">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html" title="gdkpixbuf">
+<link rel="next" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-icydemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-gdkpixbuf.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-goom.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-goom2k1"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</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 5e8177b0c93a6f46102fb29895cee2d02688712b..5ac782310a801b17f5ebdadb780e014fa5f9dbe3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-goom2k1.html" title="goom2k1">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-goom.html" title="goom">
 <link rel="next" href="gst-plugins-good-plugins-plugin-id3demux.html" title="id3demux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom2k1.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-goom.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-id3demux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.28.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.29.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.28.4"></a><h2>Elements</h2>
+<a name="id-1.3.29.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 ce91976cf6259b5951f003e49eddd3d3c04e9026..4f7822b9f8aa4ab86bce94273670b1ee14e024de 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.29.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.30.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.29.4"></a><h2>Elements</h2>
+<a name="id-1.3.30.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 cb7717f3a68578af5366580763aa0fbb5b822bfc..6abbf9250b942d9e050ba67cf20da13cd978ad29 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.30.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.31.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.30.4"></a><h2>Elements</h2>
+<a name="id-1.3.31.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 a0446e8b7e881ec7c903220af3c7a055076ff5d8..8f63c56753f910c5cba2098b54153a314b356447 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.31.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.32.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.31.4"></a><h2>Elements</h2>
+<a name="id-1.3.32.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 d3ea10a84302d2fbfafbcbbe8728d1f0bf3248a2..637e2c260881f826d05a2da25fcdbb81cb375bc0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.32.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.33.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.32.4"></a><h2>Elements</h2>
+<a name="id-1.3.33.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 9d8655d818d485a55ed5ca8659275745544c30bb..95b1a9842e35e70d085230a2f09df877620ed3d7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.33.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.34.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.33.4"></a><h2>Elements</h2>
+<a name="id-1.3.34.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 e659cbd221e678e462a14108cb8a212459143226..978a26e6518a45bd8214e9abaae053ab12efb8d4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.34.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.35.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.34.4"></a><h2>Elements</h2>
+<a name="id-1.3.35.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 506594629c7759bffae8591975d3ce685bdfd54b..60566a9e9235a66a284178a786506aa90a390407 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.35.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.36.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.35.4"></a><h2>Elements</h2>
+<a name="id-1.3.36.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 ddd3022ae16562781587d0787d3b9a10819a44af..e618b660750a76989c3d6fd601114b6f363462ed 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.36.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.37.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.36.4"></a><h2>Elements</h2>
+<a name="id-1.3.37.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
index fee7f1a9a4a66569d83a1ce6c7e86a0c1985dfc8..b69cb6412222e7f3ec2615697a637d51bb31b256 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-monoscope.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.37.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.38.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.37.4"></a><h2>Elements</h2>
+<a name="id-1.3.38.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 e3825dd47064c8bc0723517745a6bc9e98dbf071..c405c21c541a228f2d5214f6c08901d7d3e7ddee 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.38.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.39.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.38.4"></a><h2>Elements</h2>
+<a name="id-1.3.39.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 4a46c475b3df5fce2769f8c7c9ce32134bfd688b..b3d6114b0b44f72f439c24cfc15a8d85a4f95ec3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.39.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.40.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.39.4"></a><h2>Elements</h2>
+<a name="id-1.3.40.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 f38fee6cb14ff187ea50442411fcfda1df0f4acb..28961f7f0929c859b2f21ff0e4d9e00c6530e7d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.40.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.41.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.40.4"></a><h2>Elements</h2>
+<a name="id-1.3.41.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 93eb59db2451ebb041d05f16559131974742731b..2dfb408e596a9a6f4ca0b314b9e6f9efd92e430c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.41.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.42.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.41.4"></a><h2>Elements</h2>
+<a name="id-1.3.42.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 15e51ea7144458d39ee1d17540dcbdc6f5b0c083..ac5bd019aa0d565c4627b05f5a4c3adba3816170 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.42.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.43.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.42.4"></a><h2>Elements</h2>
+<a name="id-1.3.43.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 ca276228a4ca602d8aa1655111c80718a8b08e94..c6c4edf02104458ab058f48cb0527bfd1557d2e4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.43.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.44.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.43.4"></a><h2>Elements</h2>
+<a name="id-1.3.44.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
index eed909f46f72c921d417b880d58cb8c1d0053924..43eaad9d41739ef2497e0a77a9f3582588a04dac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxaudio.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.44.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.45.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.44.4"></a><h2>Elements</h2>
+<a name="id-1.3.45.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
index a5de807ce91541686974fbda32f4673c517db673..f7eb1fcccb0bff2903a295dcce170aec6ed6ed6f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-osxvideo.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.45.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.46.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.45.4"></a><h2>Elements</h2>
+<a name="id-1.3.46.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 709c6de460616344c441a9e1a83a2b3115ad9911..500a08602643ce3880c64788b0692d0ae5ffbd3f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.46.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.47.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.46.4"></a><h2>Elements</h2>
+<a name="id-1.3.47.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 2de63acb11e11bbd9a4c9037ae08922fe9ba0006..661e09fb74aaea5777f2fe66e004069ae00fd0a8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.47.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.48.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.47.4"></a><h2>Elements</h2>
+<a name="id-1.3.48.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 72c3046f52d89c80fb3115daeab75666dbd41eb1..dc1e9c604877cdf88ae1a45c3268bacea0042f97 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
 <link rel="prev" href="gst-plugins-good-plugins-plugin-pulseaudio.html" title="pulseaudio">
-<link rel="next" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
+<link rel="next" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +17,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-plugin-pulseaudio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-replaygain"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.48.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.49.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.48.4"></a><h2>Elements</h2>
+<a name="id-1.3.49.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 ee613a80f9fd798fbae0344a93ea7c19ad45902b..70fdbb4c91e2f0f0e04810abdbbb1c84391462e8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
-<link rel="next" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
+<link rel="next" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-rtp"></a><div class="titlepage"></div>
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.49.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.51.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.49.4"></a><h2>Elements</h2>
+<a name="id-1.3.51.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -176,6 +176,14 @@
 <td>Payload GStreamer buffers as RTP packets</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">rtph261depay</a></span></p></td>
+<td>Extracts H261 video from RTP packets (RFC 4587)</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph261pay.html" title="rtph261pay">rtph261pay</a></span></p></td>
+<td>Payload-encodes H261 video in RTP packets (RFC 4587)</td>
+</tr>
+<tr>
 <td><p><span class="term">rtph263depay</span></p></td>
 <td>Extracts H263 video from RTP packets (RFC 2190)</td>
 </tr>
@@ -224,6 +232,14 @@
 <td>Payload-encodes JPEG pictures into RTP packets (RFC 2435)</td>
 </tr>
 <tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpklvdepay.html" title="rtpklvdepay">rtpklvdepay</a></span></p></td>
+<td>Extracts KLV (SMPTE ST 336) metadata from RTP packets</td>
+</tr>
+<tr>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpklvpay.html" title="rtpklvpay">rtpklvpay</a></span></p></td>
+<td>Payloads KLV (SMPTE ST 336) metadata as RTP packets</td>
+</tr>
+<tr>
 <td><p><span class="term">rtpmp1sdepay</span></p></td>
 <td>Extracts MPEG1 System Streams from RTP packets (RFC 3555)</td>
 </tr>
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 c086434909cf6952da61f9b948e2d63ff173a6d7..13f1731db95d57660df3e6e3919c3cc7d1501aab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
-<link rel="next" href="gst-plugins-good-plugins-plugin-rtsp.html" title="rtsp">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-replaygain.html" title="replaygain">
+<link rel="next" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,8 +16,8 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtsp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-replaygain.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-rtpmanager"></a><div class="titlepage"></div>
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</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 35ea89a612347570105b0f139c76f75dca544167..1455b54d7fb8be4d651f96dc6bc07bdf36169ad2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch02.html" title="gst-plugins-good Plugins">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-rtpmanager.html" title="rtpmanager">
+<link rel="prev" href="gst-plugins-good-plugins-plugin-rtp.html" title="rtp">
 <link rel="next" href="gst-plugins-good-plugins-plugin-shapewipe.html" title="shapewipe">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -16,7 +16,7 @@
 <td width="100%" align="left" class="shortcuts"></td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch02.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtpmanager.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-rtp.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-plugin-shapewipe.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.51.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.52.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.51.4"></a><h2>Elements</h2>
+<a name="id-1.3.52.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 02ac16c141df906086823094e01bd6d8a2d4344f..8fb9650563da1d080b2a93c483ea633df622041e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.52.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.53.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.52.4"></a><h2>Elements</h2>
+<a name="id-1.3.53.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 4262e1700c60216832fa46c4be53432671be2ccd..ca15488cf7421574d2f03f8917cf2ad6e18b57e1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.53.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.54.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.53.4"></a><h2>Elements</h2>
+<a name="id-1.3.54.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 6be6ed30a0f311f34cb26cb562a037ad200c853e..0cd4a1330c9d28191742246fa84620e3e16dc24d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.54.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.55.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.54.4"></a><h2>Elements</h2>
+<a name="id-1.3.55.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 2aa3dcc3936de343db91b663a2f6680c0c916af0..3703cdb6c4a82d84140872bb47be88871f1dd4cd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.55.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.56.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.55.4"></a><h2>Elements</h2>
+<a name="id-1.3.56.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 5b5887b2996c13f4ae076747fe07d67d3796785c..a430547345c2cd0a0b09071e2bc4b2ebdf0bdb66 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.56.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.57.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.56.4"></a><h2>Elements</h2>
+<a name="id-1.3.57.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 f959bff348b0363c9e393291fdbb5487e6967032..eb6bcd17b03b4c60c59c8d1a13cf897e6b3edbb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.57.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.58.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.57.4"></a><h2>Elements</h2>
+<a name="id-1.3.58.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 922c638e561ea42884f759746f15f891a7f37c36..5abe492154060f8e28464bdb1f7c6b4adb513146 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.58.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.59.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.58.4"></a><h2>Elements</h2>
+<a name="id-1.3.59.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 4f11cae500dd9e880cf6d6277a4c69fb5e01e1c1..9e0532526ce826efd7e1fe945f38e08e9fa35e3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.59.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.60.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.59.4"></a><h2>Elements</h2>
+<a name="id-1.3.60.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 d574b94e37d028839e1914ba92250f4b2af73129..40994c6927840dfe17cbb878f17e098db841caa9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.60.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.61.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.60.4"></a><h2>Elements</h2>
+<a name="id-1.3.61.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 f72336d291de73a0a26cc1a87a12db7dde1b17ce..93f6a1ff70fd3f91bb5b74edd2b3be9f57e26716 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.61.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.62.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.61.4"></a><h2>Elements</h2>
+<a name="id-1.3.62.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 a3852102c06563145266b4b2cd3dcc4c197f87c7..c772553ed0efd34ce17ddc53d028b65e7bc092cc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.62.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.63.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.62.4"></a><h2>Elements</h2>
+<a name="id-1.3.63.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 afe023b29bad3db6b715da25a19855f5a9aba9ab..2481385e1d531e46fe911bc79c15fb206b18348b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.63.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.64.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.63.4"></a><h2>Elements</h2>
+<a name="id-1.3.64.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 c57b2ab2eb2236ae3520917dd46b8dadf7912da0..64c88cedc814c22f2c0389a2be1737ca05ddc294 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.64.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.65.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.64.4"></a><h2>Elements</h2>
+<a name="id-1.3.65.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 6d0079c0800642c17b9405de22349ef570701a82..e61f981d4fea517fa74e62ed76a1988a32a12d97 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.65.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.66.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.65.4"></a><h2>Elements</h2>
+<a name="id-1.3.66.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
index 7088bcfcf26bdd1a391421fb28b81ccbc1725c13..7dc9bfb95935207fef4ab1afb67d3b050a4f6c40 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-waveform.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.66.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.67.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.66.4"></a><h2>Elements</h2>
+<a name="id-1.3.67.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 407b321fa9938d2a5d0ff81953d1a060a8bc7200..481f72d0b1c666eebc39a47922f1c7e6921ffde3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.67.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.68.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.67.4"></a><h2>Elements</h2>
+<a name="id-1.3.68.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 de53f14f9595c0cbaa3298d9ef62a64d90785566..b4d3a56efdd3c4e25fe78239f0bc28acb6101271 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.68.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.69.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.68.4"></a><h2>Elements</h2>
+<a name="id-1.3.69.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 5ab370352d46bb2a3000dc29edb59e279610949e..08e3a78b6bfca1ae99a1aed47e1661e867ae674a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.69.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.70.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.69.4"></a><h2>Elements</h2>
+<a name="id-1.3.70.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 96694581046b0eb77302e355a759c32f3bc62f58..c38adfd482a7f44b4a5260c97a222f82fe337187 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.70.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.71.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.70.4"></a><h2>Elements</h2>
+<a name="id-1.3.71.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
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 88a49a1ef7a5f3fb070be79d1641a20d8850cedf..12e70155d63f6ec1846a9416efaad0c2a0813b87 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -29,7 +29,7 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="id-1.3.71.3"></a><h2>Plugin Information</h2>
+<a name="id-1.3.72.3"></a><h2>Plugin Information</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.5.2</td>
+<td>1.5.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -60,7 +60,7 @@
 </table></div>
 </div>
 <div class="refsect1">
-<a name="id-1.3.71.4"></a><h2>Elements</h2>
+<a name="id-1.3.72.4"></a><h2>Elements</h2>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
index 6fd428f4c7708300dc9a11422e0130433b277274..47e9e7fd1296b15fbceb90e3a0888b071a1738af 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.96.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.99.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.96.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.99.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
index 5b3f4c41d4d45b317608dc0321054c6b46614fc8..2afb8a54c840dcdbc2c0cde73c02701646cc1234 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
@@ -90,7 +90,7 @@ GstPngEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.97.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.100.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +116,7 @@ GstPngEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.97.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.100.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
index 3a79cc21fe056e1beadba0f33543783c707c1696..321307a10b2ee6201131253056e5b4f9e2dbff8c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
@@ -117,7 +117,7 @@ take action when they receive an EOS message (since the progress reported
 is in reference to an internal point of a pipeline and not the pipeline as
 a whole).</p>
 <div class="refsect2">
-<a name="id-1.2.98.7.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.101.7.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -144,7 +144,7 @@ a whole).</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.98.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.101.7.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -170,7 +170,7 @@ a whole).</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.98.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.101.7.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
index ac67fca871863cb5d82b84b0ecda840992449d38..da5eecad6859a02cd38ee1cadbe0d6511d79a698 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
@@ -133,7 +133,7 @@ GstPulseSink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.99.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.102.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,7 +159,7 @@ GstPulseSink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.99.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.102.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
index b09efe161e117174e1f90985c26dd77f0c438ff5..9e792a13b2ee9e0c6e3e2454a9a63e7738626a25 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-pulsesink.html" title="pulsesink">
-<link rel="next" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
+<link rel="next" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,7 +23,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-pulsesink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-quarktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-pulsesrc"></a><div class="titlepage"></div>
@@ -140,7 +140,7 @@ GstPulseSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.100.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.103.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -166,7 +166,7 @@ GstPulseSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.100.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.103.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
index dead661a9e8c5e2ad20b1daf1425a3b5cfd19022..5862d38267b1b3d4865a7fa05f8c3ecc14e3b0d5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
-<link rel="next" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
+<link rel="prev" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
+<link rel="next" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-quarktv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-qtmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-qtdemux"></a><div class="titlepage"></div>
@@ -76,7 +76,7 @@
 <p>This element supports both push and pull-based scheduling, depending on the
 capabilities of the upstream elements.</p>
 <div class="refsect2">
-<a name="id-1.2.102.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.104.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -95,7 +95,7 @@ right decoder elements/plugins installed.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.102.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.104.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +121,7 @@ right decoder elements/plugins installed.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.102.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.104.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
index 056fd1300490ba67045866a219e6f1aeda44f24b..1b1444f1c7d43c4729dc67fa32515482377e7966 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
-<link rel="next" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
+<link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
+<link rel="next" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-qtmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-radioactv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-qtdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-qtmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-qtmoovrecover"></a><div class="titlepage"></div>
@@ -135,7 +135,7 @@ GstQTMoovRecover implements
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.104.9.2"></a><h3>Example pipelines</h3>
+<a name="id-1.2.105.9.2"></a><h3>Example pipelines</h3>
 <p>
 This element recovers quicktime files created with qtmux using the moov
 recovery feature.
@@ -151,7 +151,7 @@ TODO
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.104.9.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.105.9.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,7 +177,7 @@ TODO
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.104.9.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.105.9.3.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index dbbf8463088e66bcc5151b339fce3592e3692a9b..eb8e2ff0627829143966222ba41db540f3f1442f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
-<link rel="next" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
+<link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
+<link rel="next" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-qtdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-quarktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-qtmux"></a><div class="titlepage"></div>
@@ -184,7 +184,7 @@ space for headers is too small. Applications can monitor the
 <span class="type">“reserved-duration-remaining”</span> property to see how close to full
 the reserved space is becoming.</p>
 <div class="refsect2">
-<a name="id-1.2.103.8.9"></a><h3>Example pipelines</h3>
+<a name="id-1.2.106.8.9"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -201,7 +201,7 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.103.8.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.106.8.10.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -227,7 +227,7 @@ Records a video stream captured from a v4l2 device and muxes it into a qt file.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.103.8.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.106.8.10.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
index f6fdb8ae569f1345089a11ef18d188501842cbcc..145c06b2f4e3a5652a30665d1870e73077d57dd1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-pulsesrc.html" title="pulsesrc">
-<link rel="next" href="gst-plugins-good-plugins-qtdemux.html" title="qtdemux">
+<link rel="prev" href="gst-plugins-good-plugins-qtmux.html" title="qtmux">
+<link rel="next" href="gst-plugins-good-plugins-radioactv.html" title="radioactv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-pulsesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-qtmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-radioactv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-quarktv"></a><div class="titlepage"></div>
@@ -77,7 +77,7 @@
 <p>QuarkTV disolves moving objects. It picks up pixels from
 the last frames randomly.</p>
 <div class="refsect2">
-<a name="id-1.2.101.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.107.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -93,7 +93,7 @@ the last frames randomly.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.101.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.107.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -119,7 +119,7 @@ the last frames randomly.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.101.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.107.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
index 4f6a109a71b5dc22b76025a6fbdfb05d611124df..0a2162b4c508e0b5e34f1c08554ef19eac13273f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
+<link rel="prev" href="gst-plugins-good-plugins-quarktv.html" title="quarktv">
 <link rel="next" href="gst-plugins-good-plugins-revtv.html" title="revtv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-qtmoovrecover.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-quarktv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-revtv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -99,7 +99,7 @@ In trigger mode, effect appears only when the trigger property is <a href="https
 current frame and previous frame dropped, while strobe2 mode uses the difference from
 previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 <div class="refsect2">
-<a name="id-1.2.105.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.108.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +115,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.105.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.108.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@ previous frame displayed. The effect of strobe2 is stronger than strobe1.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.105.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.108.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-revtv.html b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
index 38d933a56dca3013b465daf2a7556141736df53c..fbff785d8fe1bbeb6503d2aa315ede7b50194e62 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-revtv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-revtv.html
@@ -90,7 +90,7 @@
 processed. This creates a pseudo 3D effect based on the brightness
 of the video along each line.</p>
 <div class="refsect2">
-<a name="id-1.2.106.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.109.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -106,7 +106,7 @@ of the video along each line.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.106.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.109.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -132,7 +132,7 @@ of the video along each line.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.106.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.109.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
index 72bc4b614eb87544932439e304cb1b1b642a9347..59ae6f8240f5ecb29cb848986796df36e010a82e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rganalysis.html
@@ -108,7 +108,7 @@ needed for album processing (see <a class="link" href="gst-plugins-good-plugins-
 the album gain and peak values need to be associated with all tracks of an
 album, not just the last one.</p>
 <div class="refsect2">
-<a name="id-1.2.107.7.6"></a><h3>Example launch lines</h3>
+<a name="id-1.2.110.7.6"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -154,7 +154,7 @@ property documentation for more information.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.107.7.7"></a><h3>Acknowledgements</h3>
+<a name="id-1.2.110.7.7"></a><h3>Acknowledgements</h3>
 <p>
 This element is based on code used in the <a class="ulink" href="http://sjeng.org/vorbisgain.html" target="_top">vorbisgain</a> program and many
 others.  The relevant parts are copyrighted by David Robinson, Glen Sawyer
@@ -164,7 +164,7 @@ and Frank Klemm.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.107.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.110.7.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -190,7 +190,7 @@ and Frank Klemm.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.107.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.110.7.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
index 62db74ff9cefd210e75ae2ffc0aff727f69b12bb..a4b016d7a0357b634849e8f49144bded11564c48 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rglimiter.html
@@ -77,7 +77,7 @@
 performs strict hard limiting with soft-knee characteristics, using a
 threshold of -6 dB.  This type of filter is mentioned in the proposed <a class="ulink" href="http://replaygain.org" target="_top">ReplayGain standard</a>.</p>
 <div class="refsect2">
-<a name="id-1.2.108.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.111.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -97,7 +97,7 @@ Playback of a file
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.108.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.111.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -123,7 +123,7 @@ Playback of a file
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.108.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.111.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
index 6e1de02d82fda4924bc7339f0c3d881bbf33990e..060a8b42da7039176b478270b147dc2c1c690f17 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rgvolume.html
@@ -127,7 +127,7 @@ between the volume adjustment and the limiting stage.  A basic limiter is
 included with this plugin: The <a class="link" href="gst-plugins-good-plugins-rglimiter.html#GstRgLimiter">rglimiter</a>
 element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 <div class="refsect2">
-<a name="id-1.2.109.8.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.112.8.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -145,7 +145,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.109.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.112.8.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -171,7 +171,7 @@ element applies -6 dB hard limiting as mentioned in the ReplayGain standard.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.109.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.112.8.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
index 1ea3db3c2e7c837a3f7df720287407a7cb62bdab..23a0a4aee07004ca791ceb7eab35c69fb178447f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rippletv.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rgvolume.html" title="rgvolume">
-<link rel="next" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<link rel="next" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rgvolume.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rippletv"></a><div class="titlepage"></div>
@@ -84,7 +84,7 @@
 <p>RippleTV does ripple mark effect on the video input. The ripple is caused
 by motion or random rain drops.</p>
 <div class="refsect2">
-<a name="id-1.2.110.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.113.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -100,7 +100,7 @@ by motion or random rain drops.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.110.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.113.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -126,7 +126,7 @@ by motion or random rain drops.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.110.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.113.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
index 3bd4baf1cee4c2f18f8c82ff150f5028ab735b6d..af29f752e427da2f18f2322359fb04a26c97f5d4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpklvpay.html" title="rtpklvpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpklvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 <p>Extract raw audio from RTP packets according to RFC 3551.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p>
 <div class="refsect2">
-<a name="id-1.2.118.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.139.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpL16pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.118.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.139.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpL16pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.118.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.139.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
index 04f102480c503b6c6d8dc2570a6cb8773fd5c36c..2647fb362190e73f3de2d4d86715488629bb7ad8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16pay.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
-<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpL16pay"></a><div class="titlepage"></div>
@@ -61,7 +61,7 @@
 <p>Payload raw audio into RTP packets according to RFC 3551.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3551.txt</p>
 <div class="refsect2">
-<a name="id-1.2.119.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.140.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -78,7 +78,7 @@ the rtpL16depay example to depayload and play the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.119.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.140.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -104,7 +104,7 @@ the rtpL16depay example to depayload and play the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.119.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.140.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
index 2d3d0d3cd90793671605f810eab8c61a590919c8..af361400f052442e103b8a6df81df3ecd5b290a4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<link rel="prev" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
 <link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rippletv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 <p>Extract AC3 audio from RTP packets according to RFC 4184.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p>
 <div class="refsect2">
-<a name="id-1.2.112.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.114.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpac3pay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.112.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.114.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpac3pay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.112.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.114.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
index 4db6bb28b3b191023ba48501a4aaec95fafb92f1..11b7194a1615fbb47f69c1fe22dec9a12a3f9f55 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpac3pay.html
@@ -60,7 +60,7 @@
 <p>Payload AC3 audio into RTP packets according to RFC 4184.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc4184.txt</p>
 <div class="refsect2">
-<a name="id-1.2.113.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.115.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpac3depay example to depayload and decode the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.113.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.115.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpac3depay example to depayload and decode the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.113.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.115.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
index 529e7292770cfda8048871e99574781f0f94d14c..39b16a9a71da9db1cdc44f9a7343757647c2aab2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrdepay.html
@@ -60,7 +60,7 @@
 <p>Extract AMR audio from RTP packets according to RFC 3267.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p>
 <div class="refsect2">
-<a name="id-1.2.114.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.116.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpamrpay example to create the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.114.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.116.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpamrpay example to create the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.114.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.116.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
index d673e6859750ec78f8d68e5bf8c84b7fb2f76786..ed6988880ea584112077c97243aa43b73f15665e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpamrdepay.html" title="rtpamrdepay">
-<link rel="next" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpamrpay"></a><div class="titlepage"></div>
@@ -60,7 +60,7 @@
 <p>Payload AMR audio into RTP packets according to RFC 3267.
 For detailed information see: http://www.rfc-editor.org/rfc/rfc3267.txt</p>
 <div class="refsect2">
-<a name="id-1.2.115.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.117.6.3"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@ the rtpamrdepay example to depayload and decode the RTP stream.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.115.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.117.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -103,7 +103,7 @@ the rtpamrdepay example to depayload and decode the RTP stream.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.115.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.117.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
index 55a005fbd0422008e644d919cb0da2282f4b10ca..4966cfcc44c959c1cb630f16c670459f2ba47c0a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
-<link rel="next" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
+<link rel="next" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -24,7 +24,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtspsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpbin"></a><div class="titlepage"></div>
@@ -349,7 +349,7 @@ An AUX receiver has 1 src_%u pad that much match the sessionid in the signal
 and 1 or more sink_%u pads. A session will be made for each sink_%u pad
 when the corresponding recv_rtp_sink_%u pad is requested on <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin"><span class="type">GstRtpBin</span></a>.</p>
 <div class="refsect2">
-<a name="id-1.2.124.9.12"></a><h3>Example pipelines</h3>
+<a name="id-1.2.129.9.12"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -441,7 +441,7 @@ on port 5007.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.124.9.13.1"></a><h3>Element Information</h3>
+<a name="id-1.2.129.9.13.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -467,7 +467,7 @@ on port 5007.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.124.9.13.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.129.9.13.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -659,7 +659,7 @@ RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized,
 RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.</p>
 <p>The different buffer modes for a jitterbuffer.</p>
 <div class="refsect3">
-<a name="id-1.2.124.11.3.5"></a><h4>Members</h4>
+<a name="id-1.2.129.11.3.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -700,7 +700,7 @@ RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.</p>
 <div class="refsect2">
 <a name="GstRTCPSync"></a><h3>enum GstRTCPSync</h3>
 <div class="refsect3">
-<a name="id-1.2.124.11.4.3"></a><h4>Members</h4>
+<a name="id-1.2.129.11.4.3"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
@@ -792,7 +792,7 @@ used to synchronize receivers on multiple machines.</p>
 <div class="refsect2">
 <a name="GstRtpBin--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clock”</code> property</h3>
 <pre class="programlisting">  “use-pipeline-clock”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-source property).</p>
+<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -868,7 +868,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 <p>Clear all previously cached pt-mapping obtained with
 <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -901,7 +901,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 <p>Request the internal RTPSession object as <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject"><span class="type">GObject</span></a> in session <em class="parameter"><code>id</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -939,7 +939,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that became inactive because of a BYE packet.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -982,7 +982,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that has timed out because of BYE</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1026,7 +1026,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 <p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1069,7 +1069,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify that SSRC sender has sent data up to the configured NPT stop time.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.7.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.7.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1112,7 +1112,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of a sender SSRC that has timed out and became a receiver</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.8.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.8.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1155,7 +1155,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of a SSRC that is active, i.e., sending RTCP.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1198,7 +1198,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify when we have an SSRC collision</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.10.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.10.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1241,7 +1241,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of a SSRC that is active, i.e., sending RTCP.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1284,7 +1284,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of a new SSRC that became validated.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1327,7 +1327,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that has timed out</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.13.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.13.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1372,7 +1372,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
  in <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.14.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.14.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1414,7 +1414,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 <p>Reset all currently configured lip-sync parameters and require new SR
 packets for all streams before lip-sync is attempted again.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.15.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.15.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1449,7 +1449,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
  in <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.16.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.16.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1498,7 +1498,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 This signal can, for example, be used to configure <em class="parameter"><code>jitterbuffer</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.17.5"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.17.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1549,7 +1549,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin.</p>
 <p>If no handler is connected, no AUX element will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.18.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.18.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1590,7 +1590,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin.</p>
 <p>If no handler is connected, no AUX element will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.19.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.19.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1631,7 +1631,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin if not previously added.</p>
 <p>If no handler is connected, no encoder will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.20.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.20.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1672,7 +1672,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin if not previously added.</p>
 <p>If no handler is connected, no encoder will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.21.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.21.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1713,7 +1713,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin if not previously added.</p>
 <p>If no handler is connected, no encoder will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.22.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.22.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -1754,7 +1754,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtp
 element will be added to the bin if not previously added.</p>
 <p>If no handler is connected, no encoder will be used.</p>
 <div class="refsect3">
-<a name="id-1.2.124.13.23.6"></a><h4>Parameters</h4>
+<a name="id-1.2.129.13.23.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
index 387390da92b73a491c40cccde836c66d7a8961b8..324c3d8437062fdfa08bddb0e1db2d31b1ec2177 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
 <link rel="next" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -19,7 +19,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpamrpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -38,7 +38,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.116.3.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.119.3.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -64,7 +64,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.116.3.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.119.3.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
index 160811e4f5d7ea050776a08c935a20a0cfb2688a..5f386193b6f142bbc45dc8bdc8b99242c10a146a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
-<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<link rel="next" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -20,7 +20,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph261depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpbvpay"></a><div class="titlepage"></div>
@@ -38,7 +38,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.117.3.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.120.3.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -64,7 +64,7 @@ For detailed information see: http://www.rfc-editor.org/rfc/rfc4298.txt</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.117.3.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.120.3.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
index e4ff8f42887b761c40f34194304e9bc0c1ef06f5..5a026f3e512bbe250fcf3fe5fc674bee9fae9bae 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rippletv.html" title="rippletv">
-<link rel="next" href="gst-plugins-good-plugins-rtpac3depay.html" title="rtpac3depay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
+<link rel="next" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rippletv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpac3depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpdec"></a><div class="titlepage"></div>
@@ -137,7 +137,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.111.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.130.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -163,7 +163,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.111.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.130.8.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -313,7 +313,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
  in <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.111.12.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.130.12.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -356,7 +356,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that became inactive because of a BYE packet.</p>
 <div class="refsect3">
-<a name="id-1.2.111.12.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.130.12.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -399,7 +399,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that has timed out because of BYE</p>
 <div class="refsect3">
-<a name="id-1.2.111.12.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.130.12.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -443,7 +443,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
 <p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.111.12.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.130.12.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -506,7 +506,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpdec.html#GstRTP
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>   user_data)</pre>
 <p>Notify of an SSRC that has timed out</p>
 <div class="refsect3">
-<a name="id-1.2.111.12.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.130.12.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
new file mode 100644
index 0000000000000000000000000000000000000000..6f3b77b9eaca9c2f3dc02e1f01973ca0f7de0306
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
@@ -0,0 +1,254 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpdtmfdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<link rel="next" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdtmfdepay.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpdtmfdepay.top_of_page"></a>rtpdtmfdepay</span></h2>
+<p>rtpdtmfdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--max-duration" title="The “max-duration” property">max-duration</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--unit-time" title="The “unit-time” property">unit-time</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstRtpDTMFDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay-struct" title="struct GstRtpDTMFDepay">GstRtpDTMFDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpDTMFDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.description"></a><h2>Description</h2>
+<p>This element takes RTP DTMF packets and produces sound. It also emits a
+message on the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a>.</p>
+<p>The message is called "dtmf-event" and has the following fields</p>
+<div class="informaltable"><table border="1">
+<colgroup>
+<col class="Name">
+<col class="Type">
+<col class="Possible values">
+<col class="Purpose">
+</colgroup>
+<thead><tr>
+<th>Name</th>
+<th>GType</th>
+<th>Possible values</th>
+<th>Purpose</th>
+</tr></thead>
+<tbody>
+<tr>
+<td>type</td>
+<td>G_TYPE_INT</td>
+<td>0-1</td>
+<td>Which of the two methods
+specified in RFC 2833 to use. The value should be 0 for tones and 1 for
+named events. Tones are specified by their frequencies and events are specied
+by their number. This element currently only recognizes events.
+Do not confuse with "method" which specified the output.
+</td>
+</tr>
+<tr>
+<td>number</td>
+<td>G_TYPE_INT</td>
+<td>0-16</td>
+<td>The event number.</td>
+</tr>
+<tr>
+<td>volume</td>
+<td>G_TYPE_INT</td>
+<td>0-36</td>
+<td>This field describes the power level of the tone, expressed in dBm0
+after dropping the sign. Power levels range from 0 to -63 dBm0. The range of
+valid DTMF is from 0 to -36 dBm0.
+</td>
+</tr>
+<tr>
+<td>method</td>
+<td>G_TYPE_INT</td>
+<td>1</td>
+<td>This field will always been 1 (ie RTP event) from this element.
+</td>
+</tr>
+</tbody>
+</table></div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.131.7.5.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">dtmf</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Youness Alaoui &lt;youness.alaoui@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.131.7.5.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>audio/x-raw, format=(string)S16LE, rate=(int)[ 1, 2147483647 ], channels=(int)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpDTMFDepay-struct"></a><h3>struct GstRtpDTMFDepay</h3>
+<pre class="programlisting">struct GstRtpDTMFDepay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpDTMFDepay--max-duration"></a><h3>The <code class="literal">“max-duration”</code> property</h3>
+<pre class="programlisting">  “max-duration”             <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpDTMFDepay--unit-time"></a><h3>The <code class="literal">“unit-time”</code> property</h3>
+<pre class="programlisting">  “unit-time”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The smallest unit (ms) the duration must be a multiple of (0 disables it).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 1000</p>
+<p>Default value: 0</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdtmfdepay.see-also"></a><h2>See Also</h2>
+<p>rtpdtmfsrc, rtpdtmfmux</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
index 06a86509f1412b8a51a9c4aede73285b731985ce..add957af8918a68965093475ef8740b6faa0d7a1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbin.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -67,7 +67,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.125.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.132.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +93,7 @@ DTMF signal can replace the recorded audio while the tone is being sent.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.125.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.132.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
index af7b43410ecfef4b00bacc06dc353b05e693d024..46e7ddd1ae045e4796be69bfa29f3b7c899a2f4c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpdtmfmux.html" title="rtpdtmfmux">
-<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpdtmfsrc"></a><div class="titlepage"></div>
@@ -194,7 +194,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.126.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.133.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -220,7 +220,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.126.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.133.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -259,7 +259,7 @@ READY state, then a "dtmf-event-dropped" message is posted on the
 <pre class="programlisting">struct GstRTPDTMFSrc;</pre>
 <p>The opaque <a class="link" href="gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc"><span class="type">GstRTPDTMFSrc</span></a> data structure.</p>
 <div class="refsect3">
-<a name="id-1.2.126.9.2.5"></a><h4>Members</h4>
+<a name="id-1.2.133.9.2.5"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="struct_members_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
new file mode 100644
index 0000000000000000000000000000000000000000..df3fa98c60d4af0de3e7d92de496c6a8287c8793
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph261depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpbvpay.html" title="rtpbvpay">
+<link rel="next" href="gst-plugins-good-plugins-rtph261pay.html" title="rtph261pay">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph261depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph261depay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpbvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph261pay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtph261depay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtph261depay.top_of_page"></a>rtph261depay</span></h2>
+<p>rtph261depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH261Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtph261depay.html#GstRtpH261Depay-struct" title="struct GstRtpH261Depay">GstRtpH261Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpH261Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.description"></a><h2>Description</h2>
+<p>Extract encoded H.261 video frames from RTP packets according to RFC 4587.
+For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt</p>
+<p>The depayloader takes an RTP packet and extracts its H.261 stream. It
+aggregates the extracted stream until a complete frame is received before
+it pushes it downstream.</p>
+<div class="refsect2">
+<a name="id-1.2.121.6.4"></a><h3>Example pipeline</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, payload=31'</span> <span class="gtkdoc opt">!</span> rtph261depay <span class="gtkdoc opt">!</span> avdec_h261 <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload and decode an RTP H.261 video stream.
+Refer to the rtph261pay example to create the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.121.6.5.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Stian Selnes &lt;stian@pexip.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.121.6.5.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)video, payload=(int)31, clock-rate=(int)90000, encoding-name=(string)H261</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H261</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>video/x-h261</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH261Depay-struct"></a><h3>struct GstRtpH261Depay</h3>
+<pre class="programlisting">struct GstRtpH261Depay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261depay.see-also"></a><h2>See Also</h2>
+<p>rtph261pay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
new file mode 100644
index 0000000000000000000000000000000000000000..48e88ca3f26a37c90448f673c6a3a31479a537fb
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
@@ -0,0 +1,190 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph261pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph261pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph261pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtph261depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtph261pay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtph261pay.top_of_page"></a>rtph261pay</span></h2>
+<p>rtph261pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH261Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtph261pay.html#GstRtpH261Pay-struct" title="struct GstRtpH261Pay">GstRtpH261Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpH261Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.description"></a><h2>Description</h2>
+<p>Payload encoded H.261 video frames into RTP packets according to RFC 4587.
+For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt</p>
+<p>The payloader takes a H.261 frame, parses it and splits it into fragments
+on MB boundaries in order to match configured MTU size. For each fragment
+an RTP packet is constructed with an RTP packet header followed by the
+fragment. In addition the payloader will make sure the packetized H.261
+stream appears as a continuous bit-stream after depacketization by shifting
+the encoded bit-stream of a frame to align with the last significant bit of
+the previous frame. This helps interoperability in the case where the
+encoder does not produce a continuous bit-stream but the decoder requires
+it.</p>
+<div class="refsect2">
+<a name="id-1.2.122.6.4"></a><h3>Example launch line</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> videotestsrc <span class="gtkdoc opt">!</span> avenc_h261 <span class="gtkdoc opt">!</span> rtph261pay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This will encode a test video and payload it. Refer to the rtph261depay
+example to depayload and play the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.122.6.5.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Stian Selnes &lt;stian@pexip.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.122.6.5.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>video/x-h261</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)video, payload=(int)31, clock-rate=(int)90000, encoding-name=(string)H261</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H261</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH261Pay-struct"></a><h3>struct GstRtpH261Pay</h3>
+<pre class="programlisting">struct GstRtpH261Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph261pay.see-also"></a><h2>See Also</h2>
+<p>rtph261depay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
index 5a8c8381f503ad2e056c49d54d95741d964861cb..1a5a230fab51a3219ad92a0c78009e5ebe88711b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
-<link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
+<link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpj2kpay"></a><div class="titlepage"></div>
@@ -81,7 +81,7 @@ codestream.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.120.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.134.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -107,7 +107,7 @@ codestream.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.120.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.134.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
index ad15eeaea7209b250e7615d8090e19dd330a7ab1..b1650c10342e71455525981a63633ecdb5dd9b3c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpdtmfsrc.html" title="rtpdtmfsrc">
-<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
+<link rel="prev" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpdtmfsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpjitterbuffer"></a><div class="titlepage"></div>
@@ -238,7 +238,7 @@ schedule a lost packet as discussed above.</p>
 to the pipeline.</p>
 <p>This element will automatically be used inside rtpbin.</p>
 <div class="refsect2">
-<a name="id-1.2.127.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.135.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -256,7 +256,7 @@ out-of-order RTP packets.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.127.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.135.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -282,7 +282,7 @@ out-of-order RTP packets.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.127.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.135.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -565,7 +565,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.ht
 <p>Invalidate the clock-rate as obtained with the
 <a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a> signal.</p>
 <div class="refsect3">
-<a name="id-1.2.127.12.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.135.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -597,7 +597,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.ht
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>            user_data)</pre>
 <p>Be notified of new sync values.</p>
 <div class="refsect3">
-<a name="id-1.2.127.12.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.135.12.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -634,7 +634,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.ht
 <p>Signal that the jitterbufer has pushed the RTP packet that corresponds to
 the npt-stop position.</p>
 <div class="refsect3">
-<a name="id-1.2.127.12.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.135.12.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -667,7 +667,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.ht
 <p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.127.12.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.135.12.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -706,7 +706,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.ht
 <p>Start pushing out packets with the given base time. This signal is only
 useful in buffering mode.</p>
 <div class="refsect3">
-<a name="id-1.2.127.12.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.135.12.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -728,7 +728,7 @@ useful in buffering mode.</p>
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.127.12.6.6"></a><h4>Returns</h4>
+<a name="id-1.2.135.12.6.6"></a><h4>Returns</h4>
 <p> the time of the last pushed packet.</p>
 </div>
 <p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
index 99fd0b1b9c2bedc7da05ad6bd999e344c1142bde..270a81f7c7cc235ca8cd50022f3077d0cd4582c9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
-<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="next" href="gst-plugins-good-plugins-rtpklvdepay.html" title="rtpklvdepay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpj2kpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpklvdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpjpegpay"></a><div class="titlepage"></div>
@@ -94,7 +94,7 @@ the actual JPEG entropy scan.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.121.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.136.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -120,7 +120,7 @@ the actual JPEG entropy scan.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.121.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.136.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -171,6 +171,10 @@ the actual JPEG entropy scan.</p>
 <td><p><span class="term">details</span></p></td>
 <td>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</td>
+</tr>
 </tbody>
 </table></div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
new file mode 100644
index 0000000000000000000000000000000000000000..a8e4c862c9ed110579c783fda194a1b5c7bf80eb
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpklvdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpklvpay.html" title="rtpklvpay">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpklvdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpklvdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpklvpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpklvdepay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpklvdepay.top_of_page"></a>rtpklvdepay</span></h2>
+<p>rtpklvdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpKlvDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpklvdepay.html#GstRtpKlvDepay-struct" title="struct GstRtpKlvDepay">GstRtpKlvDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpKlvDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.description"></a><h2>Description</h2>
+<p>Extract KLV metadata from RTP packets according to RFC 6597.
+For detailed information see: http://tools.ietf.org/html/rfc6597</p>
+<div class="refsect2">
+<a name="id-1.2.137.6.3"></a><h3>Example pipeline</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> udpsrc caps<span class="gtkdoc opt">=</span><span class="string">'application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)SMPTE336M'</span> <span class="gtkdoc opt">!</span> rtpklvdepay <span class="gtkdoc opt">!</span> fakesink dump<span class="gtkdoc opt">=</span><span class="keyword">true</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload an RTP KLV stream and display
+a hexdump of the KLV data on stdout.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.137.6.4.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Tim-Philipp Müller &lt;tim@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Depayloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.137.6.4.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)application, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)SMPTE336M</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>meta/x-klv, parsed=(boolean)true</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpKlvDepay-struct"></a><h3>struct GstRtpKlvDepay</h3>
+<pre class="programlisting">struct GstRtpKlvDepay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvdepay.see-also"></a><h2>See Also</h2>
+<p>rtpklvpay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
new file mode 100644
index 0000000000000000000000000000000000000000..aa92b18bd110c933620883ad44bb977c7b6b0eb9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
@@ -0,0 +1,177 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpklvpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-rtpklvdepay.html" title="rtpklvdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpklvpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpklvpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpklvdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL16depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpklvpay"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-rtpklvpay.top_of_page"></a>rtpklvpay</span></h2>
+<p>rtpklvpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpKlvPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpklvpay.html#GstRtpKlvPay-struct" title="struct GstRtpKlvPay">GstRtpKlvPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
+    <span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
+            <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
+                <span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-base-libs/html/gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpKlvPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.description"></a><h2>Description</h2>
+<p>Payloads KLV metadata into RTP packets according to RFC 6597.
+For detailed information see: http://tools.ietf.org/html/rfc6597</p>
+<div class="refsect2">
+<a name="id-1.2.138.6.3"></a><h3>Example pipeline</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1</pre></td>
+        <td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> filesrc location<span class="gtkdoc opt">=</span>video<span class="gtkdoc opt">-</span>with<span class="gtkdoc opt">-</span>klv<span class="gtkdoc opt">.</span>ts <span class="gtkdoc opt">!</span> tsdemux <span class="gtkdoc opt">!</span> rtpklvpay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will payload an RTP KLV stream extracted from an
+MPEG-TS stream and send it via UDP to an RTP receiver.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.138.6.4.1"></a><h3>Element Information</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">rtp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Tim-Philipp Müller &lt;tim@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network/RTP</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.138.6.4.2"></a><h3>Element Pads</h3>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>sink</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>meta/x-klv, parsed=(boolean)true</td>
+</tr>
+</tbody>
+</table></div>
+<div class="variablelist"><table border="0" class="variablelist">
+<colgroup>
+<col align="left" valign="top">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">name</span></p></td>
+<td>src</td>
+</tr>
+<tr>
+<td><p><span class="term">direction</span></p></td>
+<td>source</td>
+</tr>
+<tr>
+<td><p><span class="term">presence</span></p></td>
+<td>always</td>
+</tr>
+<tr>
+<td><p><span class="term">details</span></p></td>
+<td>application/x-rtp, media=(string)application, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)SMPTE336M</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpKlvPay-struct"></a><h3>struct GstRtpKlvPay</h3>
+<pre class="programlisting">struct GstRtpKlvPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpklvpay.see-also"></a><h2>See Also</h2>
+<p>rtpklvdepay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
index 164b4ead6090e5ec1a71aa3857b7ff5c0b83bc4b..8705aeaf0a34637ad292ab701d7dac3213c1d5ba 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
+<link rel="prev" href="gst-plugins-good-plugins-rtpL16pay.html" title="rtpL16pay">
 <link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjitterbuffer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpL16pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -93,7 +93,7 @@
 <p>The rtp muxer takes multiple RTP streams having the same clock-rate and
 muxes into a single stream with a single SSRC.</p>
 <div class="refsect2">
-<a name="id-1.2.128.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.141.7.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,7 +122,7 @@ so they can be sent on the same port.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.128.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.141.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -148,7 +148,7 @@ so they can be sent on the same port.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.128.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.141.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
index 7d9e33c6a22781bc6a7d321838f2cd836e0ec1e2..1fd535202b994654d9bddd708b141b30017aba41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
-<link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
+<link rel="next" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsession.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpptdemux"></a><div class="titlepage"></div>
@@ -101,7 +101,7 @@ emitted.</p>
 on the output pads based on the result of the <a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a>
 signal.</p>
 <div class="refsect2">
-<a name="id-1.2.129.7.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.142.7.5"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -118,7 +118,7 @@ payload type to fakesink, discarding the other payload types.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.129.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.142.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -144,7 +144,7 @@ payload type to fakesink, discarding the other payload types.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.129.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.142.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -217,7 +217,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#Gs
 <p>The application can call this signal to instruct the element to discard the
 currently cached payload type map.</p>
 <div class="refsect3">
-<a name="id-1.2.129.10.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.142.10.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -251,7 +251,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#Gs
 <p>Emited when a new payload type pad has been created in <em class="parameter"><code>demux</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.129.10.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.142.10.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -293,7 +293,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Emited when the payload type changed.</p>
 <div class="refsect3">
-<a name="id-1.2.129.10.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.142.10.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -331,7 +331,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpptdemux.html#Gs
 <p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.129.10.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.142.10.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
index 2be4bb752f198835fde78a49ed2fe4625b1c0efb..d7c49e51490eee5e75d052de351080e8d9a06085 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
-<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
+<link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtprtxreceive"></a><div class="titlepage"></div>
@@ -109,7 +109,7 @@ When the RTX receiver has associated the retransmission packets,
 it can depayload and forward them to the source pad of the element.
 RTX is SSRC-multiplexed. See <a class="link" href="gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend"><span class="type">GstRtpRtxSend</span></a></p>
 <div class="refsect2">
-<a name="id-1.2.133.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.143.7.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -242,7 +242,7 @@ You should hear a clear sound. (after a few seconds the two streams wave feel sy
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.133.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.143.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -268,7 +268,7 @@ You should hear a clear sound. (after a few seconds the two streams wave feel sy
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.133.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.143.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
index 4c388bd833137a72b0d0a13d8e17fe034bafb5c6..6ba09861492c73338f7c12e37944bc93524f58ed 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
-<link rel="next" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
+<link rel="prev" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
+<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtprtxsend"></a><div class="titlepage"></div>
@@ -117,7 +117,7 @@ this as an auxiliary stream. RTX is SSRC-multiplexed</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.132.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.144.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -143,7 +143,7 @@ this as an auxiliary stream. RTX is SSRC-multiplexed</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.132.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.144.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
index 910c980fea1ae497728b27d1b2bd6fd84e3267af..0e5b39063f3a1fc1b6b8ad5e35529fdc1349d852 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
-<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
+<link rel="prev" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
+<link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpjpegpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsession.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpsbcpay"></a><div class="titlepage"></div>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.122.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.145.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.122.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.145.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
index 0ca137083583d7e99613096d7231dd2568a1781a..991691800cdd4b1c11e27666c004126ddc5c405e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpptdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -253,7 +253,7 @@ and will signal the <a class="link" href="gst-plugins-good-plugins-rtpsession.ht
 mapping. One can clear the cached values with the <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map" title="The “clear-pt-map” signal"><span class="type">“clear-pt-map”</span></a>
 signal.</p>
 <div class="refsect2">
-<a name="id-1.2.130.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.146.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -321,7 +321,7 @@ keep (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstr
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.130.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.146.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -347,7 +347,7 @@ keep (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstr
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.130.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.146.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -609,7 +609,7 @@ keep (see <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstr
 <div class="refsect2">
 <a name="GstRtpSession--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clock”</code> property</h3>
 <pre class="programlisting">  “use-pipeline-clock”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-source property).</p>
+<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages (DEPRECATED: Use ntp-time-source property).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -662,7 +662,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Clear the cached pt-maps requested with <a class="link" href="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map" title="The “request-pt-map” signal"><span class="type">“request-pt-map”</span></a>.</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -694,7 +694,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Notify of an SSRC that became inactive because of a BYE packet.</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -731,7 +731,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Notify of an SSRC that has timed out because of BYE</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -769,7 +769,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
 <p>Notify of a new SSRC that entered <em class="parameter"><code>session</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -806,7 +806,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Notify of a sender SSRC that has timed out and became a receiver</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -861,7 +861,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Notify that a new SDES was received for SSRC.</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.9.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.9.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -907,7 +907,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
 <p>Notify of an SSRC that has timed out</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.11.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.11.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -945,7 +945,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpsession.html#Gs
 <p>Request the payload type as <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstCaps.html"><span class="type">GstCaps</span></a> for <em class="parameter"><code>pt</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.130.12.12.5"></a><h4>Parameters</h4>
+<a name="id-1.2.146.12.12.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
index e480f1e8bea48bdc6bbda75a0fba4979fabd008c..36890481bd852e6becc6e971e79be9665460f16f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
-<link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
+<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-rtpsession.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxsend.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtspsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtpssrcdemux"></a><div class="titlepage"></div>
@@ -90,7 +90,7 @@ decode an RTP stream with multiple SSRCs.</p>
 <p>For each SSRC that is detected, a new pad will be created and the
 <a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad" title="The “new-ssrc-pad” signal"><span class="type">“new-ssrc-pad”</span></a> signal will be emitted. </p>
 <div class="refsect2">
-<a name="id-1.2.131.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.147.7.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -107,7 +107,7 @@ to fakesink, discarding the other SSRCs.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.131.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.147.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -133,7 +133,7 @@ to fakesink, discarding the other SSRCs.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.131.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.147.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -254,7 +254,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>Action signal to remove the pad for SSRC.</p>
 <div class="refsect3">
-<a name="id-1.2.131.10.2.5"></a><h4>Parameters</h4>
+<a name="id-1.2.147.10.2.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -292,7 +292,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>Emited when a new SSRC pad has been created.</p>
 <div class="refsect3">
-<a name="id-1.2.131.10.3.5"></a><h4>Parameters</h4>
+<a name="id-1.2.147.10.3.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -335,7 +335,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtpssrcdemux.html#
                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
 <p>Emited when a SSRC pad has been removed.</p>
 <div class="refsect3">
-<a name="id-1.2.131.10.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.147.10.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index fd540eea4594786e30450a859159f2bd1f4f55d7..e12dfb2cf5fabf46cb9667a8af6634ccc9881336 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
-<link rel="next" href="gst-plugins-good-plugins-rtpbin.html" title="rtpbin">
+<link rel="prev" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
+<link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,8 +23,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-rtpbin.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpssrcdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-sbcparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-rtspsrc"></a><div class="titlepage"></div>
@@ -215,6 +215,17 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-interaction" title="The “tls-interaction” property">tls-interaction</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><span class="type">GstRTSPSrcNtpTimeSource</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-time-source" title="The “ntp-time-source” property">ntp-time-source</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent" title="The “user-agent” property">user-agent</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -306,7 +317,7 @@ This feature is implemented using the gstrtpbin element.</p>
 <p>rtspsrc acts like a live source and will therefore only generate data in the
 PLAYING state.</p>
 <div class="refsect2">
-<a name="id-1.2.123.9.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.148.9.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -323,7 +334,7 @@ fakesink.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.123.9.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.148.9.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -349,7 +360,7 @@ fakesink.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.123.9.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.148.9.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -617,7 +628,7 @@ keep alive and then this property needs to be set to FALSE.</p>
 <div class="refsect2">
 <a name="GstRTSPSrc--use-pipeline-clock"></a><h3>The <code class="literal">“use-pipeline-clock”</code> property</h3>
 <pre class="programlisting">  “use-pipeline-clock”       <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages.</p>
+<p>Use the pipeline running-time to set the NTP time in the RTCP SR messages(DEPRECATED: Use ntp-time-source property).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -658,6 +669,22 @@ keep alive and then this property needs to be set to FALSE.</p>
 <p>A GTlsInteraction object to promt the user for password or certificate.</p>
 <p>Flags: Read / Write</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--ntp-time-source"></a><h3>The <code class="literal">“ntp-time-source”</code> property</h3>
+<pre class="programlisting">  “ntp-time-source”          <span class="type">GstRTSPSrcNtpTimeSource</span></pre>
+<p>NTP time source for RTCP packets.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NTP time based on realtime clock</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--user-agent"></a><h3>The <code class="literal">“user-agent”</code> property</h3>
+<pre class="programlisting">  “user-agent”               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The User-Agent string to send to the server.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: "GStreamer/1.5.90"</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2>
@@ -678,7 +705,7 @@ to modify the state as a result of this signal, post a
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread
 in some other way.</p>
 <div class="refsect3">
-<a name="id-1.2.123.13.2.6"></a><h4>Parameters</h4>
+<a name="id-1.2.148.13.2.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -728,7 +755,7 @@ to modify the state as a result of this signal, post a
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstMessage.html#GST-MESSAGE-REQUEST-STATE:CAPS"><span class="type">GST_MESSAGE_REQUEST_STATE</span></a> message on the bus or signal the main thread
 in some other way.</p>
 <div class="refsect3">
-<a name="id-1.2.123.13.3.6"></a><h4>Parameters</h4>
+<a name="id-1.2.148.13.3.6"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -769,7 +796,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRT
 <em class="parameter"><code>caps</code></em>
 .</p>
 <div class="refsect3">
-<a name="id-1.2.123.13.4.5"></a><h4>Parameters</h4>
+<a name="id-1.2.148.13.4.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -801,7 +828,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRT
 </table></div>
 </div>
 <div class="refsect3">
-<a name="id-1.2.123.13.4.6"></a><h4>Returns</h4>
+<a name="id-1.2.148.13.4.6"></a><h4>Returns</h4>
 <p> <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> when the stream should be selected, <a href="https://developer.gnome.org/glib/unstable/glib-Standard-Macros.html#FALSE:CAPS"><code class="literal">FALSE</code></a> when the stream
 is to be ignored.</p>
 </div>
@@ -818,7 +845,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRT
 <p>Emited after a new manager (like rtpbin) was created and the default
 properties were configured.</p>
 <div class="refsect3">
-<a name="id-1.2.123.13.5.5"></a><h4>Parameters</h4>
+<a name="id-1.2.148.13.5.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
@@ -858,7 +885,7 @@ user_function (<a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRT
 stream. User should provide the key and the RTCP encryption ciphers
 and authentication, and return them wrapped in a GstCaps.</p>
 <div class="refsect3">
-<a name="id-1.2.123.13.6.5"></a><h4>Parameters</h4>
+<a name="id-1.2.148.13.6.5"></a><h4>Parameters</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="150px" class="parameters_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
index 900354f27b9cb7e0a7acc81eee2cf4a7e358bc07..9f727a0451a15b0c3ceab464defdcfbe585d37ce 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
+<link rel="prev" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
 <link rel="next" href="gst-plugins-good-plugins-scaletempo.html" title="scaletempo">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-rtprtxreceive.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtspsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-scaletempo.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -62,7 +62,7 @@ frames and timestamp them properly.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.134.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.149.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -72,7 +72,7 @@ frames and timestamp them properly.</p>
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
@@ -88,7 +88,7 @@ frames and timestamp them properly.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.134.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.149.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
index bf6ef27f50189d812e1583e91f68c23e1d200296..5f1e98cdccd155fdb2db9b87d659e6523a40a194 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-scaletempo.html
@@ -95,7 +95,7 @@
 Inspired by SoundTouch library by Olli Parviainen</p>
 <p>Use Sceletempo to apply playback rates without the chipmunk effect.</p>
 <div class="refsect2">
-<a name="id-1.2.135.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.150.7.4"></a><h3>Example pipelines</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -148,7 +148,7 @@ the algoritm looks.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.135.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.150.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -174,7 +174,7 @@ the algoritm looks.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.135.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.150.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
index f32807c9cc0c86eabbe6f440c51595d5aafe48a4..4ebd09681a9d68a7fc95d160a8ca92092948cb78 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shagadelictv.html
@@ -60,7 +60,7 @@
 <a name="gst-plugins-good-plugins-shagadelictv.description"></a><h2>Description</h2>
 <p>Oh behave, ShagedelicTV makes images shagadelic!</p>
 <div class="refsect2">
-<a name="id-1.2.136.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.151.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.136.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.151.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.136.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.151.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
index c8c1d9ef538b0827b9969eab981ac34b3a27128a..7c8b1f231e802f14c633e6076957e04098ddc88e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shapewipe.html
@@ -86,7 +86,7 @@ can be added by the border property.</p>
 <p>Transition bitmaps can be downloaded from the</p>
 <a class="ulink" href="http://cinelerra.org/transitions.php" target="_top">Cinelerra transition</a><p>page.</p>
 <div class="refsect2">
-<a name="id-1.2.137.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.152.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -102,7 +102,7 @@ can be added by the border property.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.137.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.152.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -128,7 +128,7 @@ can be added by the border property.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.137.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.152.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
index b66230ebe8b80bda379c83d813055ec06aaa28b7..86df3a7b5709d9a2384d73019655cd48bbb21161 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-shout2send.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-shapewipe.html" title="shapewipe">
-<link rel="next" href="gst-plugins-good-plugins-smpte.html" title="smpte">
+<link rel="next" href="gst-plugins-good-plugins-smokedec.html" title="smokedec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -24,7 +24,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-shapewipe.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-smpte.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-smokedec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-shout2send"></a><div class="titlepage"></div>
@@ -164,7 +164,7 @@ GstShout2send implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.138.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.153.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -190,7 +190,7 @@ GstShout2send implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.138.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.153.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smokedec.html b/docs/plugins/html/gst-plugins-good-plugins-smokedec.html
new file mode 100644
index 0000000000000000000000000000000000000000..b88f7947c89e08c699ad6cb677a2dc6fdfdaf938
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-smokedec.html
@@ -0,0 +1,87 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>smokedec: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">
+<link rel="next" href="gst-plugins-good-plugins-smokeenc.html" title="smokeenc">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-smokedec.description" class="shortcut">Description</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-shout2send.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-smokeenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-smokedec"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-smokedec.top_of_page"></a>smokedec</span></h2>
+<p>smokedec</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokedec.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-smokedec.html#GstSmokeDec" title="struct GstSmokeDec">GstSmokeDec</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokedec.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokedec.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokedec.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstSmokeDec"></a><h3>struct GstSmokeDec</h3>
+<pre class="programlisting">struct GstSmokeDec {
+  GstElement element;
+
+  /* pads */
+  GstPad *sinkpad,*srcpad;
+
+  /* video state */
+  gint format;
+  gint width;
+  gint height;
+  gint fps_num;
+  gint fps_denom;
+  GstClockTime next_time;
+
+  SmokeCodecInfo *info;
+
+  gint threshold;
+  gint quality;
+  gint smoothing;
+
+  gboolean need_keyframe;
+};
+</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html b/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html
new file mode 100644
index 0000000000000000000000000000000000000000..045c355fea7a567563a692f194ac8719c36451f9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html
@@ -0,0 +1,158 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>smokeenc: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
+<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-smokedec.html" title="smokedec">
+<link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
+<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
+<link rel="stylesheet" href="style.css" type="text/css">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
+<td width="100%" align="left" class="shortcuts">
+<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-smokeenc.description" class="shortcut">Description</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-smokeenc.properties" class="shortcut">Properties</a></span>
+</td>
+<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
+<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-smokedec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-smptealpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-smokeenc"></a><div class="titlepage"></div>
+<div class="refnamediv"><table width="100%"><tr>
+<td valign="top">
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-smokeenc.top_of_page"></a>smokeenc</span></h2>
+<p>smokeenc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="properties_type">
+<col width="300px" class="properties_name">
+<col width="200px" class="properties_flags">
+</colgroup>
+<tbody>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--keyframe" title="The “keyframe” property">keyframe</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmax" title="The “qmax” property">qmax</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmin" title="The “qmin” property">qmin</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--threshold" title="The “threshold” property">threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword">struct</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc" title="struct GstSmokeEnc">GstSmokeEnc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.description"></a><h2>Description</h2>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstSmokeEnc"></a><h3>struct GstSmokeEnc</h3>
+<pre class="programlisting">struct GstSmokeEnc {
+  GstElement element;
+
+  /* pads */
+  GstPad *sinkpad,*srcpad;
+
+  /* video state */
+  gint format;
+  gint width;
+  gint height;
+  gint frame;
+  gint keyframe;
+  gint fps_num, fps_denom;
+
+  SmokeCodecInfo *info;
+
+  gint threshold;
+  gint min_quality;
+  gint max_quality;
+
+  gboolean need_header;
+};
+</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-smokeenc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstSmokeEnc--keyframe"></a><h3>The <code class="literal">“keyframe”</code> property</h3>
+<pre class="programlisting">  “keyframe”                 <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Insert keyframe every N frames.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [1,100000]</p>
+<p>Default value: 20</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSmokeEnc--qmax"></a><h3>The <code class="literal">“qmax”</code> property</h3>
+<pre class="programlisting">  “qmax”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum quality.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 85</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSmokeEnc--qmin"></a><h3>The <code class="literal">“qmin”</code> property</h3>
+<pre class="programlisting">  “qmin”                     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Minimum quality.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSmokeEnc--threshold"></a><h3>The <code class="literal">“threshold”</code> property</h3>
+<pre class="programlisting">  “threshold”                <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Motion estimation threshold.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100000000]</p>
+<p>Default value: 3000</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.24</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
index 4f2cf24b3b2d1784f846cabeb89cceaf291f3b6f..c70be32a77073e6b54159c0ab444527e1519e998 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">
-<link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
+<link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
+<link rel="next" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-shout2send.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-smptealpha.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-smptealpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-smpte"></a><div class="titlepage"></div>
@@ -106,7 +106,7 @@ specific alpha mask. </p>
 higher presision will create a mask with smoother gradients in order to avoid
 banding.</p>
 <div class="refsect2">
-<a name="id-1.2.139.7.4"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.157.7.4"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -125,7 +125,7 @@ edges of the transition are smoothed with a 20000 big border.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.139.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.157.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -151,7 +151,7 @@ edges of the transition are smoothed with a 20000 big border.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.139.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.157.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
index 44201ad44ec983a1e71739060b85a677c40a1261..b8f7727e3f08a5c1216d516a041973098085152d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte">
-<link rel="next" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
+<link rel="prev" href="gst-plugins-good-plugins-smokeenc.html" title="smokeenc">
+<link rel="next" href="gst-plugins-good-plugins-smpte.html" title="smpte">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-smpte.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-smokeenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-smpte.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-smptealpha"></a><div class="titlepage"></div>
@@ -107,7 +107,7 @@ channel set to completely transparent.</p>
 A higher presision will create a mask with smoother gradients in order to
 avoid banding.</p>
 <div class="refsect2">
-<a name="id-1.2.140.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.156.7.5"></a><h3>Sample pipelines</h3>
 <p>
 Here is a pipeline to demonstrate the smpte transition :
 </p>
@@ -124,7 +124,7 @@ transparent image. The edges of the transition are smoothed with a
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.140.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.156.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -150,7 +150,7 @@ transparent image. The edges of the transition are smoothed with a
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.140.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.156.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
index 77fa0ce9bf5831bd6a087e279b257f7392fa3276..32cf7d281bd0acb5c4592b220a136c9b5a1a81eb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
+<link rel="prev" href="gst-plugins-good-plugins-smpte.html" title="smpte">
 <link rel="next" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-smptealpha.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-smpte.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-spectrum.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -182,6 +182,12 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--tls-database" title="The “tls-database” property">tls-database</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--method" title="The “method” property">method</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -220,7 +226,7 @@ GstSoupHTTPSrc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.141.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.158.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -246,7 +252,7 @@ GstSoupHTTPSrc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.141.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.158.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -485,6 +491,14 @@ GstSoupHTTPSrc implements
 <p>TLS database with anchor certificate authorities used to validate the server certificate.</p>
 <p>Flags: Read / Write</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHTTPSrc--method"></a><h3>The <code class="literal">“method”</code> property</h3>
+<pre class="programlisting">  “method”                   <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The HTTP method to use (GET, HEAD, OPTIONS, etc).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
index d2860be6599674d3e962654729d0c99f32b0a1d0..17b31ce9e8a10c459edebca6fdd6e625e3f63f6f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
-<link rel="next" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
+<link rel="next" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-souphttpsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-speexenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-speexdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-spectrum"></a><div class="titlepage"></div>
@@ -162,7 +162,7 @@ as element messages named</p>
 fields will be each a nested <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstControlSource.html#GstValueArray"><span class="type">GstValueArray</span></a>. The first dimension are the
 channels and the second dimension are the values.</p>
 <div class="refsect2">
-<a name="id-1.2.142.7.8"></a><h3>Example application</h3>
+<a name="id-1.2.160.7.8"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -424,7 +424,7 @@ channels and the second dimension are the values.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.142.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.160.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -450,7 +450,7 @@ channels and the second dimension are the values.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.142.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.160.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
index fb031e6e6c8e74456218e0f5758ebd2882dd9270..9089f7fccca5e109a7ccbc87cf8e7800f87df049 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
-<link rel="next" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
+<link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
+<link rel="next" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-speexenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-spectrum.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-speexenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-speexdec"></a><div class="titlepage"></div>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.144.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.161.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.144.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.161.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
index d2ef8b3a6d2720a11bd6ab0b638209d8ac0d9dc2..215ef42dc30018baf15d58a2c7ff5ea623ea4fe2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
-<link rel="next" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
+<link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
+<link rel="next" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-spectrum.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-speexdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-speexdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-speexenc"></a><div class="titlepage"></div>
@@ -131,7 +131,7 @@ GstSpeexEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.143.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.162.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +157,7 @@ GstSpeexEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.143.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.162.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
index e0ed2d5b84c01cc68d59aa50980eddc2def8897d..5f332e06bf96c37d61346c712b17d3de620a8f4d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-speexdec.html" title="speexdec">
-<link rel="next" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
+<link rel="prev" href="gst-plugins-good-plugins-speexenc.html" title="speexenc">
+<link rel="next" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-speexdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-splitmuxsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-speexenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-splitmuxsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-splitfilesrc"></a><div class="titlepage"></div>
@@ -89,7 +89,7 @@ for example.</p>
 (and expects) shell-style wildcards (but only for the filename, not for
 directories). The results will be sorted.</p>
 <div class="refsect2">
-<a name="id-1.2.145.8.4"></a><h3>Example launch lines</h3>
+<a name="id-1.2.163.8.4"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -116,7 +116,7 @@ directories). The results will be sorted.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.145.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.163.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -142,7 +142,7 @@ directories). The results will be sorted.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.145.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.163.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
index 0bdd6b734fd6151effed518ab4ae667ebfdbb5cd..358fb3f97c90fa635ca2103bef0bf11d185c5c17 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
-<link rel="next" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
+<link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
+<link rel="next" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -18,12 +18,13 @@
                   <a href="#gst-plugins-good-plugins-splitmuxsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-splitmuxsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-splitmuxsink.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-splitmuxsink.properties" class="shortcut">Properties</a></span>
+                  <a href="#gst-plugins-good-plugins-splitmuxsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-splitmuxsink.signals" class="shortcut">Signals</a></span>
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-splitmuxsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-streaktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-splitmuxsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-splitmuxsink"></a><div class="titlepage"></div>
@@ -79,6 +80,22 @@
 </tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-splitmuxsink.signals"></a><h2>Signals</h2>
+<div class="informaltable"><table border="0">
+<colgroup>
+<col width="150px" class="signals_return">
+<col width="300px" class="signals_name">
+<col width="200px" class="signals_flags">
+</colgroup>
+<tbody><tr>
+<td class="signal_type">
+<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>*</td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location" title="The “format-location” signal">format-location</a></td>
+<td class="signal_flags"><a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
+</tr></tbody>
+</table></div>
+</div>
 <a name="GstSplitMuxSink"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-splitmuxsink.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table width="100%" border="0">
@@ -123,7 +140,7 @@ distance between any 2 keyframes is larger than the limits.</p>
 the video stream must contain closed GOPs for the output file parts
 to be played individually correctly.</p>
 <div class="refsect2">
-<a name="id-1.2.147.8.6"></a><h3>Example pipelines</h3>
+<a name="id-1.2.164.9.6"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -142,7 +159,7 @@ and 1MB maximum size.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.147.8.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.164.9.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -168,7 +185,7 @@ and 1MB maximum size.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.147.8.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.164.9.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -304,6 +321,48 @@ and 1MB maximum size.
 <p>Flags: Read / Write</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-splitmuxsink.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="GstSplitMuxSink-format-location"></a><h3>The <code class="literal">“format-location”</code> signal</h3>
+<pre class="programlisting"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="returnvalue">gchar</span></a>*
+user_function (<a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink"><span class="type">GstSplitMuxSink</span></a> *splitmux,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>            fragment_id,
+               <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+<div class="refsect3">
+<a name="id-1.2.164.13.2.4"></a><h4>Parameters</h4>
+<div class="informaltable"><table width="100%" border="0">
+<colgroup>
+<col width="150px" class="parameters_name">
+<col class="parameters_description">
+<col width="200px" class="parameters_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="parameter_name"><p>splitmux</p></td>
+<td class="parameter_description"><p>the <a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink"><span class="type">GstSplitMuxSink</span></a></p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fragment_id</p></td>
+<td class="parameter_description"><p>the sequence number of the file to be created</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>user_data</p></td>
+<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect3">
+<a name="id-1.2.164.13.2.5"></a><h4>Returns</h4>
+<p> the location to be used for the next output file</p>
+</div>
+<p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
+</div>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.24</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
index f1a78ba9601600abe1e2febb3536ec8a0b1cc0e5..cc517702825fc0dd992f3fd3fb929036305e00e2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-splitfilesrc.html" title="splitfilesrc">
-<link rel="next" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
+<link rel="prev" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
+<link rel="next" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-splitfilesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-splitmuxsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-splitmuxsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-streaktv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-splitmuxsrc"></a><div class="titlepage"></div>
@@ -88,7 +88,7 @@ containing contiguous elementary streams split across multiple files.</p>
 streams in each file part at the demuxed elementary level, rather than
 as a single larger bytestream.</p>
 <div class="refsect2">
-<a name="id-1.2.146.8.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.165.8.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +115,7 @@ as a single larger bytestream.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.146.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.165.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@ as a single larger bytestream.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.146.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.165.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
index 083fb3eda4aad916f4f265d889c523316b86dbd2..4ac5f4485867e47310d265059c66272ea7da66e9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-splitmuxsink.html" title="splitmuxsink">
+<link rel="prev" href="gst-plugins-good-plugins-splitmuxsrc.html" title="splitmuxsrc">
 <link rel="next" href="gst-plugins-good-plugins-taginject.html" title="taginject">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -21,7 +21,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-splitmuxsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-splitmuxsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-taginject.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -76,7 +76,7 @@
 <a name="gst-plugins-good-plugins-streaktv.description"></a><h2>Description</h2>
 <p>StreakTV makes after images of moving objects.</p>
 <div class="refsect2">
-<a name="id-1.2.148.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.166.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.148.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.166.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +118,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.148.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.166.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-taginject.html b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
index 4c0b78df788b62dc8b1094f55a952d3b79331e42..3b761b1dfa86b7a61d49d3a98bdd1ec1db744eef 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-taginject.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-taginject.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-streaktv.html" title="streaktv">
-<link rel="next" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
+<link rel="next" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,7 +22,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-streaktv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-udpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-taginject"></a><div class="titlepage"></div>
@@ -77,7 +77,7 @@
 <p>Element that injects new metadata tags, but passes incomming data through
 unmodified.</p>
 <div class="refsect2">
-<a name="id-1.2.149.7.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.167.7.3"></a><h3>Example launch lines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ unmodified.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.149.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.167.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ unmodified.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.149.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.167.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
index 4c8158e1a2a276d55dfe4287e94e31111a99c2f0..50e00213bf31749513d8f47de4e1190890ecb2f6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
-<link rel="next" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
+<link rel="prev" href="gst-plugins-good-plugins-taginject.html" title="taginject">
+<link rel="next" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-udpsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-taginject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-udpsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-udpsink"></a><div class="titlepage"></div>
@@ -92,7 +92,7 @@ GstUDPSink implements
 <p>udpsink is a network sink that sends UDP packets to the network.
 It can be combined with RTP payloaders to implement RTP streaming.</p>
 <div class="refsect2">
-<a name="id-1.2.151.8.3"></a><h3>Examples</h3>
+<a name="id-1.2.168.8.3"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@ It can be combined with RTP payloaders to implement RTP streaming.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.151.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.168.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +134,7 @@ It can be combined with RTP payloaders to implement RTP streaming.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.151.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.168.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
index c5d1cd74a879d390e7625ffef83189f9d96e2844..9afef6a5d170c62271a8f48fb4b0b1d9f0f9d24c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-taginject.html" title="taginject">
-<link rel="next" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
+<link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
+<link rel="next" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-taginject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-udpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2radio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-udpsrc"></a><div class="titlepage"></div>
@@ -222,7 +222,7 @@ the element to READY by default. This behaviour can be overriden
 with the <a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--close-socket" title="The “close-socket” property"><span class="type">“close-socket”</span></a> property, in which case the
 application is responsible for closing the file descriptor.</p>
 <div class="refsect2">
-<a name="id-1.2.150.8.17"></a><h3>Examples</h3>
+<a name="id-1.2.169.8.17"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -263,7 +263,7 @@ above mentioned pipeline should dump data packets to the console.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.150.8.18.1"></a><h3>Element Information</h3>
+<a name="id-1.2.169.8.18.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -289,7 +289,7 @@ above mentioned pipeline should dump data packets to the console.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.150.8.18.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.169.8.18.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
index 677ca2564d720aa8d89bf53f322da8f94f1cfe54..3157fc6e70bb01fb8aec36611de3cb03987e9ba2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
-<link rel="next" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
+<link rel="prev" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
+<link rel="next" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2sink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-vertigotv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-udpsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2sink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-v4l2radio"></a><div class="titlepage"></div>
@@ -90,7 +90,7 @@ GstV4l2Radio implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.154.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.170.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +116,7 @@ GstV4l2Radio implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.154.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.170.8.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
index cae298b5a0adb6784d9c9c4e26985805c25f85fc..8e93cf8244bf61df791d8ec1b1427288e3da2866 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
-<link rel="next" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
+<link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
+<link rel="next" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -22,8 +22,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2radio.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2radio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2src.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-v4l2sink"></a><div class="titlepage"></div>
@@ -200,7 +200,7 @@ GstV4l2Sink implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.153.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.171.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -226,7 +226,7 @@ GstV4l2Sink implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.153.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.171.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -263,7 +263,7 @@ GstV4l2Sink implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -279,19 +279,19 @@ GstV4l2Sink implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
index ade38f2ee1a38c591ce6112e5a49d0d850caab91..fbc7fc250085d18709c300f3465d8e7b56d2e499 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-udpsink.html" title="udpsink">
-<link rel="next" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
+<link rel="prev" href="gst-plugins-good-plugins-v4l2sink.html" title="v4l2sink">
+<link rel="next" href="gst-plugins-good-plugins-vertigotv.html" title="vertigotv">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -23,8 +23,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-udpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-v4l2sink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2sink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-vertigotv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-v4l2src"></a><div class="titlepage"></div>
@@ -181,7 +181,7 @@ GstV4l2Src implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.152.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.172.9.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -207,7 +207,7 @@ GstV4l2Src implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.152.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.172.9.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -244,7 +244,7 @@ GstV4l2Src implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -260,19 +260,19 @@ GstV4l2Src implements
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]</td>
+<td> video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
index b65c4b88e71e4462c0bf81621f32dffe1b346497..873b12d119add436a475019a418ff4936e819515 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-v4l2radio.html" title="v4l2radio">
+<link rel="prev" href="gst-plugins-good-plugins-v4l2src.html" title="v4l2src">
 <link rel="next" href="gst-plugins-good-plugins-videobalance.html" title="videobalance">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -22,7 +22,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2radio.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-v4l2src.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-videobalance.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -99,7 +99,7 @@
 <a name="gst-plugins-good-plugins-vertigotv.description"></a><h2>Description</h2>
 <p>VertigoTV is a loopback alpha blending effector with rotating and scaling.</p>
 <div class="refsect2">
-<a name="id-1.2.155.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.173.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +115,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.155.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.173.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.155.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.173.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
index aff0641fddd51b34b0c832265b3a0178d6d05a50..cd13613e82f43e6be6275171dfd58bc53ed5e630 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
@@ -100,7 +100,7 @@ GstVideoBalance implements
 <a name="gst-plugins-good-plugins-videobalance.description"></a><h2>Description</h2>
 <p>Adjusts brightness, contrast, hue, saturation on a video stream.</p>
 <div class="refsect2">
-<a name="id-1.2.156.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.174.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -117,7 +117,7 @@ saturation to 0.0.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.156.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.174.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -143,7 +143,7 @@ saturation to 0.0.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.156.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.174.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
index bee72561ed962b2e8f4d768631dde363bdf8fd6e..30dd0cf99891e102a75511c51792932ff8bb1363 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
@@ -149,7 +149,7 @@ but nothing stops you from doing so.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.157.7.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.175.7.10.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,7 +175,7 @@ but nothing stops you from doing so.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.157.7.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.175.7.10.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
index 8778ddf82af0bda11f18b4ea3d69e335637952c0..38a7a1cae24951f0b83859809bebdc20eb9fa331 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
@@ -106,7 +106,7 @@ shifts for such formats in the case where the <a class="link" href="gst-plugins-
 <a class="link" href="gst-plugins-good-plugins-videocrop.html#GstVideoCrop--top" title="The “top” property"><span class="type">“top”</span></a> property is set to an odd number. This doesn't matter for 
 most use cases, but it might matter for yours.</p>
 <div class="refsect2">
-<a name="id-1.2.158.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.176.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -122,7 +122,7 @@ most use cases, but it might matter for yours.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.158.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.176.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -148,7 +148,7 @@ most use cases, but it might matter for yours.</p>
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.158.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.176.7.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
index 69111190925f30f62d6c9c97bce3d7539209bbc0..0c1ce85c3f7cb809b22926b0e1e3f963ad199f2e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
@@ -82,7 +82,7 @@
 <a name="gst-plugins-good-plugins-videoflip.description"></a><h2>Description</h2>
 <p>Flips and rotates video.</p>
 <div class="refsect2">
-<a name="id-1.2.159.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.177.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.159.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.177.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.159.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.177.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,7 +192,7 @@
 <a name="GstVideoFlipMethod"></a><h3>enum GstVideoFlipMethod</h3>
 <p>The different flip methods.</p>
 <div class="refsect3">
-<a name="id-1.2.159.9.3.4"></a><h4>Members</h4>
+<a name="id-1.2.177.9.3.4"></a><h4>Members</h4>
 <div class="informaltable"><table width="100%" border="0">
 <colgroup>
 <col width="300px" class="enum_members_name">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
index 929a5e4ef06acafdcb4413d6b14957b2a696b689..ba1371352850c656d870020ca09c3e8252927bdc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
@@ -41,7 +41,7 @@ biggest incoming video stream and the framerate of the fastest incoming one.</p>
 <p>Individual parameters for each input stream can be configured on the
 <span class="type">GstVideoMixer2Pad</span>.</p>
 <div class="refsect2">
-<a name="id-1.2.160.3.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.178.3.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -140,7 +140,7 @@ framerate of the output video is 10 frames per second.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.160.3.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.178.3.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -166,7 +166,7 @@ framerate of the output video is 10 frames per second.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.160.3.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.178.3.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
index 0e1468404e5516ca336e284ea9723447369c0765..e4215c21660c12dcfe14ca6a90fcb5941467816f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.161.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.179.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.161.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.179.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
index 815a1c78e0f7e00b9d3214e3b857261122af8100..1da16ec59fd41ee5981c5e6111ceca9016dcd25b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
@@ -382,7 +382,7 @@ GstVP8Enc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.162.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.180.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -408,7 +408,7 @@ GstVP8Enc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.162.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.180.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -650,7 +650,7 @@ GstVP8Enc implements
 <div class="refsect2">
 <a name="GstVP8Enc--multipass-cache-file"></a><h3>The <code class="literal">“multipass-cache-file”</code> property</h3>
 <pre class="programlisting">  “multipass-cache-file”     <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>Multipass cache file.</p>
+<p>Multipass cache file. If stream caps reinited, multiple files will be created: file, file.1, file.2, ... and so on.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "multipass.cache"</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
index 01cbec314d4bc7d89b7e297dafd019846ab70aa5..4944feb849360aa969d0e6a5e93e770ef4f1c34c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
@@ -7,7 +7,7 @@
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
 <link rel="prev" href="gst-plugins-good-plugins-vp8enc.html" title="vp8enc">
-<link rel="next" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
+<link rel="next" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,7 +21,7 @@
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
 <td><a accesskey="p" href="gst-plugins-good-plugins-vp8enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-wavenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-waveformsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-warptv"></a><div class="titlepage"></div>
@@ -60,7 +60,7 @@
 <a name="gst-plugins-good-plugins-warptv.description"></a><h2>Description</h2>
 <p>WarpTV does realtime goo'ing of the video input.</p>
 <div class="refsect2">
-<a name="id-1.2.163.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.181.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.163.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.181.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +102,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.163.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.181.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
index d8db68dc8a1cce19a8963bd6f84f085b7da372cc..c9aeac7ad0211902937eaa3e41a0524a31edb7a4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
-<link rel="next" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
+<link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv">
+<link rel="next" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -19,8 +19,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-wavenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-warptv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-wavenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-waveformsink"></a><div class="titlepage"></div>
@@ -49,7 +49,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.165.4.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.182.4.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -75,7 +75,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.165.4.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.182.4.2.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
index 778491c0f505320d4c2a231a38775695fa893a1e..8072f0cdf113e259c3fb3257cbeabe4e855a50f3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-warptv.html" title="warptv">
-<link rel="next" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
+<link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
+<link rel="next" href="gst-plugins-good-plugins-wavpackdec.html" title="wavpackdec">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -21,8 +21,8 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-warptv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-waveformsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-waveformsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-wavpackdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-wavenc"></a><div class="titlepage"></div>
@@ -65,7 +65,7 @@ GstWavEnc implements
 <a name="gst-plugins-good-plugins-wavenc.description"></a><h2>Description</h2>
 <p>Format an audio stream into the wav format.</p>
 <div class="refsect2">
-<a name="id-1.2.164.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.183.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -92,7 +92,7 @@ GstWavEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.164.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.183.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +118,7 @@ GstWavEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.164.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.183.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
index 01bb59667d023f27ac0d73966822e5c118bd279d..86182a6ce3866b0acc83e1d4948aaf679be92308 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
 <link rel="up" href="ch01.html" title="gst-plugins-good Elements">
-<link rel="prev" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
+<link rel="prev" href="gst-plugins-good-plugins-wavenc.html" title="wavenc">
 <link rel="next" href="gst-plugins-good-plugins-wavpackenc.html" title="wavpackenc">
 <meta name="generator" content="GTK-Doc V1.24 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -20,7 +20,7 @@
 </td>
 <td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
 <td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-waveformsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-wavenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-wavpackenc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.166.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.184.6.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +86,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.166.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.184.6.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
index 1c5e06057c76ff376a29b4ba3ed91a306d79dce6..2b038253ebabe2843233ffae7ff57dd89b308c27 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
@@ -115,7 +115,7 @@ GstWavpackEnc implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.167.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.185.8.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +141,7 @@ GstWavpackEnc implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.167.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.185.8.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
index 0f6e9e6f181c6a6c6741a7993ec64987c66cbe91..579e8923fbbad9c5b9fa717aea44e1323dd991cc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
@@ -59,7 +59,7 @@
 <a name="gst-plugins-good-plugins-wavpackparse.description"></a><h2>Description</h2>
 <p>This is an Wavpack parser.</p>
 <div class="refsect2">
-<a name="id-1.2.168.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.186.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -75,7 +75,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.168.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.186.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +85,7 @@
 <tr>
 <td><p><span class="term">plugin</span></p></td>
 <td>
-            audioparsers
+            <a class="link" href="gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">audioparsers</a>
           </td>
 </tr>
 <tr>
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.168.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.186.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
index b5766e01242e12691cbd4a6b4ad8063119cd8fa8..81903f6eca2abd3b5b1ce8ce561715260078532a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavparse.html
@@ -76,7 +76,7 @@
 <p>Wavparse supports both push and pull mode operations, making it possible to
 stream from a network source.</p>
 <div class="refsect2">
-<a name="id-1.2.169.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.187.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -104,7 +104,7 @@ wav file is assumed to contain raw uncompressed samples.
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.169.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.187.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@ wav file is assumed to contain raw uncompressed samples.
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.169.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.187.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
index 8a26d29a4d9e628af46828082c2cae702be9345c..e0ac4b10a9cb90d8480c40d0dd56a582a2f10eb1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
@@ -66,7 +66,7 @@ GstWebMMux implements
 <a name="gst-plugins-good-plugins-webmmux.description"></a><h2>Description</h2>
 <p>webmmux muxes VP8 video and Vorbis audio streams into a WebM file.</p>
 <div class="refsect2">
-<a name="id-1.2.170.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.188.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -103,7 +103,7 @@ GstWebMMux implements
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.170.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.188.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +118,7 @@ GstWebMMux implements
 </tr>
 <tr>
 <td><p><span class="term">author</span></p></td>
-<td>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</td>
+<td>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</td>
 </tr>
 <tr>
 <td><p><span class="term">class</span></p></td>
@@ -129,7 +129,7 @@ GstWebMMux implements
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.170.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.188.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
index 6a68d8077b775e5380203e557c44e3f69c1aa596..8f74e0cf9bb13c2cde29ad919422636f9a5eadf1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
@@ -131,7 +131,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.171.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.189.7.2.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +157,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.171.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.189.7.2.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
index 9922c653cd0c9d3450ef5aff80be2a2cbd1cd7a0..bffa70876fe7c920a88e3473e47b2039045c9883 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
@@ -65,7 +65,7 @@ GstY4mEncode implements
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-y4menc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.172.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.190.7.2"></a><h3>Example launch line</h3>
 <p>
 Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
 </p>
@@ -73,7 +73,7 @@ Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
 (write everything in one line, without the backslash characters)
 </p>
 <pre class="programlisting">
-gst-launch-0.10 videotestsrc num-buffers=250 \
+gst-launch-1.0 videotestsrc num-buffers=250 \
 ! 'video/x-raw,format=(string)I420,width=320,height=240,framerate=(fraction)25/1' \
 ! y4menc ! filesink location=test.yuv
 </pre>
@@ -83,7 +83,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.172.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.190.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +109,7 @@ gst-launch-0.10 videotestsrc num-buffers=250 \
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.172.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.190.7.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html
index e018cdb3fdcc2dcb0fae984f9f1194e01a64fd84..61581809df13dd9427145c87c80446880f6a52c5 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.5.2)
+      for GStreamer Good Plugins 1.0 (1.5.90)
       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>
@@ -41,16 +41,16 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-agingtv.html">agingtv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alpha.html">alpha</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawdec.html">alawdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alphacolor.html">alphacolor</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawenc.html">alawenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawdec.html">alawdec</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alphacolor.html">alphacolor</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-alawenc.html">alawenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-alpha.html">alpha</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-amrparse.html">amrparse</a></span><span class="refpurpose"> — AMR parser</span>
@@ -74,31 +74,31 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-audiocheblimit.html">audiocheblimit</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiofirfilter.html">audiofirfilter</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiodynamic.html">audiodynamic</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioiirfilter.html">audioiirfilter</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioecho.html">audioecho</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsincband.html">audiowsincband</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiofirfilter.html">audiofirfilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsinclimit.html">audiowsinclimit</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioiirfilter.html">audioiirfilter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioecho.html">audioecho</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioinvert.html">audioinvert</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiodynamic.html">audiodynamic</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiokaraoke.html">audiokaraoke</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audioinvert.html">audioinvert</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiopanorama.html">audiopanorama</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiopanorama.html">audiopanorama</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsincband.html">audiowsincband</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiokaraoke.html">audiokaraoke</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-audiowsinclimit.html">audiowsinclimit</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-auparse.html">auparse</a></span><span class="refpurpose"></span>
@@ -203,10 +203,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom2k1.html">goom2k1</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom2k1.html">goom2k1</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-goom.html">goom</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-hdv1394src.html">hdv1394src</a></span><span class="refpurpose"></span>
@@ -230,10 +230,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-ismlmux.html">ismlmux</a></span><span class="refpurpose"> — Muxer for ISML smooth streaming (.isml) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosrc.html">jackaudiosrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosink.html">jackaudiosink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosink.html">jackaudiosink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-jackaudiosrc.html">jackaudiosrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-jpegdec.html">jpegdec</a></span><span class="refpurpose"></span>
@@ -245,10 +245,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-level.html">level</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskamux.html">matroskamux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskademux.html">matroskademux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskademux.html">matroskademux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-matroskamux.html">matroskamux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mj2mux.html">mj2mux</a></span><span class="refpurpose"> — Muxer for Motion JPEG-2000 (.mj2) files</span>
@@ -257,10 +257,10 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-monoscope.html">monoscope</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mp4mux.html">mp4mux</a></span><span class="refpurpose"> — Muxer for ISO MPEG-4 (.mp4) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-mp4mux.html">mp4mux</a></span><span class="refpurpose"> — Muxer for ISO MPEG-4 (.mp4) files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-mpegaudioparse.html">mpegaudioparse</a></span><span class="refpurpose"> — MPEG audio parser</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-mulawdec.html">mulawdec</a></span><span class="refpurpose"></span>
@@ -323,16 +323,16 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-pulsesrc.html">pulsesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-quarktv.html">quarktv</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtdemux.html">qtdemux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmoovrecover.html">qtmoovrecover</a></span><span class="refpurpose"> — Utility element for recovering unfinished quicktime files</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmux.html">qtmux</a></span><span class="refpurpose"> — Muxer for quicktime(.mov) files</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-qtmoovrecover.html">qtmoovrecover</a></span><span class="refpurpose"> — Utility element for recovering unfinished quicktime files</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-quarktv.html">quarktv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-radioactv.html">radioactv</a></span><span class="refpurpose"></span>
@@ -353,9 +353,6 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rippletv.html">rippletv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpac3depay.html">rtpac3depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -368,12 +365,21 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpamrpay.html">rtpamrpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvdepay.html">rtpbvdepay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbvpay.html">rtpbvpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph261depay.html">rtph261depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph261pay.html">rtph261pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -395,31 +401,61 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpbin.html">rtpbin</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdec.html">rtpdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfdepay.html">rtpdtmfdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfmux.html">rtpdtmfmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdtmfsrc.html">rtpdtmfsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kpay.html">rtpj2kpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjitterbuffer.html">rtpjitterbuffer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpjpegpay.html">rtpjpegpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvdepay.html">rtpklvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpklvpay.html">rtpklvpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16depay.html">rtpL16depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL16pay.html">rtpL16pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmux.html">rtpmux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpptdemux.html">rtpptdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxsend.html">rtprtxsend</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsbcpay.html">rtpsbcpay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxreceive.html">rtprtxreceive</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpssrcdemux.html">rtpssrcdemux</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtspsrc.html">rtspsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-sbcparse.html">sbcparse</a></span><span class="refpurpose"></span>
@@ -437,32 +473,38 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-shout2send.html">shout2send</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smokedec.html">smokedec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smokeenc.html">smokeenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-smptealpha.html">smptealpha</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-smpte.html">smpte</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-souphttpsrc.html">souphttpsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-spectrum.html">spectrum</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexenc.html">speexenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexdec.html">speexdec</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexdec.html">speexdec</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-speexenc.html">speexenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-splitfilesrc.html">splitfilesrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsrc.html">splitmuxsrc</a></span><span class="refpurpose"> — Split Demuxer bin that recombines files created by
-the splitmuxsink element.</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsink.html">splitmuxsink</a></span><span class="refpurpose"> — Muxer wrapper for splitting output stream by size or time</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsink.html">splitmuxsink</a></span><span class="refpurpose"> — Muxer wrapper for splitting output stream by size or time</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-splitmuxsrc.html">splitmuxsrc</a></span><span class="refpurpose"> — Split Demuxer bin that recombines files created by
+the splitmuxsink element.</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-streaktv.html">streaktv</a></span><span class="refpurpose"></span>
@@ -471,19 +513,19 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-taginject.html">taginject</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsrc.html">udpsrc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsink.html">udpsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-udpsrc.html">udpsrc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2src.html">v4l2src</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2radio.html">v4l2radio</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2sink.html">v4l2sink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2radio.html">v4l2radio</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-v4l2src.html">v4l2src</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-vertigotv.html">vertigotv</a></span><span class="refpurpose"></span>
@@ -513,10 +555,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-warptv.html">warptv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-wavenc.html">wavenc</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-waveformsink.html">waveformsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-waveformsink.html">waveformsink</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-wavenc.html">wavenc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-wavpackdec.html">wavpackdec</a></span><span class="refpurpose"></span>
@@ -552,10 +594,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alaw.html">alaw</a></span><span class="refpurpose"> — ALaw audio conversion routines</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — adds an alpha channel to video - constant or via chroma-keying</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alphacolor.html">alphacolor</a></span><span class="refpurpose"> — RGBA from/to AYUV colorspace conversion preserving the alpha channel</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-alpha.html">alpha</a></span><span class="refpurpose"> — adds an alpha channel to video - constant or via chroma-keying</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-apetag.html">apetag</a></span><span class="refpurpose"> — APEv1/2 tag reader</span>
@@ -564,6 +606,9 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audiofx.html">audiofx</a></span><span class="refpurpose"> — Audio effects plugin</span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-audioparsers.html">audioparsers</a></span><span class="refpurpose"> — Parsers for various audio formats</span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-auparse.html">auparse</a></span><span class="refpurpose"> — parses au streams</span>
 </dt>
 <dt>
@@ -597,10 +642,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-dv.html">dv</a></span><span class="refpurpose"> — DV demuxer and decoder based on libdv (libdv.sf.net)</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — GStreamer audio equalizers</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — effect plugins from the effectv project</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-effectv.html">effectv</a></span><span class="refpurpose"> — effect plugins from the effectv project</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-equalizer.html">equalizer</a></span><span class="refpurpose"> — GStreamer audio equalizers</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-flac.html">flac</a></span><span class="refpurpose"> — The FLAC Lossless compressor Codec</span>
@@ -615,10 +660,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-gdkpixbuf.html">gdkpixbuf</a></span><span class="refpurpose"> — GdkPixbuf-based image decoder, overlay and sink</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — GOOM visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — GOOM 2k1 visualization filter</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom2k1.html">goom2k1</a></span><span class="refpurpose"> — GOOM 2k1 visualization filter</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-goom.html">goom</a></span><span class="refpurpose"> — GOOM visualization filter</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-icydemux.html">icydemux</a></span><span class="refpurpose"> — Demux ICY tags from a stream</span>
@@ -684,10 +729,10 @@ the splitmuxsink element.</span>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-replaygain.html">replaygain</a></span><span class="refpurpose"> — ReplayGain volume normalization</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — Real-time protocol plugins</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — RTP session management plugin library</span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtpmanager.html">rtpmanager</a></span><span class="refpurpose"> — RTP session management plugin library</span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtp.html">rtp</a></span><span class="refpurpose"> — Real-time protocol plugins</span>
 </dt>
 <dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-rtsp.html">rtsp</a></span><span class="refpurpose"> — transfer data via RTSP</span>
diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml
index efc7b5e2999e829f7f4e75798ae4d8202039e862..d03fd51759058068e69a73a42548916130e4a3e9 100644
--- a/docs/plugins/html/index.sgml
+++ b/docs/plugins/html/index.sgml
@@ -80,6 +80,31 @@
 <ANCHOR id="GstAgingTV--dusts" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--dusts">
 <ANCHOR id="GstAgingTV--pits" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--pits">
 <ANCHOR id="GstAgingTV--scratch-lines" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-agingtv.html#GstAgingTV--scratch-lines">
+<ANCHOR id="gst-plugins-good-plugins-alawdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html">
+<ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec">
+<ANCHOR id="gst-plugins-good-plugins-alawdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other">
+<ANCHOR id="gst-plugins-good-plugins-alawdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-alawdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.description">
+<ANCHOR id="gst-plugins-good-plugins-alawdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-alawdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other_details">
+<ANCHOR id="GstALawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec-struct">
+<ANCHOR id="gst-plugins-good-plugins-alawenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html">
+<ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawDec">
+<ANCHOR id="GstALawEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc">
+<ANCHOR id="gst-plugins-good-plugins-alawenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other">
+<ANCHOR id="gst-plugins-good-plugins-alawenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-alawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.description">
+<ANCHOR id="gst-plugins-good-plugins-alawenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-alawenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other_details">
+<ANCHOR id="GstALawEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html">
+<ANCHOR id="GstAlphaColor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.description">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-alphacolor.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other_details">
+<ANCHOR id="GstAlphaColor-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct">
 <ANCHOR id="gst-plugins-good-plugins-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html">
 <ANCHOR id="gst-plugins-good-plugins-alpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#gst-plugins-good-plugins-alpha.properties">
 <ANCHOR id="GstAlpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha">
@@ -105,31 +130,6 @@
 <ANCHOR id="GstAlpha--black-sensitivity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--black-sensitivity">
 <ANCHOR id="GstAlpha--white-sensitivity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--white-sensitivity">
 <ANCHOR id="GstAlpha--prefer-passthrough" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alpha.html#GstAlpha--prefer-passthrough">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html">
-<ANCHOR id="GstAlphaColor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.description">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-alphacolor.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#gst-plugins-good-plugins-alphacolor.other_details">
-<ANCHOR id="GstAlphaColor-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alphacolor.html#GstAlphaColor-struct">
-<ANCHOR id="gst-plugins-good-plugins-alawdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html">
-<ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec">
-<ANCHOR id="gst-plugins-good-plugins-alawdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other">
-<ANCHOR id="gst-plugins-good-plugins-alawdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-alawdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.description">
-<ANCHOR id="gst-plugins-good-plugins-alawdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-alawdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#gst-plugins-good-plugins-alawdec.other_details">
-<ANCHOR id="GstALawDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawdec.html#GstALawDec-struct">
-<ANCHOR id="gst-plugins-good-plugins-alawenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html">
-<ANCHOR id="GstALawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawDec">
-<ANCHOR id="GstALawEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc">
-<ANCHOR id="gst-plugins-good-plugins-alawenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other">
-<ANCHOR id="gst-plugins-good-plugins-alawenc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-alawenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.description">
-<ANCHOR id="gst-plugins-good-plugins-alawenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-alawenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#gst-plugins-good-plugins-alawenc.other_details">
-<ANCHOR id="GstALawEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-alawenc.html#GstALawEnc-struct">
 <ANCHOR id="gst-plugins-good-plugins-amrparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html">
 <ANCHOR id="GstAmrParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#GstAmrParse">
 <ANCHOR id="gst-plugins-good-plugins-amrparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-amrparse.html#gst-plugins-good-plugins-amrparse.other">
@@ -212,6 +212,34 @@
 <ANCHOR id="GstAudioChebLimit--poles" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--poles">
 <ANCHOR id="GstAudioChebLimit--ripple" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--ripple">
 <ANCHOR id="GstAudioChebLimit--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiocheblimit.html#GstAudioChebLimit--type">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.properties">
+<ANCHOR id="GstAudioDynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.description">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other_details">
+<ANCHOR id="GstAudioDynamic-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct">
+<ANCHOR id="gst-plugins-good-plugins-audiodynamic.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.property-details">
+<ANCHOR id="GstAudioDynamic--characteristics" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics">
+<ANCHOR id="GstAudioDynamic--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode">
+<ANCHOR id="GstAudioDynamic--ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio">
+<ANCHOR id="GstAudioDynamic--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold">
+<ANCHOR id="gst-plugins-good-plugins-audioecho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.properties">
+<ANCHOR id="GstAudioEcho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.description">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other_details">
+<ANCHOR id="GstAudioEcho-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct">
+<ANCHOR id="gst-plugins-good-plugins-audioecho.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.property-details">
+<ANCHOR id="GstAudioEcho--delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay">
+<ANCHOR id="GstAudioEcho--feedback" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback">
+<ANCHOR id="GstAudioEcho--intensity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity">
+<ANCHOR id="GstAudioEcho--max-delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay">
 <ANCHOR id="gst-plugins-good-plugins-audiofirfilter" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html">
 <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.properties">
 <ANCHOR id="gst-plugins-good-plugins-audiofirfilter.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiofirfilter.html#gst-plugins-good-plugins-audiofirfilter.signals">
@@ -242,6 +270,43 @@
 <ANCHOR id="GstAudioIIRFilter--b" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter--b">
 <ANCHOR id="gst-plugins-good-plugins-audioiirfilter.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#gst-plugins-good-plugins-audioiirfilter.signal-details">
 <ANCHOR id="GstAudioIIRFilter-rate-changed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioiirfilter.html#GstAudioIIRFilter-rate-changed">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.properties">
+<ANCHOR id="GstAudioInvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.description">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other_details">
+<ANCHOR id="GstAudioInvert-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct">
+<ANCHOR id="gst-plugins-good-plugins-audioinvert.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.property-details">
+<ANCHOR id="GstAudioInvert--degree" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.properties">
+<ANCHOR id="GstAudioKaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.description">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other_details">
+<ANCHOR id="GstAudioKaraoke-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct">
+<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.property-details">
+<ANCHOR id="GstAudioKaraoke--filter-band" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band">
+<ANCHOR id="GstAudioKaraoke--filter-width" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width">
+<ANCHOR id="GstAudioKaraoke--level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level">
+<ANCHOR id="GstAudioKaraoke--mono-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.properties">
+<ANCHOR id="GstAudioPanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.description">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other_details">
+<ANCHOR id="GstAudioPanorama-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct">
+<ANCHOR id="gst-plugins-good-plugins-audiopanorama.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.property-details">
+<ANCHOR id="GstAudioPanorama--panorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama">
+<ANCHOR id="GstAudioPanorama--method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method">
 <ANCHOR id="gst-plugins-good-plugins-audiowsincband" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html">
 <ANCHOR id="gst-plugins-good-plugins-audiowsincband.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#gst-plugins-good-plugins-audiowsincband.properties">
 <ANCHOR id="GstAudioWSincBand" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsincband.html#GstAudioWSincBand">
@@ -272,71 +337,6 @@
 <ANCHOR id="GstAudioWSincLimit--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--mode">
 <ANCHOR id="GstAudioWSincLimit--window" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--window">
 <ANCHOR id="GstAudioWSincLimit--cutoff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiowsinclimit.html#GstAudioWSincLimit--cutoff">
-<ANCHOR id="gst-plugins-good-plugins-audioecho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.properties">
-<ANCHOR id="GstAudioEcho" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.description">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.other_details">
-<ANCHOR id="GstAudioEcho-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho-struct">
-<ANCHOR id="gst-plugins-good-plugins-audioecho.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#gst-plugins-good-plugins-audioecho.property-details">
-<ANCHOR id="GstAudioEcho--delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--delay">
-<ANCHOR id="GstAudioEcho--feedback" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--feedback">
-<ANCHOR id="GstAudioEcho--intensity" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--intensity">
-<ANCHOR id="GstAudioEcho--max-delay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioecho.html#GstAudioEcho--max-delay">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.properties">
-<ANCHOR id="GstAudioDynamic" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.description">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.other_details">
-<ANCHOR id="GstAudioDynamic-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic-struct">
-<ANCHOR id="gst-plugins-good-plugins-audiodynamic.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#gst-plugins-good-plugins-audiodynamic.property-details">
-<ANCHOR id="GstAudioDynamic--characteristics" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--characteristics">
-<ANCHOR id="GstAudioDynamic--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--mode">
-<ANCHOR id="GstAudioDynamic--ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--ratio">
-<ANCHOR id="GstAudioDynamic--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiodynamic.html#GstAudioDynamic--threshold">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.properties">
-<ANCHOR id="GstAudioInvert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.description">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.other_details">
-<ANCHOR id="GstAudioInvert-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert-struct">
-<ANCHOR id="gst-plugins-good-plugins-audioinvert.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#gst-plugins-good-plugins-audioinvert.property-details">
-<ANCHOR id="GstAudioInvert--degree" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audioinvert.html#GstAudioInvert--degree">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.properties">
-<ANCHOR id="GstAudioPanorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.description">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.other_details">
-<ANCHOR id="GstAudioPanorama-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct">
-<ANCHOR id="gst-plugins-good-plugins-audiopanorama.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#gst-plugins-good-plugins-audiopanorama.property-details">
-<ANCHOR id="GstAudioPanorama--panorama" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--panorama">
-<ANCHOR id="GstAudioPanorama--method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.properties">
-<ANCHOR id="GstAudioKaraoke" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.description">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.other_details">
-<ANCHOR id="GstAudioKaraoke-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke-struct">
-<ANCHOR id="gst-plugins-good-plugins-audiokaraoke.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#gst-plugins-good-plugins-audiokaraoke.property-details">
-<ANCHOR id="GstAudioKaraoke--filter-band" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-band">
-<ANCHOR id="GstAudioKaraoke--filter-width" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--filter-width">
-<ANCHOR id="GstAudioKaraoke--level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--level">
-<ANCHOR id="GstAudioKaraoke--mono-level" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-audiokaraoke.html#GstAudioKaraoke--mono-level">
 <ANCHOR id="gst-plugins-good-plugins-auparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html">
 <ANCHOR id="GstAuParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#GstAuParse">
 <ANCHOR id="gst-plugins-good-plugins-auparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-auparse.html#gst-plugins-good-plugins-auparse.other">
@@ -761,6 +761,15 @@
 <ANCHOR id="GstGdkPixbufSink--last-pixbuf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf">
 <ANCHOR id="GstGdkPixbufSink--send-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--send-messages">
 <ANCHOR id="GstGdkPixbufSink--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html">
+<ANCHOR id="GstGoom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom2k1">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.description">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other_details">
+<ANCHOR id="GstGoom2k1-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom2k1-struct">
+<ANCHOR id="gst-plugins-good-plugins-goom2k1.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.see-also">
 <ANCHOR id="gst-plugins-good-plugins-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html">
 <ANCHOR id="GstGoom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#GstGoom">
 <ANCHOR id="gst-plugins-good-plugins-goom.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.other">
@@ -770,15 +779,6 @@
 <ANCHOR id="gst-plugins-good-plugins-goom.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.other_details">
 <ANCHOR id="GstGoom-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#GstGoom-struct">
 <ANCHOR id="gst-plugins-good-plugins-goom.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom.html#gst-plugins-good-plugins-goom.see-also">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html">
-<ANCHOR id="GstGoom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.description">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.other_details">
-<ANCHOR id="GstGoom-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#GstGoom-struct">
-<ANCHOR id="gst-plugins-good-plugins-goom2k1.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-goom2k1.html#gst-plugins-good-plugins-goom2k1.see-also">
 <ANCHOR id="gst-plugins-good-plugins-hdv1394src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html">
 <ANCHOR id="gst-plugins-good-plugins-hdv1394src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#gst-plugins-good-plugins-hdv1394src.properties">
 <ANCHOR id="GstHDV1394Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-hdv1394src.html#GstHDV1394Src">
@@ -868,22 +868,6 @@
 <ANCHOR id="GstISMLMux--reserved-duration-remaining" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-duration-remaining">
 <ANCHOR id="GstISMLMux--reserved-max-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-max-duration">
 <ANCHOR id="GstISMLMux--reserved-moov-update-period" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-ismlmux.html#GstISMLMux--reserved-moov-update-period">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.properties">
-<ANCHOR id="GstJackAudioSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.description">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other_details">
-<ANCHOR id="GstJackAudioSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct">
-<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.property-details">
-<ANCHOR id="GstJackAudioSrc--client" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client">
-<ANCHOR id="GstJackAudioSrc--connect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect">
-<ANCHOR id="GstJackAudioSrc--server" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server">
-<ANCHOR id="GstJackAudioSrc--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name">
-<ANCHOR id="GstJackAudioSrc--transport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport">
-<ANCHOR id="GstJackAudioSrc--port-pattern" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--port-pattern">
 <ANCHOR id="gst-plugins-good-plugins-jackaudiosink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html">
 <ANCHOR id="gst-plugins-good-plugins-jackaudiosink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#gst-plugins-good-plugins-jackaudiosink.properties">
 <ANCHOR id="GstJackAudioSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink">
@@ -900,6 +884,22 @@
 <ANCHOR id="GstJackAudioSink--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--client-name">
 <ANCHOR id="GstJackAudioSink--transport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--transport">
 <ANCHOR id="GstJackAudioSink--port-pattern" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--port-pattern">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.properties">
+<ANCHOR id="GstJackAudioSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.description">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.other_details">
+<ANCHOR id="GstJackAudioSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc-struct">
+<ANCHOR id="gst-plugins-good-plugins-jackaudiosrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#gst-plugins-good-plugins-jackaudiosrc.property-details">
+<ANCHOR id="GstJackAudioSrc--client" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client">
+<ANCHOR id="GstJackAudioSrc--connect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect">
+<ANCHOR id="GstJackAudioSrc--server" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--server">
+<ANCHOR id="GstJackAudioSrc--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--client-name">
+<ANCHOR id="GstJackAudioSrc--transport" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--transport">
+<ANCHOR id="GstJackAudioSrc--port-pattern" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--port-pattern">
 <ANCHOR id="gst-plugins-good-plugins-jpegdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html">
 <ANCHOR id="gst-plugins-good-plugins-jpegdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#gst-plugins-good-plugins-jpegdec.properties">
 <ANCHOR id="GstJpegDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-jpegdec.html#GstJpegDec">
@@ -943,6 +943,17 @@
 <ANCHOR id="GstLevel--peak-falloff" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-falloff">
 <ANCHOR id="GstLevel--peak-ttl" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--peak-ttl">
 <ANCHOR id="GstLevel--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-level.html#GstLevel--post-messages">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.properties">
+<ANCHOR id="GstMatroskaDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.description">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other_details">
+<ANCHOR id="GstMatroskaDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct">
+<ANCHOR id="gst-plugins-good-plugins-matroskademux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.property-details">
+<ANCHOR id="GstMatroskaDemux--max-gap-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time">
 <ANCHOR id="gst-plugins-good-plugins-matroskamux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html">
 <ANCHOR id="gst-plugins-good-plugins-matroskamux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#gst-plugins-good-plugins-matroskamux.properties">
 <ANCHOR id="GstMatroskaMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux">
@@ -958,17 +969,6 @@
 <ANCHOR id="GstMatroskaMux--version" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--version">
 <ANCHOR id="GstMatroskaMux--min-index-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--min-index-interval">
 <ANCHOR id="GstMatroskaMux--streamable" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.properties">
-<ANCHOR id="GstMatroskaDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.description">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.other_details">
-<ANCHOR id="GstMatroskaDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux-struct">
-<ANCHOR id="gst-plugins-good-plugins-matroskademux.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#gst-plugins-good-plugins-matroskademux.property-details">
-<ANCHOR id="GstMatroskaDemux--max-gap-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-matroskademux.html#GstMatroskaDemux--max-gap-time">
 <ANCHOR id="gst-plugins-good-plugins-mj2mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html">
 <ANCHOR id="gst-plugins-good-plugins-mj2mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#gst-plugins-good-plugins-mj2mux.properties">
 <ANCHOR id="GstMJ2Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mj2mux.html#GstMJ2Mux">
@@ -1000,15 +1000,6 @@
 <ANCHOR id="gst-plugins-good-plugins-monoscope.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.other_details">
 <ANCHOR id="GstMonoscope" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#GstMonoscope">
 <ANCHOR id="gst-plugins-good-plugins-monoscope.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-monoscope.html#gst-plugins-good-plugins-monoscope.see-also">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html">
-<ANCHOR id="GstMpegAudioParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.description">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other_details">
-<ANCHOR id="GstMpegAudioParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct">
-<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.see-also">
 <ANCHOR id="gst-plugins-good-plugins-mp4mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html">
 <ANCHOR id="gst-plugins-good-plugins-mp4mux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#gst-plugins-good-plugins-mp4mux.properties">
 <ANCHOR id="GstMP4Mux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux">
@@ -1033,6 +1024,15 @@
 <ANCHOR id="GstMP4Mux--reserved-duration-remaining" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-duration-remaining">
 <ANCHOR id="GstMP4Mux--reserved-max-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-max-duration">
 <ANCHOR id="GstMP4Mux--reserved-moov-update-period" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mp4mux.html#GstMP4Mux--reserved-moov-update-period">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html">
+<ANCHOR id="GstMpegAudioParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.description">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.other_details">
+<ANCHOR id="GstMpegAudioParse-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#GstMpegAudioParse-struct">
+<ANCHOR id="gst-plugins-good-plugins-mpegaudioparse.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mpegaudioparse.html#gst-plugins-good-plugins-mpegaudioparse.see-also">
 <ANCHOR id="gst-plugins-good-plugins-mulawdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html">
 <ANCHOR id="GstMuLawDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#GstMuLawDec">
 <ANCHOR id="gst-plugins-good-plugins-mulawdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-mulawdec.html#gst-plugins-good-plugins-mulawdec.other">
@@ -1328,17 +1328,6 @@
 <ANCHOR id="GstPulseSrc--volume" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--volume">
 <ANCHOR id="GstPulseSrc--client-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--client-name">
 <ANCHOR id="GstPulseSrc--current-device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-pulsesrc.html#GstPulseSrc--current-device">
-<ANCHOR id="gst-plugins-good-plugins-quarktv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.properties">
-<ANCHOR id="GstQuarkTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.description">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other_details">
-<ANCHOR id="GstQuarkTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct">
-<ANCHOR id="gst-plugins-good-plugins-quarktv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.property-details">
-<ANCHOR id="GstQuarkTV--planes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes">
 <ANCHOR id="gst-plugins-good-plugins-qtdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html">
 <ANCHOR id="gst-plugins-good-plugins-qtdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.signals">
 <ANCHOR id="GstQTDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux">
@@ -1350,6 +1339,25 @@
 <ANCHOR id="GstQTDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct">
 <ANCHOR id="gst-plugins-good-plugins-qtdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#gst-plugins-good-plugins-qtdemux.signal-details">
 <ANCHOR id="GstQTDemux-got-redirect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtdemux.html#GstQTDemux-got-redirect">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.properties">
+<ANCHOR id="GstQTMoovRecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.description">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions_details">
+<ANCHOR id="gst-qt-moov-recover-get-type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type">
+<ANCHOR id="gst-qt-moov-recover-register" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other_details">
+<ANCHOR id="GstQTMoovRecover-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct">
+<ANCHOR id="GstQTMoovRecoverClass" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass">
+<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.property-details">
+<ANCHOR id="GstQTMoovRecover--broken-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input">
+<ANCHOR id="GstQTMoovRecover--faststart-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode">
+<ANCHOR id="GstQTMoovRecover--fixed-output" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output">
+<ANCHOR id="GstQTMoovRecover--recovery-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input">
 <ANCHOR id="gst-plugins-good-plugins-qtmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html">
 <ANCHOR id="gst-plugins-good-plugins-qtmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#gst-plugins-good-plugins-qtmux.properties">
 <ANCHOR id="GstQTMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux">
@@ -1374,25 +1382,17 @@
 <ANCHOR id="GstQTMux--reserved-duration-remaining" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-duration-remaining">
 <ANCHOR id="GstQTMux--reserved-max-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-max-duration">
 <ANCHOR id="GstQTMux--reserved-moov-update-period" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmux.html#GstQTMux--reserved-moov-update-period">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.properties">
-<ANCHOR id="GstQTMoovRecover" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.implemented-interfaces">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.description">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.functions_details">
-<ANCHOR id="gst-qt-moov-recover-get-type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type">
-<ANCHOR id="gst-qt-moov-recover-register" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.other_details">
-<ANCHOR id="GstQTMoovRecover-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct">
-<ANCHOR id="GstQTMoovRecoverClass" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass">
-<ANCHOR id="gst-plugins-good-plugins-qtmoovrecover.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#gst-plugins-good-plugins-qtmoovrecover.property-details">
-<ANCHOR id="GstQTMoovRecover--broken-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--broken-input">
-<ANCHOR id="GstQTMoovRecover--faststart-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--faststart-mode">
-<ANCHOR id="GstQTMoovRecover--fixed-output" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--fixed-output">
-<ANCHOR id="GstQTMoovRecover--recovery-input" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover--recovery-input">
+<ANCHOR id="gst-plugins-good-plugins-quarktv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.properties">
+<ANCHOR id="GstQuarkTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.description">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.other_details">
+<ANCHOR id="GstQuarkTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV-struct">
+<ANCHOR id="gst-plugins-good-plugins-quarktv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#gst-plugins-good-plugins-quarktv.property-details">
+<ANCHOR id="GstQuarkTV--planes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-quarktv.html#GstQuarkTV--planes">
 <ANCHOR id="gst-plugins-good-plugins-radioactv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html">
 <ANCHOR id="gst-plugins-good-plugins-radioactv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#gst-plugins-good-plugins-radioactv.properties">
 <ANCHOR id="GstRadioacTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-radioactv.html#GstRadioacTV">
@@ -1477,28 +1477,6 @@
 <ANCHOR id="gst-plugins-good-plugins-rippletv.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#gst-plugins-good-plugins-rippletv.property-details">
 <ANCHOR id="GstRippleTV--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV--mode">
 <ANCHOR id="GstRippleTV--reset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rippletv.html#GstRippleTV--reset">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.properties">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.signals">
-<ANCHOR id="GstRTPDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.description">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other_details">
-<ANCHOR id="GstRTPDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.property-details">
-<ANCHOR id="GstRTPDec--skip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip">
-<ANCHOR id="GstRTPDec--latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency">
-<ANCHOR id="gst-plugins-good-plugins-rtpdec.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.signal-details">
-<ANCHOR id="GstRTPDec-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map">
-<ANCHOR id="GstRTPDec-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map">
-<ANCHOR id="GstRTPDec-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc">
-<ANCHOR id="GstRTPDec-on-bye-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout">
-<ANCHOR id="GstRTPDec-on-new-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc">
-<ANCHOR id="GstRTPDec-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision">
-<ANCHOR id="GstRTPDec-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated">
-<ANCHOR id="GstRTPDec-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout">
 <ANCHOR id="gst-plugins-good-plugins-rtpac3depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html">
 <ANCHOR id="GstRtpAC3Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#GstRtpAC3Depay">
 <ANCHOR id="gst-plugins-good-plugins-rtpac3depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpac3depay.html#gst-plugins-good-plugins-rtpac3depay.other">
@@ -1535,6 +1513,67 @@
 <ANCHOR id="gst-plugins-good-plugins-rtpamrpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.other_details">
 <ANCHOR id="GstRtpAMRPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#GstRtpAMRPay-struct">
 <ANCHOR id="gst-plugins-good-plugins-rtpamrpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpamrpay.html#gst-plugins-good-plugins-rtpamrpay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.signals">
+<ANCHOR id="GstRtpBin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.other_details">
+<ANCHOR id="GstRtpBin-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct">
+<ANCHOR id="RTPJitterBufferMode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode">
+<ANCHOR id="RTP-JITTER-BUFFER-MODE-NONE:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-NONE:CAPS">
+<ANCHOR id="RTP-JITTER-BUFFER-MODE-SLAVE:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-SLAVE:CAPS">
+<ANCHOR id="RTP-JITTER-BUFFER-MODE-BUFFER:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-BUFFER:CAPS">
+<ANCHOR id="RTP-JITTER-BUFFER-MODE-SYNCED:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-SYNCED:CAPS">
+<ANCHOR id="RTP-JITTER-BUFFER-MODE-LAST:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-LAST:CAPS">
+<ANCHOR id="GstRTCPSync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRTCPSync">
+<ANCHOR id="GST-RTP-BIN-RTCP-SYNC-ALWAYS:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-ALWAYS:CAPS">
+<ANCHOR id="GST-RTP-BIN-RTCP-SYNC-INITIAL:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-INITIAL:CAPS">
+<ANCHOR id="GST-RTP-BIN-RTCP-SYNC-RTP:CAPS" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GST-RTP-BIN-RTCP-SYNC-RTP:CAPS">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.property-details">
+<ANCHOR id="GstRtpBin--do-lost" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-lost">
+<ANCHOR id="GstRtpBin--latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--latency">
+<ANCHOR id="GstRtpBin--sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--sdes">
+<ANCHOR id="GstRtpBin--ignore-pt" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ignore-pt">
+<ANCHOR id="GstRtpBin--autoremove" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--autoremove">
+<ANCHOR id="GstRtpBin--buffer-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode">
+<ANCHOR id="GstRtpBin--ntp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-sync">
+<ANCHOR id="GstRtpBin--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--use-pipeline-clock">
+<ANCHOR id="GstRtpBin--rtcp-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync">
+<ANCHOR id="GstRtpBin--rtcp-sync-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-interval">
+<ANCHOR id="GstRtpBin--drop-on-latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--drop-on-latency">
+<ANCHOR id="GstRtpBin--do-sync-event" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-sync-event">
+<ANCHOR id="GstRtpBin--do-retransmission" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--do-retransmission">
+<ANCHOR id="GstRtpBin--rtp-profile" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtp-profile">
+<ANCHOR id="GstRtpBin--ntp-time-source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin--ntp-time-source">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.signal-details">
+<ANCHOR id="GstRtpBin-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-clear-pt-map">
+<ANCHOR id="GstRtpBin-get-internal-session" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-internal-session">
+<ANCHOR id="GstRtpBin-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-ssrc">
+<ANCHOR id="GstRtpBin-on-bye-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-bye-timeout">
+<ANCHOR id="GstRtpBin-on-new-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-ssrc">
+<ANCHOR id="GstRtpBin-on-npt-stop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-npt-stop">
+<ANCHOR id="GstRtpBin-on-sender-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-timeout">
+<ANCHOR id="GstRtpBin-on-ssrc-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-active">
+<ANCHOR id="GstRtpBin-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-collision">
+<ANCHOR id="GstRtpBin-on-ssrc-sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-sdes">
+<ANCHOR id="GstRtpBin-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-ssrc-validated">
+<ANCHOR id="GstRtpBin-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-timeout">
+<ANCHOR id="GstRtpBin-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-pt-map">
+<ANCHOR id="GstRtpBin-reset-sync" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-reset-sync">
+<ANCHOR id="GstRtpBin-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-payload-type-change">
+<ANCHOR id="GstRtpBin-new-jitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-new-jitterbuffer">
+<ANCHOR id="GstRtpBin-request-aux-receiver" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-receiver">
+<ANCHOR id="GstRtpBin-request-aux-sender" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-aux-sender">
+<ANCHOR id="GstRtpBin-request-rtcp-decoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-decoder">
+<ANCHOR id="GstRtpBin-request-rtcp-encoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtcp-encoder">
+<ANCHOR id="GstRtpBin-request-rtp-decoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder">
+<ANCHOR id="GstRtpBin-request-rtp-encoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder">
+<ANCHOR id="gst-plugins-good-plugins-rtpbin.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.description">
 <ANCHOR id="gst-plugins-good-plugins-rtpbvdepay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvdepay.html#gst-plugins-good-plugins-rtpbvdepay.functions_details">
@@ -1545,6 +1584,24 @@
 <ANCHOR id="gst-plugins-good-plugins-rtpbvpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.functions_details">
 <ANCHOR id="gst-plugins-good-plugins-rtpbvpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.other_details">
 <ANCHOR id="gst-plugins-good-plugins-rtpbvpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbvpay.html#gst-plugins-good-plugins-rtpbvpay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html">
+<ANCHOR id="GstRtpH261Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#GstRtpH261Depay">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.other_details">
+<ANCHOR id="GstRtpH261Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#GstRtpH261Depay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtph261depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261depay.html#gst-plugins-good-plugins-rtph261depay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html">
+<ANCHOR id="GstRtpH261Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#GstRtpH261Pay">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.other_details">
+<ANCHOR id="GstRtpH261Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#GstRtpH261Pay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtph261pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtph261pay.html#gst-plugins-good-plugins-rtph261pay.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpL16depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html">
 <ANCHOR id="GstRtpL16Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay">
 <ANCHOR id="gst-plugins-good-plugins-rtpL16depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.other">
@@ -1642,6 +1699,8 @@
 <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="GstRTSPSrc--do-retransmission" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-retransmission">
 <ANCHOR id="GstRTSPSrc--tls-interaction" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-interaction">
+<ANCHOR id="GstRTSPSrc--ntp-time-source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-time-source">
+<ANCHOR id="GstRTSPSrc--user-agent" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent">
 <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">
@@ -1709,6 +1768,41 @@
 <ANCHOR id="GstRtpBin-request-rtp-decoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-decoder">
 <ANCHOR id="GstRtpBin-request-rtp-encoder" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#GstRtpBin-request-rtp-encoder">
 <ANCHOR id="gst-plugins-good-plugins-rtpbin.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpbin.html#gst-plugins-good-plugins-rtpbin.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.signals">
+<ANCHOR id="GstRTPDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.other_details">
+<ANCHOR id="GstRTPDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.property-details">
+<ANCHOR id="GstRTPDec--skip" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec--skip">
+<ANCHOR id="GstRTPDec--latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec--latency">
+<ANCHOR id="gst-plugins-good-plugins-rtpdec.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#gst-plugins-good-plugins-rtpdec.signal-details">
+<ANCHOR id="GstRTPDec-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-clear-pt-map">
+<ANCHOR id="GstRTPDec-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-request-pt-map">
+<ANCHOR id="GstRTPDec-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-ssrc">
+<ANCHOR id="GstRTPDec-on-bye-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-bye-timeout">
+<ANCHOR id="GstRTPDec-on-new-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-new-ssrc">
+<ANCHOR id="GstRTPDec-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-collision">
+<ANCHOR id="GstRTPDec-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-ssrc-validated">
+<ANCHOR id="GstRTPDec-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdec.html#GstRTPDec-on-timeout">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.properties">
+<ANCHOR id="GstRtpDTMFDepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.other_details">
+<ANCHOR id="GstRtpDTMFDepay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.property-details">
+<ANCHOR id="GstRtpDTMFDepay--max-duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--max-duration">
+<ANCHOR id="GstRtpDTMFDepay--unit-time" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#GstRtpDTMFDepay--unit-time">
+<ANCHOR id="gst-plugins-good-plugins-rtpdtmfdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfdepay.html#gst-plugins-good-plugins-rtpdtmfdepay.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html">
 <ANCHOR id="GstRTPDTMFMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#GstRTPDTMFMux">
 <ANCHOR id="gst-plugins-good-plugins-rtpdtmfmux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfmux.html#gst-plugins-good-plugins-rtpdtmfmux.other">
@@ -1737,6 +1831,17 @@
 <ANCHOR id="GstRTPDTMFSrc--timestamp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp">
 <ANCHOR id="GstRTPDTMFSrc--timestamp-offset" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#GstRTPDTMFSrc--timestamp-offset">
 <ANCHOR id="gst-plugins-good-plugins-rtpdtmfsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpdtmfsrc.html#gst-plugins-good-plugins-rtpdtmfsrc.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.properties">
+<ANCHOR id="GstRtpJ2KPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.other_details">
+<ANCHOR id="GstRtpJ2KPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpj2kpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#gst-plugins-good-plugins-rtpj2kpay.property-details">
+<ANCHOR id="GstRtpJ2KPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay--buffer-list">
 <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.properties">
 <ANCHOR id="gst-plugins-good-plugins-rtpjitterbuffer.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#gst-plugins-good-plugins-rtpjitterbuffer.signals">
@@ -1770,6 +1875,55 @@
 <ANCHOR id="GstRtpJitterBuffer-on-npt-stop" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-on-npt-stop">
 <ANCHOR id="GstRtpJitterBuffer-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-request-pt-map">
 <ANCHOR id="GstRtpJitterBuffer-set-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-set-active">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.properties">
+<ANCHOR id="GstRtpJPEGPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.other_details">
+<ANCHOR id="GstRtpJPEGPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpjpegpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#gst-plugins-good-plugins-rtpjpegpay.property-details">
+<ANCHOR id="GstRtpJPEGPay--quality" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--quality">
+<ANCHOR id="GstRtpJPEGPay--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--type">
+<ANCHOR id="GstRtpJPEGPay--buffer-list" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpjpegpay.html#GstRtpJPEGPay--buffer-list">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html">
+<ANCHOR id="GstRtpKlvDepay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#GstRtpKlvDepay">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.other_details">
+<ANCHOR id="GstRtpKlvDepay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#GstRtpKlvDepay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvdepay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvdepay.html#gst-plugins-good-plugins-rtpklvdepay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html">
+<ANCHOR id="GstRtpKlvPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#GstRtpKlvPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.other_details">
+<ANCHOR id="GstRtpKlvPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#GstRtpKlvPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpklvpay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpklvpay.html#gst-plugins-good-plugins-rtpklvpay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html">
+<ANCHOR id="GstRtpL16Depay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.other_details">
+<ANCHOR id="GstRtpL16Depay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#GstRtpL16Depay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16depay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16depay.html#gst-plugins-good-plugins-rtpL16depay.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html">
+<ANCHOR id="GstRtpL16Pay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.other_details">
+<ANCHOR id="GstRtpL16Pay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#GstRtpL16Pay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpL16pay.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpL16pay.html#gst-plugins-good-plugins-rtpL16pay.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtpmux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html">
 <ANCHOR id="gst-plugins-good-plugins-rtpmux.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#gst-plugins-good-plugins-rtpmux.properties">
 <ANCHOR id="GstRTPMux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpmux.html#GstRTPMux">
@@ -1799,58 +1953,22 @@
 <ANCHOR id="GstRtpPtDemux-new-payload-type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-new-payload-type">
 <ANCHOR id="GstRtpPtDemux-payload-type-change" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-payload-type-change">
 <ANCHOR id="GstRtpPtDemux-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-request-pt-map">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.properties">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signals">
-<ANCHOR id="GstRtpSession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.description">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other_details">
-<ANCHOR id="GstRtpSession-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.property-details">
-<ANCHOR id="GstRtpSession--bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth">
-<ANCHOR id="GstRtpSession--internal-session" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session">
-<ANCHOR id="GstRtpSession--ntp-ns-base" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base">
-<ANCHOR id="GstRtpSession--num-active-sources" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources">
-<ANCHOR id="GstRtpSession--num-sources" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources">
-<ANCHOR id="GstRtpSession--rtcp-fraction" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction">
-<ANCHOR id="GstRtpSession--sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes">
-<ANCHOR id="GstRtpSession--rtcp-rr-bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth">
-<ANCHOR id="GstRtpSession--rtcp-rs-bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth">
-<ANCHOR id="GstRtpSession--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock">
-<ANCHOR id="GstRtpSession--rtcp-min-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval">
-<ANCHOR id="GstRtpSession--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation">
-<ANCHOR id="GstRtpSession--stats" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats">
-<ANCHOR id="GstRtpSession--rtp-profile" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtp-profile">
-<ANCHOR id="GstRtpSession--ntp-time-source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-time-source">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signal-details">
-<ANCHOR id="GstRtpSession-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map">
-<ANCHOR id="GstRtpSession-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc">
-<ANCHOR id="GstRtpSession-on-bye-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout">
-<ANCHOR id="GstRtpSession-on-new-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc">
-<ANCHOR id="GstRtpSession-on-sender-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout">
-<ANCHOR id="GstRtpSession-on-ssrc-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active">
-<ANCHOR id="GstRtpSession-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision">
-<ANCHOR id="GstRtpSession-on-ssrc-sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes">
-<ANCHOR id="GstRtpSession-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated">
-<ANCHOR id="GstRtpSession-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout">
-<ANCHOR id="GstRtpSession-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map">
-<ANCHOR id="gst-plugins-good-plugins-rtpsession.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.see-also">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signals">
-<ANCHOR id="GstRtpSsrcDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.description">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other_details">
-<ANCHOR id="GstRtpSsrcDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct">
-<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signal-details">
-<ANCHOR id="GstRtpSsrcDemux-clear-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc">
-<ANCHOR id="GstRtpSsrcDemux-new-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad">
-<ANCHOR id="GstRtpSsrcDemux-removed-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.properties">
+<ANCHOR id="GstRtpRtxReceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.description">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other_details">
+<ANCHOR id="GstRtpRtxReceive-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.property-details">
+<ANCHOR id="GstRtpRtxReceive--rtx-payload-types" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types">
+<ANCHOR id="GstRtpRtxReceive--num-rtx-requests" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests">
+<ANCHOR id="GstRtpRtxReceive--num-rtx-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets">
+<ANCHOR id="GstRtpRtxReceive--num-rtx-assoc-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets">
+<ANCHOR id="GstRtpRtxReceive--payload-type-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map">
+<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.see-also">
 <ANCHOR id="gst-plugins-good-plugins-rtprtxsend" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html">
 <ANCHOR id="gst-plugins-good-plugins-rtprtxsend.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#gst-plugins-good-plugins-rtprtxsend.properties">
 <ANCHOR id="GstRtpRtxSend" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend">
@@ -1868,22 +1986,121 @@
 <ANCHOR id="GstRtpRtxSend--num-rtx-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--num-rtx-packets">
 <ANCHOR id="GstRtpRtxSend--payload-type-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--payload-type-map">
 <ANCHOR id="GstRtpRtxSend--ssrc-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxsend.html#GstRtpRtxSend--ssrc-map">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.properties">
-<ANCHOR id="GstRtpRtxReceive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.description">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.other_details">
-<ANCHOR id="GstRtpRtxReceive-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.property-details">
-<ANCHOR id="GstRtpRtxReceive--rtx-payload-types" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--rtx-payload-types">
-<ANCHOR id="GstRtpRtxReceive--num-rtx-requests" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-requests">
-<ANCHOR id="GstRtpRtxReceive--num-rtx-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-packets">
-<ANCHOR id="GstRtpRtxReceive--num-rtx-assoc-packets" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--num-rtx-assoc-packets">
-<ANCHOR id="GstRtpRtxReceive--payload-type-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive--payload-type-map">
-<ANCHOR id="gst-plugins-good-plugins-rtprtxreceive.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtprtxreceive.html#gst-plugins-good-plugins-rtprtxreceive.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.properties">
+<ANCHOR id="GstRtpSBCPay" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.other_details">
+<ANCHOR id="GstRtpSBCPay-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpsbcpay.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#gst-plugins-good-plugins-rtpsbcpay.property-details">
+<ANCHOR id="GstRtpSBCPay--min-frames" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsbcpay.html#GstRtpSBCPay--min-frames">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signals">
+<ANCHOR id="GstRtpSession" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.other_details">
+<ANCHOR id="GstRtpSession-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.property-details">
+<ANCHOR id="GstRtpSession--bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--bandwidth">
+<ANCHOR id="GstRtpSession--internal-session" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--internal-session">
+<ANCHOR id="GstRtpSession--ntp-ns-base" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-ns-base">
+<ANCHOR id="GstRtpSession--num-active-sources" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-active-sources">
+<ANCHOR id="GstRtpSession--num-sources" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--num-sources">
+<ANCHOR id="GstRtpSession--rtcp-fraction" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-fraction">
+<ANCHOR id="GstRtpSession--sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--sdes">
+<ANCHOR id="GstRtpSession--rtcp-rr-bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rr-bandwidth">
+<ANCHOR id="GstRtpSession--rtcp-rs-bandwidth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-rs-bandwidth">
+<ANCHOR id="GstRtpSession--use-pipeline-clock" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--use-pipeline-clock">
+<ANCHOR id="GstRtpSession--rtcp-min-interval" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtcp-min-interval">
+<ANCHOR id="GstRtpSession--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--probation">
+<ANCHOR id="GstRtpSession--stats" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--stats">
+<ANCHOR id="GstRtpSession--rtp-profile" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--rtp-profile">
+<ANCHOR id="GstRtpSession--ntp-time-source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession--ntp-time-source">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.signal-details">
+<ANCHOR id="GstRtpSession-clear-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-clear-pt-map">
+<ANCHOR id="GstRtpSession-on-bye-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-ssrc">
+<ANCHOR id="GstRtpSession-on-bye-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-bye-timeout">
+<ANCHOR id="GstRtpSession-on-new-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-ssrc">
+<ANCHOR id="GstRtpSession-on-sender-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-timeout">
+<ANCHOR id="GstRtpSession-on-ssrc-active" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-active">
+<ANCHOR id="GstRtpSession-on-ssrc-collision" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-collision">
+<ANCHOR id="GstRtpSession-on-ssrc-sdes" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-sdes">
+<ANCHOR id="GstRtpSession-on-ssrc-validated" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-ssrc-validated">
+<ANCHOR id="GstRtpSession-on-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-timeout">
+<ANCHOR id="GstRtpSession-request-pt-map" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map">
+<ANCHOR id="gst-plugins-good-plugins-rtpsession.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpsession.html#gst-plugins-good-plugins-rtpsession.see-also">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signals">
+<ANCHOR id="GstRtpSsrcDemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.description">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.other_details">
+<ANCHOR id="GstRtpSsrcDemux-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtpssrcdemux.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#gst-plugins-good-plugins-rtpssrcdemux.signal-details">
+<ANCHOR id="GstRtpSsrcDemux-clear-ssrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-clear-ssrc">
+<ANCHOR id="GstRtpSsrcDemux-new-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-new-ssrc-pad">
+<ANCHOR id="GstRtpSsrcDemux-removed-ssrc-pad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-removed-ssrc-pad">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.properties">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.signals">
+<ANCHOR id="GstRTSPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.other">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.description">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.other_details">
+<ANCHOR id="GstRTSPSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-struct">
+<ANCHOR id="gst-plugins-good-plugins-rtspsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#gst-plugins-good-plugins-rtspsrc.property-details">
+<ANCHOR id="GstRTSPSrc--debug" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--debug">
+<ANCHOR id="GstRTSPSrc--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--location">
+<ANCHOR id="GstRTSPSrc--protocols" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--protocols">
+<ANCHOR id="GstRTSPSrc--retry" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--retry">
+<ANCHOR id="GstRTSPSrc--timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--timeout">
+<ANCHOR id="GstRTSPSrc--latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--latency">
+<ANCHOR id="GstRTSPSrc--tcp-timeout" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tcp-timeout">
+<ANCHOR id="GstRTSPSrc--connection-speed" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--connection-speed">
+<ANCHOR id="GstRTSPSrc--nat-method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--nat-method">
+<ANCHOR id="GstRTSPSrc--do-rtcp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtcp">
+<ANCHOR id="GstRTSPSrc--proxy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy">
+<ANCHOR id="GstRTSPSrc--rtp-blocksize" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rtp-blocksize">
+<ANCHOR id="GstRTSPSrc--user-id" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-id">
+<ANCHOR id="GstRTSPSrc--user-pw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-pw">
+<ANCHOR id="GstRTSPSrc--buffer-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--buffer-mode">
+<ANCHOR id="GstRTSPSrc--port-range" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--port-range">
+<ANCHOR id="GstRTSPSrc--udp-buffer-size" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-buffer-size">
+<ANCHOR id="GstRTSPSrc--short-header" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--short-header">
+<ANCHOR id="GstRTSPSrc--do-rtsp-keep-alive" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-rtsp-keep-alive">
+<ANCHOR id="GstRTSPSrc--drop-on-latency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--drop-on-latency">
+<ANCHOR id="GstRTSPSrc--probation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--probation">
+<ANCHOR id="GstRTSPSrc--udp-reconnect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--udp-reconnect">
+<ANCHOR id="GstRTSPSrc--proxy-id" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-id">
+<ANCHOR id="GstRTSPSrc--proxy-pw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--proxy-pw">
+<ANCHOR id="GstRTSPSrc--multicast-iface" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--multicast-iface">
+<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-database" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-database">
+<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="GstRTSPSrc--do-retransmission" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--do-retransmission">
+<ANCHOR id="GstRTSPSrc--tls-interaction" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--tls-interaction">
+<ANCHOR id="GstRTSPSrc--ntp-time-source" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--ntp-time-source">
+<ANCHOR id="GstRTSPSrc--user-agent" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--user-agent">
+<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">
+<ANCHOR id="GstRTSPSrc-select-stream" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-select-stream">
+<ANCHOR id="GstRTSPSrc-new-manager" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-new-manager">
+<ANCHOR id="GstRTSPSrc-request-rtcp-key" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc-request-rtcp-key">
 <ANCHOR id="gst-plugins-good-plugins-sbcparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html">
 <ANCHOR id="GstSbcParse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#GstSbcParse">
 <ANCHOR id="gst-plugins-good-plugins-sbcparse.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-sbcparse.html#gst-plugins-good-plugins-sbcparse.other">
@@ -1953,6 +2170,39 @@
 <ANCHOR id="GstShout2send--public" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send--public">
 <ANCHOR id="gst-plugins-good-plugins-shout2send.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#gst-plugins-good-plugins-shout2send.signal-details">
 <ANCHOR id="GstShout2send-connection-problem" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-shout2send.html#GstShout2send-connection-problem">
+<ANCHOR id="gst-plugins-good-plugins-smokedec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html">
+<ANCHOR id="gst-plugins-good-plugins-smokedec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html#gst-plugins-good-plugins-smokedec.other">
+<ANCHOR id="gst-plugins-good-plugins-smokedec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html#gst-plugins-good-plugins-smokedec.description">
+<ANCHOR id="gst-plugins-good-plugins-smokedec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html#gst-plugins-good-plugins-smokedec.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-smokedec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html#gst-plugins-good-plugins-smokedec.other_details">
+<ANCHOR id="GstSmokeDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokedec.html#GstSmokeDec">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.properties">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.other">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.description">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.other_details">
+<ANCHOR id="GstSmokeEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc">
+<ANCHOR id="gst-plugins-good-plugins-smokeenc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#gst-plugins-good-plugins-smokeenc.property-details">
+<ANCHOR id="GstSmokeEnc--keyframe" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--keyframe">
+<ANCHOR id="GstSmokeEnc--qmax" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmax">
+<ANCHOR id="GstSmokeEnc--qmin" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--qmin">
+<ANCHOR id="GstSmokeEnc--threshold" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smokeenc.html#GstSmokeEnc--threshold">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.properties">
+<ANCHOR id="GstSMPTEAlpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.description">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other_details">
+<ANCHOR id="GstSMPTEAlpha-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct">
+<ANCHOR id="gst-plugins-good-plugins-smptealpha.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.property-details">
+<ANCHOR id="GstSMPTEAlpha--border" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border">
+<ANCHOR id="GstSMPTEAlpha--depth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth">
+<ANCHOR id="GstSMPTEAlpha--position" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position">
+<ANCHOR id="GstSMPTEAlpha--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type">
+<ANCHOR id="GstSMPTEAlpha--invert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert">
 <ANCHOR id="gst-plugins-good-plugins-smpte" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html">
 <ANCHOR id="gst-plugins-good-plugins-smpte.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#gst-plugins-good-plugins-smpte.properties">
 <ANCHOR id="GstSMPTE" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE">
@@ -1969,21 +2219,6 @@
 <ANCHOR id="GstSMPTE--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--type">
 <ANCHOR id="GstSMPTE--duration" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--duration">
 <ANCHOR id="GstSMPTE--invert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smpte.html#GstSMPTE--invert">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.properties">
-<ANCHOR id="GstSMPTEAlpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.description">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.other_details">
-<ANCHOR id="GstSMPTEAlpha-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha-struct">
-<ANCHOR id="gst-plugins-good-plugins-smptealpha.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#gst-plugins-good-plugins-smptealpha.property-details">
-<ANCHOR id="GstSMPTEAlpha--border" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--border">
-<ANCHOR id="GstSMPTEAlpha--depth" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--depth">
-<ANCHOR id="GstSMPTEAlpha--position" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--position">
-<ANCHOR id="GstSMPTEAlpha--type" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--type">
-<ANCHOR id="GstSMPTEAlpha--invert" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-smptealpha.html#GstSMPTEAlpha--invert">
 <ANCHOR id="gst-plugins-good-plugins-souphttpsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html">
 <ANCHOR id="gst-plugins-good-plugins-souphttpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#gst-plugins-good-plugins-souphttpsrc.properties">
 <ANCHOR id="GstSoupHTTPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc">
@@ -2020,6 +2255,7 @@
 <ANCHOR id="GstSoupHTTPSrc--ssl-strict" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-strict">
 <ANCHOR id="GstSoupHTTPSrc--ssl-use-system-ca-file" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--ssl-use-system-ca-file">
 <ANCHOR id="GstSoupHTTPSrc--tls-database" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--tls-database">
+<ANCHOR id="GstSoupHTTPSrc--method" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--method">
 <ANCHOR id="gst-plugins-good-plugins-spectrum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html">
 <ANCHOR id="gst-plugins-good-plugins-spectrum.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#gst-plugins-good-plugins-spectrum.properties">
 <ANCHOR id="GstSpectrum" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum">
@@ -2038,6 +2274,17 @@
 <ANCHOR id="GstSpectrum--message-phase" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--message-phase">
 <ANCHOR id="GstSpectrum--post-messages" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--post-messages">
 <ANCHOR id="GstSpectrum--multi-channel" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-spectrum.html#GstSpectrum--multi-channel">
+<ANCHOR id="gst-plugins-good-plugins-speexdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.properties">
+<ANCHOR id="GstSpeexDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.description">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other_details">
+<ANCHOR id="GstSpeexDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct">
+<ANCHOR id="gst-plugins-good-plugins-speexdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.property-details">
+<ANCHOR id="GstSpeexDec--enh" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh">
 <ANCHOR id="gst-plugins-good-plugins-speexenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html">
 <ANCHOR id="gst-plugins-good-plugins-speexenc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#gst-plugins-good-plugins-speexenc.properties">
 <ANCHOR id="GstSpeexEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc">
@@ -2059,17 +2306,6 @@
 <ANCHOR id="GstSpeexEnc--vad" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vad">
 <ANCHOR id="GstSpeexEnc--vbr" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--vbr">
 <ANCHOR id="GstSpeexEnc--mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexenc.html#GstSpeexEnc--mode">
-<ANCHOR id="gst-plugins-good-plugins-speexdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.properties">
-<ANCHOR id="GstSpeexDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.description">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.other_details">
-<ANCHOR id="GstSpeexDec-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec-struct">
-<ANCHOR id="gst-plugins-good-plugins-speexdec.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#gst-plugins-good-plugins-speexdec.property-details">
-<ANCHOR id="GstSpeexDec--enh" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-speexdec.html#GstSpeexDec--enh">
 <ANCHOR id="gst-plugins-good-plugins-splitfilesrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html">
 <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.properties">
 <ANCHOR id="GstSplitFileSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc">
@@ -2083,20 +2319,9 @@
 <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.property-details">
 <ANCHOR id="GstSplitFileSrc--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#GstSplitFileSrc--location">
 <ANCHOR id="gst-plugins-good-plugins-splitfilesrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitfilesrc.html#gst-plugins-good-plugins-splitfilesrc.see-also">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.properties">
-<ANCHOR id="GstSplitMuxSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.other">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.implemented-interfaces">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.description">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.other_details">
-<ANCHOR id="GstSplitMuxSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-struct">
-<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.property-details">
-<ANCHOR id="GstSplitMuxSrc--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc--location">
 <ANCHOR id="gst-plugins-good-plugins-splitmuxsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html">
 <ANCHOR id="gst-plugins-good-plugins-splitmuxsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#gst-plugins-good-plugins-splitmuxsink.properties">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsink.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#gst-plugins-good-plugins-splitmuxsink.signals">
 <ANCHOR id="GstSplitMuxSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink">
 <ANCHOR id="gst-plugins-good-plugins-splitmuxsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#gst-plugins-good-plugins-splitmuxsink.other">
 <ANCHOR id="gst-plugins-good-plugins-splitmuxsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#gst-plugins-good-plugins-splitmuxsink.object-hierarchy">
@@ -2112,6 +2337,20 @@
 <ANCHOR id="GstSplitMuxSink--mux-overhead" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--mux-overhead">
 <ANCHOR id="GstSplitMuxSink--muxer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--muxer">
 <ANCHOR id="GstSplitMuxSink--sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--sink">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsink.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#gst-plugins-good-plugins-splitmuxsink.signal-details">
+<ANCHOR id="GstSplitMuxSink-format-location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink-format-location">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.properties">
+<ANCHOR id="GstSplitMuxSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.other">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.description">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.other_details">
+<ANCHOR id="GstSplitMuxSrc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-struct">
+<ANCHOR id="gst-plugins-good-plugins-splitmuxsrc.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#gst-plugins-good-plugins-splitmuxsrc.property-details">
+<ANCHOR id="GstSplitMuxSrc--location" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc--location">
 <ANCHOR id="gst-plugins-good-plugins-streaktv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html">
 <ANCHOR id="gst-plugins-good-plugins-streaktv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#gst-plugins-good-plugins-streaktv.properties">
 <ANCHOR id="GstStreakTV" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-streaktv.html#GstStreakTV">
@@ -2134,6 +2373,20 @@
 <ANCHOR id="GstTagInject-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#GstTagInject-struct">
 <ANCHOR id="gst-plugins-good-plugins-taginject.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#gst-plugins-good-plugins-taginject.property-details">
 <ANCHOR id="GstTagInject--tags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-taginject.html#GstTagInject--tags">
+<ANCHOR id="gst-plugins-good-plugins-udpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.properties">
+<ANCHOR id="GstUDPSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.description">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other_details">
+<ANCHOR id="GstUDPSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.property-details">
+<ANCHOR id="GstUDPSink--host" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--host">
+<ANCHOR id="GstUDPSink--port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--port">
+<ANCHOR id="gst-plugins-good-plugins-udpsink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.see-also">
 <ANCHOR id="gst-plugins-good-plugins-udpsrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html">
 <ANCHOR id="gst-plugins-good-plugins-udpsrc.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.properties">
 <ANCHOR id="GstUDPSrc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc">
@@ -2164,50 +2417,19 @@
 <ANCHOR id="GstUDPSrc--bind-address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--bind-address">
 <ANCHOR id="GstUDPSrc--address" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address">
 <ANCHOR id="gst-plugins-good-plugins-udpsrc.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsrc.html#gst-plugins-good-plugins-udpsrc.see-also">
-<ANCHOR id="gst-plugins-good-plugins-udpsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.properties">
-<ANCHOR id="GstUDPSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.implemented-interfaces">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.description">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.other_details">
-<ANCHOR id="GstUDPSink-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink-struct">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.property-details">
-<ANCHOR id="GstUDPSink--host" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--host">
-<ANCHOR id="GstUDPSink--port" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#GstUDPSink--port">
-<ANCHOR id="gst-plugins-good-plugins-udpsink.see-also" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-udpsink.html#gst-plugins-good-plugins-udpsink.see-also">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.properties">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signals">
-<ANCHOR id="GstV4l2Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.implemented-interfaces">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.description">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other_details">
-<ANCHOR id="GstV4l2Src-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.property-details">
-<ANCHOR id="GstV4l2Src--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device">
-<ANCHOR id="GstV4l2Src--device-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name">
-<ANCHOR id="GstV4l2Src--flags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags">
-<ANCHOR id="GstV4l2Src--queue-size" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size">
-<ANCHOR id="GstV4l2Src--always-copy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy">
-<ANCHOR id="GstV4l2Src--device-fd" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd">
-<ANCHOR id="GstV4l2Src--brightness" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness">
-<ANCHOR id="GstV4l2Src--contrast" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast">
-<ANCHOR id="GstV4l2Src--decimate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate">
-<ANCHOR id="GstV4l2Src--hue" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue">
-<ANCHOR id="GstV4l2Src--saturation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation">
-<ANCHOR id="GstV4l2Src--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm">
-<ANCHOR id="GstV4l2Src--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode">
-<ANCHOR id="GstV4l2Src--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls">
-<ANCHOR id="GstV4l2Src--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio">
-<ANCHOR id="GstV4l2Src--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio">
-<ANCHOR id="gst-plugins-good-plugins-v4l2src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signal-details">
-<ANCHOR id="GstV4l2Src-prepare-format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.properties">
+<ANCHOR id="GstV4l2Radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.description">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other_details">
+<ANCHOR id="GstV4l2Radio-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct">
+<ANCHOR id="gst-plugins-good-plugins-v4l2radio.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.property-details">
+<ANCHOR id="GstV4l2Radio--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device">
+<ANCHOR id="GstV4l2Radio--frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency">
 <ANCHOR id="gst-plugins-good-plugins-v4l2sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html">
 <ANCHOR id="gst-plugins-good-plugins-v4l2sink.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#gst-plugins-good-plugins-v4l2sink.properties">
 <ANCHOR id="GstV4l2Sink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink">
@@ -2242,19 +2464,36 @@
 <ANCHOR id="GstV4l2Sink--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--extra-controls">
 <ANCHOR id="GstV4l2Sink--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--force-aspect-ratio">
 <ANCHOR id="GstV4l2Sink--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2sink.html#GstV4l2Sink--pixel-aspect-ratio">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.properties">
-<ANCHOR id="GstV4l2Radio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.object-hierarchy">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.implemented-interfaces">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.description">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.other_details">
-<ANCHOR id="GstV4l2Radio-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio-struct">
-<ANCHOR id="gst-plugins-good-plugins-v4l2radio.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#gst-plugins-good-plugins-v4l2radio.property-details">
-<ANCHOR id="GstV4l2Radio--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--device">
-<ANCHOR id="GstV4l2Radio--frequency" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2radio.html#GstV4l2Radio--frequency">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.properties">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signals">
+<ANCHOR id="GstV4l2Src" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.object-hierarchy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.object-hierarchy">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.implemented-interfaces" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.implemented-interfaces">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.description">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.other_details">
+<ANCHOR id="GstV4l2Src-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-struct">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.property-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.property-details">
+<ANCHOR id="GstV4l2Src--device" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device">
+<ANCHOR id="GstV4l2Src--device-name" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-name">
+<ANCHOR id="GstV4l2Src--flags" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--flags">
+<ANCHOR id="GstV4l2Src--queue-size" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--queue-size">
+<ANCHOR id="GstV4l2Src--always-copy" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--always-copy">
+<ANCHOR id="GstV4l2Src--device-fd" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--device-fd">
+<ANCHOR id="GstV4l2Src--brightness" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--brightness">
+<ANCHOR id="GstV4l2Src--contrast" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--contrast">
+<ANCHOR id="GstV4l2Src--decimate" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--decimate">
+<ANCHOR id="GstV4l2Src--hue" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--hue">
+<ANCHOR id="GstV4l2Src--saturation" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--saturation">
+<ANCHOR id="GstV4l2Src--norm" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--norm">
+<ANCHOR id="GstV4l2Src--io-mode" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--io-mode">
+<ANCHOR id="GstV4l2Src--extra-controls" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--extra-controls">
+<ANCHOR id="GstV4l2Src--force-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--force-aspect-ratio">
+<ANCHOR id="GstV4l2Src--pixel-aspect-ratio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src--pixel-aspect-ratio">
+<ANCHOR id="gst-plugins-good-plugins-v4l2src.signal-details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#gst-plugins-good-plugins-v4l2src.signal-details">
+<ANCHOR id="GstV4l2Src-prepare-format" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-v4l2src.html#GstV4l2Src-prepare-format">
 <ANCHOR id="gst-plugins-good-plugins-vertigotv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html">
 <ANCHOR id="gst-plugins-good-plugins-vertigotv.properties" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.properties">
 <ANCHOR id="gst-plugins-good-plugins-vertigotv.signals" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-vertigotv.html#gst-plugins-good-plugins-vertigotv.signals">
@@ -2437,6 +2676,12 @@
 <ANCHOR id="gst-plugins-good-plugins-warptv.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.functions_details">
 <ANCHOR id="gst-plugins-good-plugins-warptv.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#gst-plugins-good-plugins-warptv.other_details">
 <ANCHOR id="GstWarpTV-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-warptv.html#GstWarpTV-struct">
+<ANCHOR id="gst-plugins-good-plugins-waveformsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html">
+<ANCHOR id="gst-plugins-good-plugins-waveformsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other">
+<ANCHOR id="gst-plugins-good-plugins-waveformsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.description">
+<ANCHOR id="gst-plugins-good-plugins-waveformsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.functions_details">
+<ANCHOR id="gst-plugins-good-plugins-waveformsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other_details">
+<ANCHOR id="GstWaveFormSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink">
 <ANCHOR id="gst-plugins-good-plugins-wavenc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html">
 <ANCHOR id="GstWavEnc" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc">
 <ANCHOR id="gst-plugins-good-plugins-wavenc.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.other">
@@ -2446,12 +2691,6 @@
 <ANCHOR id="gst-plugins-good-plugins-wavenc.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.functions_details">
 <ANCHOR id="gst-plugins-good-plugins-wavenc.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#gst-plugins-good-plugins-wavenc.other_details">
 <ANCHOR id="GstWavEnc-struct" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavenc.html#GstWavEnc-struct">
-<ANCHOR id="gst-plugins-good-plugins-waveformsink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html">
-<ANCHOR id="gst-plugins-good-plugins-waveformsink.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other">
-<ANCHOR id="gst-plugins-good-plugins-waveformsink.description" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.description">
-<ANCHOR id="gst-plugins-good-plugins-waveformsink.functions_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.functions_details">
-<ANCHOR id="gst-plugins-good-plugins-waveformsink.other_details" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#gst-plugins-good-plugins-waveformsink.other_details">
-<ANCHOR id="GstWaveFormSink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-waveformsink.html#GstWaveFormSink">
 <ANCHOR id="gst-plugins-good-plugins-wavpackdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html">
 <ANCHOR id="GstWavpackDec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#GstWavpackDec">
 <ANCHOR id="gst-plugins-good-plugins-wavpackdec.other" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-wavpackdec.html#gst-plugins-good-plugins-wavpackdec.other">
@@ -2543,14 +2782,16 @@
 <ANCHOR id="plugin-aasink" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-aasink.html#plugin-aasink">
 <ANCHOR id="gst-plugins-good-plugins-plugin-alaw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alaw.html">
 <ANCHOR id="plugin-alaw" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alaw.html#plugin-alaw">
-<ANCHOR id="gst-plugins-good-plugins-plugin-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alpha.html">
-<ANCHOR id="plugin-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alpha.html#plugin-alpha">
 <ANCHOR id="gst-plugins-good-plugins-plugin-alphacolor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alphacolor.html">
 <ANCHOR id="plugin-alphacolor" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alphacolor.html#plugin-alphacolor">
+<ANCHOR id="gst-plugins-good-plugins-plugin-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alpha.html">
+<ANCHOR id="plugin-alpha" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-alpha.html#plugin-alpha">
 <ANCHOR id="gst-plugins-good-plugins-plugin-apetag" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-apetag.html">
 <ANCHOR id="plugin-apetag" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-apetag.html#plugin-apetag">
 <ANCHOR id="gst-plugins-good-plugins-plugin-audiofx" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-audiofx.html">
 <ANCHOR id="plugin-audiofx" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-audiofx.html#plugin-audiofx">
+<ANCHOR id="gst-plugins-good-plugins-plugin-audioparsers" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-audioparsers.html">
+<ANCHOR id="plugin-audioparsers" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-audioparsers.html#plugin-audioparsers">
 <ANCHOR id="gst-plugins-good-plugins-plugin-auparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-auparse.html">
 <ANCHOR id="plugin-auparse" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-auparse.html#plugin-auparse">
 <ANCHOR id="gst-plugins-good-plugins-plugin-autodetect" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-autodetect.html">
@@ -2573,10 +2814,10 @@
 <ANCHOR id="plugin-dtmf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dtmf.html#plugin-dtmf">
 <ANCHOR id="gst-plugins-good-plugins-plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html">
 <ANCHOR id="plugin-dv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-dv.html#plugin-dv">
-<ANCHOR id="gst-plugins-good-plugins-plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html">
-<ANCHOR id="plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html#plugin-equalizer">
 <ANCHOR id="gst-plugins-good-plugins-plugin-effectv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-effectv.html">
 <ANCHOR id="plugin-effectv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-effectv.html#plugin-effectv">
+<ANCHOR id="gst-plugins-good-plugins-plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html">
+<ANCHOR id="plugin-equalizer" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-equalizer.html#plugin-equalizer">
 <ANCHOR id="gst-plugins-good-plugins-plugin-flac" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-flac.html">
 <ANCHOR id="plugin-flac" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-flac.html#plugin-flac">
 <ANCHOR id="gst-plugins-good-plugins-plugin-flv" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-flv.html">
@@ -2585,10 +2826,10 @@
 <ANCHOR id="plugin-flxdec" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-flxdec.html#plugin-flxdec">
 <ANCHOR id="gst-plugins-good-plugins-plugin-gdkpixbuf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-gdkpixbuf.html">
 <ANCHOR id="plugin-gdkpixbuf" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-gdkpixbuf.html#plugin-gdkpixbuf">
-<ANCHOR id="gst-plugins-good-plugins-plugin-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom.html">
-<ANCHOR id="plugin-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom.html#plugin-goom">
 <ANCHOR id="gst-plugins-good-plugins-plugin-goom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom2k1.html">
 <ANCHOR id="plugin-goom2k1" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom2k1.html#plugin-goom2k1">
+<ANCHOR id="gst-plugins-good-plugins-plugin-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom.html">
+<ANCHOR id="plugin-goom" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-goom.html#plugin-goom">
 <ANCHOR id="gst-plugins-good-plugins-plugin-icydemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-icydemux.html">
 <ANCHOR id="plugin-icydemux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-icydemux.html#plugin-icydemux">
 <ANCHOR id="gst-plugins-good-plugins-plugin-id3demux" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-id3demux.html">
@@ -2631,10 +2872,10 @@
 <ANCHOR id="plugin-pulseaudio" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-pulseaudio.html#plugin-pulseaudio">
 <ANCHOR id="gst-plugins-good-plugins-plugin-replaygain" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-replaygain.html">
 <ANCHOR id="plugin-replaygain" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-replaygain.html#plugin-replaygain">
-<ANCHOR id="gst-plugins-good-plugins-plugin-rtp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtp.html">
-<ANCHOR id="plugin-rtp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">
 <ANCHOR id="gst-plugins-good-plugins-plugin-rtpmanager" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtpmanager.html">
 <ANCHOR id="plugin-rtpmanager" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtpmanager.html#plugin-rtpmanager">
+<ANCHOR id="gst-plugins-good-plugins-plugin-rtp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtp.html">
+<ANCHOR id="plugin-rtp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtp.html#plugin-rtp">
 <ANCHOR id="gst-plugins-good-plugins-plugin-rtsp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtsp.html">
 <ANCHOR id="plugin-rtsp" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-rtsp.html#plugin-rtsp">
 <ANCHOR id="gst-plugins-good-plugins-plugin-shapewipe" href="gst-plugins-good-plugins-1.0/gst-plugins-good-plugins-plugin-shapewipe.html">
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index 6d710c042656b06fccb2295f079da4b56054b1d1..97c635ed84d5eec52f2832d52c4f4d01c0f9d83f 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.5.2</version>
+  <version>1.5.90</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 d4e8768573dbdddc5636d9b77a9dda193fff4c19..a3f94af7c9bfdb644dc2a10d790c51de19cc7194 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.5.2</version>
+  <version>1.5.90</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 15fefdbc69c3e487a4433a03eea0444e62ff187b..3c5f7284606c22294e47af2c8fad931a0762d21a 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.5.2</version>
+  <version>1.5.90</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 c8d58a9fff6a60cb3ee78b0178d6df6c607ae93b..3bc30786ec4712935bcf55c9e4c02c0c7a053060 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.5.2</version>
+  <version>1.5.90</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 518d732f10a6b5cf816ca79de09b2e09b983259b..a5cf4301019441786b84d1f1d3f5fd3389520919 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.5.2</version>
+  <version>1.5.90</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 b82e6422112f8dec9a9716bcce316b21cbacbcaa..7eca7bee71acfe2332c9ea6cd9d1dc940919f456 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.5.2</version>
+  <version>1.5.90</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 d7a2139b101b0f2a41ebe2d796f23b6dd83180c2..656194bf68802c047cffd35eb34b39d901fe889b 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.5.2</version>
+  <version>1.5.90</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 55c7ac6d9cea9fe6d51323c9aee88fa0d187fd6b..e93b19788d6ce6efbfcdef847e6d3143f9ae7378 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.5.2</version>
+  <version>1.5.90</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 0b12310480fd23cee8c629549a076af9428b2d93..e4e8450fa3ad697693d2d807628f5b87a420b8d1 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.5.2</version>
+  <version>1.5.90</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 5fbfbaa8d96abe65d5dbc965b49c9eb63e3218f6..11d1dea4125b9e75dc805509f6311a95e74ff7de 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.5.2</version>
+  <version>1.5.90</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 38da335c4c614a4cd61cab8ee00cc343889f92e2..f5761f0c6c1c6b1156c196b886a91090b96bf352 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -53,7 +53,7 @@
       <longname>Avi muxer</longname>
       <class>Codec/Muxer</class>
       <description>Muxes audio and video into an avi stream</description>
-      <author>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</author>
+      <author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
       <pads>
         <caps>
           <name>audio_%u</name>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index d7df4f7600d73f3b7f36faa8bdea96ce943e58f1..00c39db77dd5b9d8373a69c8fc87b45364228e27 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.5.2</version>
+  <version>1.5.90</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 d7665efff1598d7624a64e2d208f240c2f12461c..753ca70da26562afa5bbf8753ff0a5b9b03cbf00 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.5.2</version>
+  <version>1.5.90</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 bd8c287e540460242eaee5d78543668efa05b6b7..a7a356bf61f21a11b73f45cabd125dc91f3b29af 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.5.2</version>
+  <version>1.5.90</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 9136d0b57e065a6a830618662286e1b567ac5f5d..0fe2c6d542e8d6a6178d15d6845c1a344b1cd94f 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.5.2</version>
+  <version>1.5.90</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 248d596d5cb7cd482490f72cb0b099accdfcd73b..6c339af5c4a4e35547c08df304a734fe13ec68b2 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.5.2</version>
+  <version>1.5.90</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 7196a10f574132202aa0ad97e9a549c76c751fbf..0f2d662427eb7216dfb75994fd8eedb8c3bbb8f1 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.5.2</version>
+  <version>1.5.90</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 4718643431f2dda44f0b450b437bfe0c49fd480c..3d25d25c5c63a63668ca3fe2034fd5be02b43f3b 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.5.2</version>
+  <version>1.5.90</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 6f32d0832c523f88181e94fe8f9332dc34d70974..15d2826597cf84d14a9563769e59aa3d96a0aba6 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.5.2</version>
+  <version>1.5.90</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 a0bb67e59e129013e7a71bac5d6988e3408512a4..b5751c65000fd07efdee8fc9b183ba109e4072c3 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.5.2</version>
+  <version>1.5.90</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 bafc078a57f83faf3a78333635af0bdaa1cc70f6..a334d39b0e52b658d936c6ccb321c16d6e6da61b 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -41,7 +41,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>audio/x-raw, format=(string){ S24LE, S24_32LE, S16LE, S8 }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)[ 1, 8 ]</details>
+          <details>audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)1; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)2, channel-mask=(bitmask)0x0000000000000003; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)3, channel-mask=(bitmask)0x0000000000000007; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)4, channel-mask=(bitmask)0x0000000000000033; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)5, channel-mask=(bitmask)0x0000000000000037; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)6, channel-mask=(bitmask)0x000000000000003f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)7, channel-mask=(bitmask)0x000000000000013f; audio/x-raw, format=(string){ S8, S16LE, S24LE, S24_32LE }, layout=(string)interleaved, rate=(int)[ 1, 655350 ], channels=(int)8, channel-mask=(bitmask)0x0000000000000c3f</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-flv.xml b/docs/plugins/inspect/plugin-flv.xml
index 5c53b392288d36de72a89a6e7ebbb44f6677c6fb..b385a91dff7d7af627ff733f7f78117b414aff58 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-flxdec.xml b/docs/plugins/inspect/plugin-flxdec.xml
index 32df8a28352b38a3321d97d46bc362d808aa0796..51ef393e017eec84af17e4afa9ec65601c89e8c4 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.5.2</version>
+  <version>1.5.90</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 c4e26a8712c26c4117771bef76ea6f2e0b6d67d2..a09ed75cd96ee6b4e3354aba411a76a2692f97a3 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.5.2</version>
+  <version>1.5.90</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 63baa82e08fb1c301e2821223379111c81923170..58c22a20719eea418ee13f14f35ed358e3e0cba5 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.5.2</version>
+  <version>1.5.90</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 c909d512254cc28e02a0689d6df6ecd479167412..6349b779c59fee2f389b3166ee5a6ce29b23d29e 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.5.2</version>
+  <version>1.5.90</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 71a9810b1d740e246e18df58e3b631c5e8e717e8..4aaf697bb2f4a5e072836d5f78bdc944b7c69af6 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.5.2</version>
+  <version>1.5.90</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 27ee4d57fc53f3bc41f5419c1b899dd3488e7b86..fcc9d7b4d7ff0aba575cc96a0b90cefdbc5c3336 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.5.2</version>
+  <version>1.5.90</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 c0055ace6bdb5df9b6fec5641f51772b6d070a86..be9667c3ac2670a2ad5849f70f158b39041925a2 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.5.2</version>
+  <version>1.5.90</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 9dcc351cb26001eef69c7d8dbf968de56a4a31f2..cb55f8db5518b3dbb6f927882a805b254a908d4a 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.5.2</version>
+  <version>1.5.90</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 b49b4ac66bf974bef26235f4e36ef697be5a7187..6128beca4379b0657e8bcd9e26807b52bed0bdab 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-jack.xml b/docs/plugins/inspect/plugin-jack.xml
index 30c0ee0de9a96d0561c069a64ea569955506a3b5..cd881c7a80e6f2074d2c25d01ed73bcb40ba970e 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.5.2</version>
+  <version>1.5.90</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 8498df1f653fac5f5c949fe3d0116f8dba4845a5..7134ff83afb816a673055b518fd0112597e28d27 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-level.xml b/docs/plugins/inspect/plugin-level.xml
index f84d397179e7d0c8fbe37faec83498de1813d527..31d27762ac25a4671d74d280868c15e1449b0d28 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.5.2</version>
+  <version>1.5.90</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 518d747c6de76fb67f738abc15bfede33551818d..ce54452d33b7f2443c6d9030841c4bc2da07ec8e 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -14,7 +14,7 @@
       <longname>Matroska demuxer</longname>
       <class>Codec/Demuxer</class>
       <description>Demuxes Matroska/WebM streams into video/audio/subtitles</description>
-      <author>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</author>
+      <author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
       <pads>
         <caps>
           <name>sink</name>
@@ -47,7 +47,7 @@
       <longname>Matroska muxer</longname>
       <class>Codec/Muxer</class>
       <description>Muxes video/audio/subtitle streams into a matroska stream</description>
-      <author>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</author>
+      <author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
       <pads>
         <caps>
           <name>audio_%u</name>
@@ -80,7 +80,7 @@
       <longname>Matroska parser</longname>
       <class>Codec/Parser</class>
       <description>Parses Matroska/WebM streams into video/audio/subtitles</description>
-      <author>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</author>
+      <author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
       <pads>
         <caps>
           <name>sink</name>
@@ -101,7 +101,7 @@
       <longname>WebM muxer</longname>
       <class>Codec/Muxer</class>
       <description>Muxes video and audio streams into a WebM stream</description>
-      <author>GStreamer maintainers &lt;gstreamer-devel@lists.sourceforge.net&gt;</author>
+      <author>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</author>
       <pads>
         <caps>
           <name>audio_%u</name>
diff --git a/docs/plugins/inspect/plugin-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index a3fe105540c7fca6c59497b81039ee05f01e2bde..f07de1e95fbdd439e11590f36a40e480ee29adbd 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.5.2</version>
+  <version>1.5.90</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 19487953d616eb6357c4096ab237aa238c4ccbda..847bdd58fe4988905df75d8193cf6bffcbf9e877 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.5.2</version>
+  <version>1.5.90</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 c8dd4a2a1d48f4ec2497bd2fed9164fe9273676e..0bc96883b5d7588bc972f7a03d6d9942706b4c5e 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.5.2</version>
+  <version>1.5.90</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 46750e0278e3a3c7a31138129e9f14bb73bda45c..f84fb00bf6cbafbb60d81844eda4959db1704f18 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.5.2</version>
+  <version>1.5.90</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 4767a3f8f21d1f1b5a6121f2bbbf5a852946108c..ada2e44bab908c5a6ceffeafbe6baf06f221ab0b 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.5.2</version>
+  <version>1.5.90</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 fa263e009518247ea6acd0dfbb1fb9182903731b..03298cb58ad464e63a136ef832ae161fe30bb822 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.5.2</version>
+  <version>1.5.90</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 ea786467237272e5811d953e2269041c1cdb57b8..6930f4477e474e9f89d402cd3c09f7a65f6a972d 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.5.2</version>
+  <version>1.5.90</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 41f4595e5b22f8af22d5822e29bc8a8042775e1d..e61f63833c39a3c75fed3c352968419fca4d136d 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.5.2</version>
+  <version>1.5.90</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 f1fca6305ef8c5348fa1f7f6690f933c3b576bc9..18dc8584ae1b3d279e172b83c499422044ef37e4 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.5.2</version>
+  <version>1.5.90</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 5ab964dd1d319a737ad631e0c052ced20f6e2c43..97dc9ab389726e50c55a30f3014dff7e474877f3 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -362,7 +362,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, clock-rate=(int)8000</details>
+          <details>application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)9, clock-rate=(int)8000; application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], clock-rate=(int)8000</details>
         </caps>
       </pads>
     </element>
@@ -576,6 +576,48 @@
         </caps>
       </pads>
     </element>
+    <element>
+      <name>rtph261depay</name>
+      <longname>RTP H261 depayloader</longname>
+      <class>Codec/Depayloader/Network/RTP</class>
+      <description>Extracts H261 video from RTP packets (RFC 4587)</description>
+      <author>Stian Selnes &lt;stian@pexip.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)video, payload=(int)31, clock-rate=(int)90000, encoding-name=(string)H261; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H261</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>video/x-h261</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtph261pay</name>
+      <longname>RTP H261 packet payloader</longname>
+      <class>Codec/Payloader/Network/RTP</class>
+      <description>Payload-encodes H261 video in RTP packets (RFC 4587)</description>
+      <author>Stian Selnes &lt;stian@pexip.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>video/x-h261</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)video, payload=(int)31, clock-rate=(int)90000, encoding-name=(string)H261; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H261</details>
+        </caps>
+      </pads>
+    </element>
     <element>
       <name>rtph263depay</name>
       <longname>RTP H263 depayloader</longname>
@@ -824,7 +866,49 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</details>
+          <details>application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG, width=(int)[ 1, 65536 ], height=(int)[ 1, 65536 ]</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpklvdepay</name>
+      <longname>RTP KLV Depayloader</longname>
+      <class>Codec/Depayloader/Network/RTP</class>
+      <description>Extracts KLV (SMPTE ST 336) metadata from RTP packets</description>
+      <author>Tim-Philipp Müller &lt;tim@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)application, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)SMPTE336M</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>meta/x-klv, parsed=(boolean)true</details>
+        </caps>
+      </pads>
+    </element>
+    <element>
+      <name>rtpklvpay</name>
+      <longname>RTP KLV Payloader</longname>
+      <class>Codec/Payloader/Network/RTP</class>
+      <description>Payloads KLV (SMPTE ST 336) metadata as RTP packets</description>
+      <author>Tim-Philipp Müller &lt;tim@centricular.com&gt;</author>
+      <pads>
+        <caps>
+          <name>sink</name>
+          <direction>sink</direction>
+          <presence>always</presence>
+          <details>meta/x-klv, parsed=(boolean)true</details>
+        </caps>
+        <caps>
+          <name>src</name>
+          <direction>source</direction>
+          <presence>always</presence>
+          <details>application/x-rtp, media=(string)application, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)SMPTE336M</details>
         </caps>
       </pads>
     </element>
@@ -1118,7 +1202,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000, encoding-name=(string)MPV</details>
+          <details>application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000, encoding-name=(string)MPV; application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPV</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index f7a8c48a3d4065cb075dd0335a27a9e06aac7cd5..974c0ce75c3952810290a96ac9d9aa22f3deee47 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.5.2</version>
+  <version>1.5.90</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 94615e93852e03a43e4993273a28c9d76a12a26f..f05a684d02bfc2b659e32a849e5c2b1f474c63d8 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.5.2</version>
+  <version>1.5.90</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 d15c5ad8dc9c3dfa1b4f54e5cbb21be7846e1159..a9bae2c65166af7f6de74151793c370784f97774 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.5.2</version>
+  <version>1.5.90</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 d40320f2bbcaf248a88df20a151a819e410802ed..1085c707354ef9dcd3d91b73696a33b513cd7071 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.5.2</version>
+  <version>1.5.90</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 17f6fd79f28870141e0de733e463e71fdf7af8f9..61551b635808d2dffe83e34f98b3d23446fd0dd1 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.5.2</version>
+  <version>1.5.90</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 403027882a224e8b7f36ec3dd59c5afecbd1f106..8cf36c19a2a017db8987fb353587d86bd0a90c80 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.5.2</version>
+  <version>1.5.90</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 44e5a3b8607b9a189ba68aa5f6f74ac1e0c8d5e5..9d84d2495b096d5a511a1b1f17567d3c1c30f814 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.5.2</version>
+  <version>1.5.90</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 1fd09c8ac00115619c9dad701e529b762eb30153..36b3bab0a76fbe403aef63fcceda16bcb486cfb6 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.5.2</version>
+  <version>1.5.90</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 d8648ba31199888a75c06d7cad0e58ce15f01d34..49881bf3a5471e372251f3861bce011b092b7d13 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.5.2</version>
+  <version>1.5.90</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 9425901b4de11e38232b43464bb8db50ec989d27..9c11b4a0e085a056e484ff3a3d555932c3b3b86d 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.5.2</version>
+  <version>1.5.90</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 2a8e9989b05cc79e389083ec63e093001dbe9f30..d5690ba39be67c990ca1611d54d9b3e9f987cff7 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -29,7 +29,7 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-vp8</details>
+          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8</details>
         </caps>
       </pads>
     </element>
@@ -44,7 +44,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-vp8</details>
+          <details>image/jpeg; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/mpeg, mpegversion=(int)2; video/mpegts, systemstream=(boolean)true; video/x-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, systemstream=(boolean)true; video/x-h263, variant=(string)itu; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au; video/x-pwc1, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-pwc2, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw, format=(string){ RGB15, RGB16, BGR, RGB, BGRx, BGRA, xRGB, ARGB, GRAY8, YVU9, YV12, YUY2, UYVY, Y42B, Y41B, NV12_64Z32, YUV9, I420, YVYU, NV21, NV12 }, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-sonix, width=(int)[ 1, 32768 ], height=(int)[ 1, 32768 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index cb0b98dd5e228db998150cc6c609455cb0e2e1c6..7a39829fe2ce2867171ecaadaa45165ac5d0d2b4 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.5.2</version>
+  <version>1.5.90</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 0336819f558d5aa534af0e4c1c5988e9f812d8dd..3d4fbcdad3c430eac7ce4e176cfdb99bf68de160 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.5.2</version>
+  <version>1.5.90</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 4a31828c244c0792b9b35da82e006bbf04fd4bac..5fe6f9748777ec79d9d4f78da21aa1d66abf8b04 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.5.2</version>
+  <version>1.5.90</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 6ae0b6a80de8a7563bfb3966d6c184f908c7422a..4d4028d3a9b7dc19bc0620eeed2107ac495d5d4c 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.5.2</version>
+  <version>1.5.90</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 ee372967d6eeff60024991224ddad8a6ba314cf2..fad05ca0b84c8b57af2894bab5cedf7e85c26c54 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.5.2</version>
+  <version>1.5.90</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 715053f15352e81afbdae2da2825908dddad109d..75ed27504efca40e3b95865f3e667aa327345b0f 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/docs/plugins/inspect/plugin-wavpack.xml b/docs/plugins/inspect/plugin-wavpack.xml
index 7ec8a8dfe4d7bd41966bc966c5c1f5b8dcd3ffd5..3451f7987c67548575fee1e92e058e5e4bb71a47 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.5.2</version>
+  <version>1.5.90</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 3a126f93b0c8163742ffb24a3cba43e5090c2f43..de46b5b453425da48d3f80a16ef4513c7aa7d9ef 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.5.2</version>
+  <version>1.5.90</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 a3c8d3eb758e86e2e51cbd24efa197698821109a..d1b91182a7302de7c499b339d85c8321eb9cc2ad 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.5.2</version>
+  <version>1.5.90</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 58e25ff21ff82773b76cd010415ca275e2cd9272..20874540c70e15b3037579d1b844ac1e06dd8f0a 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.5.2</version>
+  <version>1.5.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/Makefile.am b/ext/Makefile.am
index c143fe042549fdba656e1b06f78d3e4c04bf67aa..6f001825218c0b5ddcffb9565924691f89b00e59 100644
--- a/ext/Makefile.am
+++ b/ext/Makefile.am
@@ -52,12 +52,6 @@ else
 LIBPNG_DIR =
 endif
 
-# if USE_MIKMOD
-# MIKMOD_DIR = mikmod
-# else
-MIKMOD_DIR =
-# endif
-
 if USE_DV1394
 DV1394_DIR = raw1394
 else
@@ -119,7 +113,6 @@ SUBDIRS = \
 	$(LIBDV_DIR) \
 	$(LIBMNG_DIR) \
 	$(LIBPNG_DIR) \
-	$(MIKMOD_DIR) \
 	$(PULSE_DIR) \
 	$(SHOUT2_DIR) \
 	$(SOUP_DIR) \
diff --git a/ext/Makefile.in b/ext/Makefile.in
index 3c58413c4630d7685658828163bbdef0fc856852..680f15516ac4ce3bcd8336e11a7315fc865d6939 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = ext
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -121,6 +129,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -179,6 +188,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -546,13 +557,7 @@ top_srcdir = @top_srcdir@
 @USE_LIBDV_TRUE@LIBDV_DIR = dv
 @USE_LIBPNG_FALSE@LIBPNG_DIR = 
 @USE_LIBPNG_TRUE@LIBPNG_DIR = libpng
-
-# if USE_MIKMOD
-# MIKMOD_DIR = mikmod
-# else
-MIKMOD_DIR = 
 @USE_DV1394_FALSE@DV1394_DIR = 
-# endif
 @USE_DV1394_TRUE@DV1394_DIR = raw1394
 @USE_PULSE_FALSE@PULSE_DIR = 
 @USE_PULSE_TRUE@PULSE_DIR = pulse
@@ -580,7 +585,6 @@ SUBDIRS = \
 	$(LIBDV_DIR) \
 	$(LIBMNG_DIR) \
 	$(LIBPNG_DIR) \
-	$(MIKMOD_DIR) \
 	$(PULSE_DIR) \
 	$(SHOUT2_DIR) \
 	$(SOUP_DIR) \
@@ -623,7 +627,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -632,7 +635,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -919,6 +922,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in
index 8be13bd53ef87a1076bf47c7af10e7b8d7928f09..fdee6fa3e5b01556b8299fcce16bd62a9a87f707 100644
--- a/ext/aalib/Makefile.in
+++ b/ext/aalib/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/aalib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -573,7 +584,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/aalib/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/aalib/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -882,6 +892,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in
index 0b22945da9331177d5642cdcf404e996e75d29ea..eed207a60ed58118cd34de3fa934706a1fd6ab5e 100644
--- a/ext/cairo/Makefile.in
+++ b/ext/cairo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/cairo
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -586,7 +597,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/cairo/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/cairo/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -903,6 +913,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in
index eaa7926650bd75e7070e89c02173d79a3a11ca00..f08333bf3d70d1991580d27ce1ecf3bc7bb56447 100644
--- a/ext/dv/Makefile.in
+++ b/ext/dv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = smpte_test$(EXEEXT)
 subdir = ext/dv
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -236,6 +246,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -590,7 +601,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/dv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -966,6 +976,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index be996477108fd672cfe582cb88c1b58448f32a17..51eaaaf224b8d57df6fc5a13a5f605bea5d15f0a 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -258,7 +258,6 @@ gst_dvdemux_reset (GstDVDemux * dvdemux)
   dvdemux->frame_offset = 0;
   dvdemux->audio_offset = 0;
   dvdemux->video_offset = 0;
-  dvdemux->framecount = 0;
   g_atomic_int_set (&dvdemux->found_header, 0);
   dvdemux->frame_len = -1;
   dvdemux->need_segment = FALSE;
diff --git a/ext/dv/gstdvdemux.h b/ext/dv/gstdvdemux.h
index 98c127d0c6fc1188150a60c0ab4c0c2d54319bf3..fa9569106a65ead808166b8e998894654cfcbe47 100644
--- a/ext/dv/gstdvdemux.h
+++ b/ext/dv/gstdvdemux.h
@@ -69,8 +69,6 @@ struct _GstDVDemux {
   gint           frequency;
   gint           channels;
 
-  gint           framecount;
-  
   gint64         frame_offset;
   gint64         audio_offset;
   gint64         video_offset;
diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in
index 6c7258f13da9e51cd9ef70b86ef2cb3eadaa04a2..cd3c6af31e647e37b9078b80768039d949182708 100644
--- a/ext/flac/Makefile.in
+++ b/ext/flac/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/flac
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -581,7 +592,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/flac/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/flac/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -914,6 +924,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index 49436ddf7c778c11112a3a62492e4d9af2da5ca7..515ffbda7b85a5ca049906b0c0809a7a51b861c1 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -100,6 +100,8 @@ static FLAC__StreamDecoderWriteStatus
 gst_flac_dec_write_stream (const FLAC__StreamDecoder * decoder,
     const FLAC__Frame * frame,
     const FLAC__int32 * const buffer[], void *client_data);
+static gboolean
+gst_flac_dec_handle_decoder_error (GstFlacDec * dec, gboolean msg);
 static void gst_flac_dec_metadata_cb (const FLAC__StreamDecoder *
     decoder, const FLAC__StreamMetadata * metadata, void *client_data);
 static void gst_flac_dec_error_cb (const FLAC__StreamDecoder *
@@ -177,6 +179,9 @@ static void
 gst_flac_dec_init (GstFlacDec * flacdec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (flacdec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (flacdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (flacdec));
 }
 
 static gboolean
@@ -275,6 +280,14 @@ gst_flac_dec_set_format (GstAudioDecoder * dec, GstCaps * caps)
   GST_DEBUG_OBJECT (dec, "Processing headers and metadata");
   if (!FLAC__stream_decoder_process_until_end_of_metadata (flacdec->decoder)) {
     GST_WARNING_OBJECT (dec, "process_until_end_of_metadata failed");
+    if (FLAC__stream_decoder_get_state (flacdec->decoder) ==
+        FLAC__STREAM_DECODER_ABORTED) {
+      GST_WARNING_OBJECT (flacdec, "Read callback caused internal abort");
+      /* allow recovery */
+      gst_adapter_clear (flacdec->adapter);
+      FLAC__stream_decoder_flush (flacdec->decoder);
+      gst_flac_dec_handle_decoder_error (flacdec, TRUE);
+    }
   }
   GST_INFO_OBJECT (dec, "headers and metadata are now processed");
   return TRUE;
@@ -781,6 +794,14 @@ gst_flac_dec_handle_frame (GstAudioDecoder * audio_dec, GstBuffer * buf)
 
   if (!FLAC__stream_decoder_process_single (dec->decoder)) {
     GST_INFO_OBJECT (dec, "process_single failed");
+    if (FLAC__stream_decoder_get_state (dec->decoder) ==
+        FLAC__STREAM_DECODER_ABORTED) {
+      GST_WARNING_OBJECT (dec, "Read callback caused internal abort");
+      /* allow recovery */
+      gst_adapter_clear (dec->adapter);
+      FLAC__stream_decoder_flush (dec->decoder);
+      gst_flac_dec_handle_decoder_error (dec, TRUE);
+    }
   }
 
   return dec->last_flow;
diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c
index 1e0e787b0bd094de12623f38028e15d6b1880862..8be058a004115bfd5741a238007fdf4a1583af7e 100644
--- a/ext/flac/gstflacenc.c
+++ b/ext/flac/gstflacenc.c
@@ -97,31 +97,12 @@ static const GstAudioChannelPosition channel_positions[8][8] = {
       GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT}
 };
 
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define FORMATS "{ S24LE, S24_32LE, S16LE, S8 } "
-#else
-#define FORMATS "{ S24BE, S24_32BE, S16BE, S8 } "
-#endif
-
-#define FLAC_SINK_CAPS                                    \
-    "audio/x-raw, "                                       \
-    "format = (string) " FORMATS ", "                     \
-    "layout = (string) interleaved, "                     \
-    "rate = (int) [ 1, 655350 ], "                        \
-    "channels = (int) [ 1, 8 ]"
-
 static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-flac")
     );
 
-static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS (FLAC_SINK_CAPS)
-    );
-
 enum
 {
   PROP_0,
@@ -160,9 +141,13 @@ static GstFlowReturn gst_flac_enc_handle_frame (GstAudioEncoder * enc,
 static GstCaps *gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter);
 static gboolean gst_flac_enc_sink_event (GstAudioEncoder * enc,
     GstEvent * event);
+static gboolean gst_flac_enc_sink_query (GstAudioEncoder * enc,
+    GstQuery * query);
 
 static void gst_flac_enc_finalize (GObject * object);
 
+static GstCaps *gst_flac_enc_generate_sink_caps (void);
+
 static gboolean gst_flac_enc_update_quality (GstFlacEnc * flacenc,
     gint quality);
 static void gst_flac_enc_set_property (GObject * object, guint prop_id,
@@ -246,6 +231,8 @@ gst_flac_enc_class_init (GstFlacEncClass * klass)
   GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
   GstAudioEncoderClass *base_class;
+  GstCaps *sink_caps;
+  GstPadTemplate *sink_templ;
 
   gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
@@ -356,8 +343,12 @@ gst_flac_enc_class_init (GstFlacEncClass * klass)
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+
+  sink_caps = gst_flac_enc_generate_sink_caps ();
+  sink_templ = gst_pad_template_new ("sink",
+      GST_PAD_SINK, GST_PAD_ALWAYS, sink_caps);
+  gst_element_class_add_pad_template (gstelement_class, sink_templ);
+  gst_caps_unref (sink_caps);
 
   gst_element_class_set_static_metadata (gstelement_class, "FLAC audio encoder",
       "Codec/Encoder/Audio",
@@ -370,6 +361,7 @@ gst_flac_enc_class_init (GstFlacEncClass * klass)
   base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_flac_enc_handle_frame);
   base_class->getcaps = GST_DEBUG_FUNCPTR (gst_flac_enc_getcaps);
   base_class->sink_event = GST_DEBUG_FUNCPTR (gst_flac_enc_sink_event);
+  base_class->sink_query = GST_DEBUG_FUNCPTR (gst_flac_enc_sink_query);
 }
 
 static void
@@ -717,6 +709,55 @@ gst_flac_enc_set_metadata (GstFlacEnc * flacenc, GstAudioInfo * info,
   gst_tag_list_unref (copy);
 }
 
+static GstCaps *
+gst_flac_enc_generate_sink_caps (void)
+{
+  GstCaps *ret;
+  gint i;
+  GValue v_list = { 0, };
+  GValue v = { 0, };
+  GstStructure *s, *s2;
+
+  g_value_init (&v_list, GST_TYPE_LIST);
+  g_value_init (&v, G_TYPE_STRING);
+
+  /* Use system's endianness */
+  g_value_set_static_string (&v, "S8");
+  gst_value_list_append_value (&v_list, &v);
+  g_value_set_static_string (&v, GST_AUDIO_NE (S16));
+  gst_value_list_append_value (&v_list, &v);
+  g_value_set_static_string (&v, GST_AUDIO_NE (S24));
+  gst_value_list_append_value (&v_list, &v);
+  g_value_set_static_string (&v, GST_AUDIO_NE (S24_32));
+  gst_value_list_append_value (&v_list, &v);
+  g_value_unset (&v);
+
+  s = gst_structure_new_empty ("audio/x-raw");
+  gst_structure_take_value (s, "format", &v_list);
+
+  gst_structure_set (s, "layout", G_TYPE_STRING, "interleaved",
+      "rate", GST_TYPE_INT_RANGE, 1, 655350, NULL);
+
+  ret = gst_caps_new_empty ();
+  s2 = gst_structure_copy (s);
+  gst_structure_set (s2, "channels", G_TYPE_INT, 1, NULL);
+  gst_caps_append_structure (ret, s2);
+  for (i = 2; i <= 8; i++) {
+    guint64 channel_mask;
+
+    s2 = gst_structure_copy (s);
+    gst_audio_channel_positions_to_mask (channel_positions[i - 1], i,
+        FALSE, &channel_mask);
+    gst_structure_set (s2, "channels", G_TYPE_INT, i, "channel-mask",
+        GST_TYPE_BITMASK, channel_mask, NULL);
+
+    gst_caps_append_structure (ret, s2);
+  }
+  gst_structure_free (s);
+
+  return ret;
+}
+
 static GstCaps *
 gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter)
 {
@@ -728,48 +769,7 @@ gst_flac_enc_getcaps (GstAudioEncoder * enc, GstCaps * filter)
   if (gst_pad_has_current_caps (pad)) {
     ret = gst_pad_get_current_caps (pad);
   } else {
-    gint i;
-    GValue v_list = { 0, };
-    GValue v = { 0, };
-    GstStructure *s, *s2;
-
-    g_value_init (&v_list, GST_TYPE_LIST);
-    g_value_init (&v, G_TYPE_STRING);
-
-    g_value_set_static_string (&v, "S8");
-    gst_value_list_append_value (&v_list, &v);
-    g_value_set_static_string (&v, GST_AUDIO_NE (S16));
-    gst_value_list_append_value (&v_list, &v);
-    g_value_set_static_string (&v, GST_AUDIO_NE (S24));
-    gst_value_list_append_value (&v_list, &v);
-    g_value_set_static_string (&v, GST_AUDIO_NE (S24_32));
-    gst_value_list_append_value (&v_list, &v);
-    g_value_unset (&v);
-
-    s = gst_structure_new_empty ("audio/x-raw");
-    gst_structure_take_value (s, "format", &v_list);
-
-    gst_structure_set (s, "layout", G_TYPE_STRING, "interleaved",
-        "rate", GST_TYPE_INT_RANGE, 1, 655350, NULL);
-
-    ret = gst_caps_new_empty ();
-    for (i = 1; i <= 8; i++) {
-      s2 = gst_structure_copy (s);
-
-      if (i == 1) {
-        gst_structure_set (s2, "channels", G_TYPE_INT, 1, NULL);
-      } else {
-        guint64 channel_mask;
-
-        gst_audio_channel_positions_to_mask (channel_positions[i - 1], i,
-            FALSE, &channel_mask);
-        gst_structure_set (s2, "channels", G_TYPE_INT, i, "channel-mask",
-            GST_TYPE_BITMASK, channel_mask, NULL);
-      }
-
-      gst_caps_append_structure (ret, s2);
-    }
-    gst_structure_free (s);
+    ret = gst_pad_get_pad_template_caps (pad);
   }
 
   GST_DEBUG_OBJECT (pad, "Return caps %" GST_PTR_FORMAT, ret);
@@ -1268,6 +1268,41 @@ gst_flac_enc_sink_event (GstAudioEncoder * enc, GstEvent * event)
   return ret;
 }
 
+static gboolean
+gst_flac_enc_sink_query (GstAudioEncoder * enc, GstQuery * query)
+{
+  GstPad *pad = GST_AUDIO_ENCODER_SINK_PAD (enc);
+  gboolean ret = FALSE;
+
+  GST_DEBUG ("Received %s query on sinkpad, %" GST_PTR_FORMAT,
+      GST_QUERY_TYPE_NAME (query), query);
+
+  switch (GST_QUERY_TYPE (query)) {
+    case GST_QUERY_ACCEPT_CAPS:{
+      GstCaps *acceptable, *caps;
+
+      if (gst_pad_has_current_caps (pad)) {
+        acceptable = gst_pad_get_current_caps (pad);
+      } else {
+        acceptable = gst_pad_get_pad_template_caps (pad);
+      }
+
+      gst_query_parse_accept_caps (query, &caps);
+
+      gst_query_set_accept_caps_result (query,
+          gst_caps_is_subset (caps, acceptable));
+      gst_caps_unref (acceptable);
+      ret = TRUE;
+    }
+      break;
+    default:
+      ret = GST_AUDIO_ENCODER_CLASS (parent_class)->sink_query (enc, query);
+      break;
+  }
+
+  return ret;
+}
+
 #if G_BYTE_ORDER == G_LITTLE_ENDIAN
 #define READ_INT24 GST_READ_UINT24_LE
 #else
diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in
index 5f6a6a29b2fe695991a3ec6c8dfd52767f0ca1b2..c4c50daf7a4f597046cdce660aa6f98aff03e8d8 100644
--- a/ext/gdk_pixbuf/Makefile.in
+++ b/ext/gdk_pixbuf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/gdk_pixbuf
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -598,7 +609,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gdk_pixbuf/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/gdk_pixbuf/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -931,6 +941,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in
index ce9bbac64e25210deeb8738552d54d467df18d6d..aa63441beccb1276bde96f0d26c7d0588f75c74a 100644
--- a/ext/jack/Makefile.in
+++ b/ext/jack/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/jack
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -575,7 +586,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/jack/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/jack/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -916,6 +926,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in
index 194533022dffb901772ac821f2bd5042ba35c50e..4a0567e6ab6ea41134b42de1c7798981f8644a96 100644
--- a/ext/jpeg/Makefile.in
+++ b/ext/jpeg/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/jpeg
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -584,7 +595,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/jpeg/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/jpeg/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -909,6 +919,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 # deprecated gstsmokeenc.h gstsmokedec.h smokecodec.h smokeformat.h
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index a1ba7c0c15dce8ee61c8ad10bbe076d2b28f981f..d67f1de77ab6b100551fc68db3d0542f3f967080 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -278,6 +278,10 @@ gst_jpeg_dec_init (GstJpegDec * dec)
   /* init properties */
   dec->idct_method = JPEG_DEFAULT_IDCT_METHOD;
   dec->max_errors = JPEG_DEFAULT_MAX_ERRORS;
+
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (dec));
 }
 
 static inline gboolean
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index 74c7bdde8c69f911a00f60eca14a4ee813364076..c1ba69473b1e784c2c5ecbbc40b60fc9c99c72d3 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -283,6 +283,8 @@ gst_jpegenc_term_destination (j_compress_ptr cinfo)
 static void
 gst_jpegenc_init (GstJpegEnc * jpegenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (jpegenc));
+
   /* setup jpeglib */
   memset (&jpegenc->cinfo, 0, sizeof (jpegenc->cinfo));
   memset (&jpegenc->jerr, 0, sizeof (jpegenc->jerr));
diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in
index b39e74e335be2180db76bd25c6663012ada36fd3..398b760a2b71cad6b0211a3849ee1f9f2f2d240e 100644
--- a/ext/libcaca/Makefile.in
+++ b/ext/libcaca/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libcaca
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -584,7 +595,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libcaca/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/libcaca/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -893,6 +903,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in
index a0440cac06f80727f969e958ad4e0b1f2a98ddb7..28c025ef6d379a5222c501a43b3795f60efba436 100644
--- a/ext/libpng/Makefile.in
+++ b/ext/libpng/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/libpng
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -576,7 +587,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libpng/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/libpng/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -901,6 +911,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c
index 48543aa23ff58bd2bf244c8a1e27d176f45e0e5c..7c98181ba1a16561f6f24507cedb664b89b2e551 100644
--- a/ext/libpng/gstpngdec.c
+++ b/ext/libpng/gstpngdec.c
@@ -112,6 +112,10 @@ gst_pngdec_init (GstPngDec * pngdec)
 
   pngdec->image_ready = FALSE;
   pngdec->read_data = 0;
+
+  gst_video_decoder_set_use_default_pad_acceptcaps (GST_VIDEO_DECODER_CAST
+      (pngdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (pngdec));
 }
 
 static void
diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c
index d3ebc49c956444f41b2843f85973905a3233142e..df763ed3241d86eb7d2827a3aabf7ba1f412373a 100644
--- a/ext/libpng/gstpngenc.c
+++ b/ext/libpng/gstpngenc.c
@@ -199,6 +199,8 @@ done:
 static void
 gst_pngenc_init (GstPngEnc * pngenc)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (pngenc));
+
   /* init settings */
   pngenc->png_struct_ptr = NULL;
   pngenc->png_info_ptr = NULL;
diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in
index d46ed37b24c0494f287779f361190cdc96a6b23d..ea7dd9ad2a5e3acd7b685af01f9b2369ff2a4a0e 100644
--- a/ext/pulse/Makefile.in
+++ b/ext/pulse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/pulse
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -590,7 +601,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/pulse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/pulse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -931,6 +941,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/pulse/pulsedeviceprovider.c b/ext/pulse/pulsedeviceprovider.c
index d25cb04c90214a390f832c33ea09ded4bce16ffe..8a292b9723312269ca14f7e77c0932dcde22b978 100644
--- a/ext/pulse/pulsedeviceprovider.c
+++ b/ext/pulse/pulsedeviceprovider.c
@@ -40,7 +40,7 @@ GST_DEBUG_CATEGORY_EXTERN (pulse_debug);
 
 static GstDevice *gst_pulse_device_new (guint id,
     const gchar * device_name, GstCaps * caps, const gchar * internal_name,
-    GstPulseDeviceType type);
+    GstPulseDeviceType type, GstStructure * properties);
 
 G_DEFINE_TYPE (GstPulseDeviceProvider, gst_pulse_device_provider,
     GST_TYPE_DEVICE_PROVIDER);
@@ -189,6 +189,7 @@ static GstDevice *
 new_source (const pa_source_info * info)
 {
   GstCaps *caps;
+  GstStructure *props;
   guint i;
 
   caps = gst_caps_new_empty ();
@@ -196,14 +197,17 @@ new_source (const pa_source_info * info)
   for (i = 0; i < info->n_formats; i++)
     gst_caps_append (caps, gst_pulse_format_info_to_caps (info->formats[i]));
 
+  props = gst_pulse_make_structure (info->proplist);
+
   return gst_pulse_device_new (info->index, info->description,
-      caps, info->name, GST_PULSE_DEVICE_TYPE_SOURCE);
+      caps, info->name, GST_PULSE_DEVICE_TYPE_SOURCE, props);
 }
 
 static GstDevice *
 new_sink (const pa_sink_info * info)
 {
   GstCaps *caps;
+  GstStructure *props;
   guint i;
 
   caps = gst_caps_new_empty ();
@@ -211,8 +215,10 @@ new_sink (const pa_sink_info * info)
   for (i = 0; i < info->n_formats; i++)
     gst_caps_append (caps, gst_pulse_format_info_to_caps (info->formats[i]));
 
+  props = gst_pulse_make_structure (info->proplist);
+
   return gst_pulse_device_new (info->index, info->description,
-      caps, info->name, GST_PULSE_DEVICE_TYPE_SINK);
+      caps, info->name, GST_PULSE_DEVICE_TYPE_SINK, props);
 }
 
 static void
@@ -603,7 +609,8 @@ gst_pulse_device_reconfigure_element (GstDevice * device, GstElement * element)
 
 static GstDevice *
 gst_pulse_device_new (guint device_index, const gchar * device_name,
-    GstCaps * caps, const gchar * internal_name, GstPulseDeviceType type)
+    GstCaps * caps, const gchar * internal_name, GstPulseDeviceType type,
+    GstStructure * props)
 {
   GstPulseDevice *gstdev;
   const gchar *element = NULL;
@@ -631,7 +638,7 @@ gst_pulse_device_new (guint device_index, const gchar * device_name,
 
   gstdev = g_object_new (GST_TYPE_PULSE_DEVICE,
       "display-name", device_name, "caps", caps, "device-class", klass,
-      "internal-name", internal_name, NULL);
+      "internal-name", internal_name, "properties", props, NULL);
 
   gstdev->type = type;
   gstdev->device_index = device_index;
diff --git a/ext/pulse/pulseutil.c b/ext/pulse/pulseutil.c
index 7bbc70b266cbe1530b95c6569da1296ff8aab451..83aa4b640709c799343f90f181940df516b52170 100644
--- a/ext/pulse/pulseutil.c
+++ b/ext/pulse/pulseutil.c
@@ -376,6 +376,28 @@ gst_pulse_make_proplist (const GstStructure * properties)
   return proplist;
 }
 
+GstStructure *
+gst_pulse_make_structure (pa_proplist * properties)
+{
+  GstStructure *str;
+  void *state = NULL;
+
+  str = gst_structure_new_empty ("pulse-proplist");
+
+  while (TRUE) {
+    const char *key, *val;
+
+    key = pa_proplist_iterate (properties, &state);
+    if (key == NULL)
+      break;
+
+    val = pa_proplist_gets (properties, key);
+
+    gst_structure_set (str, key, G_TYPE_STRING, val, NULL);
+  }
+  return str;
+}
+
 static gboolean
 gst_pulse_format_info_int_prop_to_value (pa_format_info * format,
     const char *key, GValue * value)
diff --git a/ext/pulse/pulseutil.h b/ext/pulse/pulseutil.h
index 3b7293f0ee2427de5b007bf70c8e78035b084c02..152c42d1273d2c982a55a0aaede542d8751416d8 100644
--- a/ext/pulse/pulseutil.h
+++ b/ext/pulse/pulseutil.h
@@ -87,6 +87,7 @@ GstAudioRingBufferSpec *gst_pulse_channel_map_to_gst (const pa_channel_map * map
 void gst_pulse_cvolume_from_linear (pa_cvolume *v, unsigned channels, gdouble volume);
 
 pa_proplist *gst_pulse_make_proplist (const GstStructure *properties);
+GstStructure *gst_pulse_make_structure (pa_proplist *properties);
 
 GstCaps * gst_pulse_format_info_to_caps (pa_format_info * format);
 
diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in
index 26cafdaf07430bfb17f5440e86cec9ef8bdb0454..24c49eb02c6b146a598ccc44353b14d8a19ba69d 100644
--- a/ext/raw1394/Makefile.in
+++ b/ext/raw1394/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/raw1394
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(am__noinst_HEADERS_DIST)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__noinst_HEADERS_DIST) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -599,7 +610,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/raw1394/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/raw1394/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -940,6 +950,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in
index 74cc40fc3af11d28dc5f9a3da773d42955ce0bdf..f77699d170ec4aadffe2a903dc0d02b5f0b90c45 100644
--- a/ext/shout2/Makefile.in
+++ b/ext/shout2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/shout2
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/shout2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/shout2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in
index 28c75c64153bff5130fdb76c9cf01afb22805f03..8f20d782f4d7d81bc5967ad0f30b52f9adc31122 100644
--- a/ext/soup/Makefile.in
+++ b/ext/soup/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/soup
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -580,7 +591,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/soup/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/soup/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -913,6 +923,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 962ecb1c044016b813a2605be351850f280ec62b..d9ae2e781a01bc7447d7fd8080417f185ca274d8 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -123,7 +123,8 @@ enum
   PROP_SSL_CA_FILE,
   PROP_SSL_USE_SYSTEM_CA_FILE,
   PROP_TLS_DATABASE,
-  PROP_RETRIES
+  PROP_RETRIES,
+  PROP_METHOD
 };
 
 #define DEFAULT_USER_AGENT           "GStreamer souphttpsrc "
@@ -137,6 +138,7 @@ enum
 #define DEFAULT_TLS_DATABASE         NULL
 #define DEFAULT_TIMEOUT              15
 #define DEFAULT_RETRIES              3
+#define DEFAULT_SOUP_METHOD          NULL
 
 static void gst_soup_http_src_uri_handler_init (gpointer g_iface,
     gpointer iface_data);
@@ -391,6 +393,18 @@ gst_soup_http_src_class_init (GstSoupHTTPSrcClass * klass)
           G_MAXINT, DEFAULT_RETRIES,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+ /**
+   * GstSoupHTTPSrc::method
+   *
+   * The HTTP method to use when making a request
+   *
+   * Since: 1.6
+   */
+  g_object_class_install_property (gobject_class, PROP_METHOD,
+      g_param_spec_string ("method", "HTTP method",
+          "The HTTP method to use (GET, HEAD, OPTIONS, etc)",
+          DEFAULT_SOUP_METHOD, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&srctemplate));
 
@@ -471,8 +485,9 @@ gst_soup_http_src_init (GstSoupHTTPSrc * src)
   src->ssl_use_system_ca_file = DEFAULT_SSL_USE_SYSTEM_CA_FILE;
   src->tls_database = DEFAULT_TLS_DATABASE;
   src->max_retries = DEFAULT_RETRIES;
+  src->method = DEFAULT_SOUP_METHOD;
   proxy = g_getenv ("http_proxy");
-  if (proxy && !gst_soup_http_src_set_proxy (src, proxy)) {
+  if (!gst_soup_http_src_set_proxy (src, proxy)) {
     GST_WARNING_OBJECT (src,
         "The proxy in the http_proxy env var (\"%s\") cannot be parsed.",
         proxy);
@@ -527,6 +542,7 @@ gst_soup_http_src_finalize (GObject * gobject)
 
   if (src->tls_database)
     g_object_unref (src->tls_database);
+  g_free (src->method);
 
   G_OBJECT_CLASS (parent_class)->finalize (gobject);
 }
@@ -570,11 +586,6 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id,
       const gchar *proxy;
 
       proxy = g_value_get_string (value);
-
-      if (proxy == NULL) {
-        GST_WARNING ("proxy property cannot be NULL");
-        goto done;
-      }
       if (!gst_soup_http_src_set_proxy (src, proxy)) {
         GST_WARNING ("badly formatted proxy URI");
         goto done;
@@ -647,6 +658,10 @@ gst_soup_http_src_set_property (GObject * object, guint prop_id,
     case PROP_RETRIES:
       src->max_retries = g_value_get_int (value);
       break;
+    case PROP_METHOD:
+      g_free (src->method);
+      src->method = g_value_dup_string (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -732,6 +747,9 @@ gst_soup_http_src_get_property (GObject * object, guint prop_id,
     case PROP_RETRIES:
       g_value_set_int (value, src->max_retries);
       break;
+    case PROP_METHOD:
+      g_value_set_string (value, src->method);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1545,7 +1563,7 @@ gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src)
           src->ret = GST_FLOW_CUSTOM_ERROR;
         } else {
           SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ,
-              _("A network error occured, or the server closed the connection "
+              _("A network error occurred, or the server closed the connection "
                   "unexpectedly."));
           src->ret = GST_FLOW_ERROR;
         }
@@ -1771,7 +1789,9 @@ gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
 
   g_mutex_lock (&src->mutex);
   *outbuf = NULL;
-  ret = gst_soup_http_src_do_request (src, SOUP_METHOD_GET, outbuf);
+  ret =
+      gst_soup_http_src_do_request (src,
+      src->method ? src->method : SOUP_METHOD_GET, outbuf);
   http_headers_event = src->http_headers_event;
   src->http_headers_event = NULL;
   g_mutex_unlock (&src->mutex);
@@ -2039,6 +2059,10 @@ gst_soup_http_src_set_proxy (GstSoupHTTPSrc * src, const gchar * uri)
     soup_uri_free (src->proxy);
     src->proxy = NULL;
   }
+
+  if (uri == NULL || *uri == '\0')
+    return TRUE;
+
   if (g_str_has_prefix (uri, "http://")) {
     src->proxy = soup_uri_new (uri);
   } else {
@@ -2048,7 +2072,7 @@ gst_soup_http_src_set_proxy (GstSoupHTTPSrc * src, const gchar * uri)
     g_free (new_uri);
   }
 
-  return TRUE;
+  return (src->proxy != NULL);
 }
 
 static guint
diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h
index 163de3d4abd31df2d55f0438e11ad5726ae9df49..ef9539cc7f5a2a1b7f16121ce7621a84cd64fc84 100644
--- a/ext/soup/gstsouphttpsrc.h
+++ b/ext/soup/gstsouphttpsrc.h
@@ -71,6 +71,7 @@ struct _GstSoupHTTPSrc {
   gboolean retry;              /* Should attempt to reconnect. */
   gint retry_count;            /* Number of retries since we received data */
   gint max_retries;            /* Maximum number of retries */
+  gchar *method;               /* HTTP method */
 
   gboolean got_headers;        /* Already received headers from the server */
   gboolean have_size;          /* Received and parsed Content-Length
diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in
index c201d24a13bd1f54c02dad580f28c228f00b4083..825d96f43f94b3aef2d4d5862fe1ae0433756305 100644
--- a/ext/speex/Makefile.in
+++ b/ext/speex/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/speex
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -585,7 +596,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/speex/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/speex/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -910,6 +920,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index 587255d7baa8b37ca4b18bc10d0519f81ef4c1dd..daceaeea4f8552536980bada6dbf1dac8f291313 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -156,6 +156,9 @@ static void
 gst_speex_dec_init (GstSpeexDec * dec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 
   dec->enh = DEFAULT_ENH;
 
diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c
index 79b3cb3ac760b4e0309cdaf3702216a09eb7f5b7..31712b68789570143826793eb8e9b492dee160bd 100644
--- a/ext/speex/gstspeexenc.c
+++ b/ext/speex/gstspeexenc.c
@@ -242,6 +242,7 @@ gst_speex_enc_init (GstSpeexEnc * enc)
   /* arrange granulepos marking (and required perfect ts) */
   gst_audio_encoder_set_mark_granule (benc, TRUE);
   gst_audio_encoder_set_perfect_timestamp (benc, TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
 }
 
 static gboolean
diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in
index b5e0a8cd24f0698f8862dd49250691f1819c3557..2a61572283454df0f259c72af71d93897bc0f9fa 100644
--- a/ext/taglib/Makefile.in
+++ b/ext/taglib/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/taglib
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -244,6 +254,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -604,7 +615,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/taglib/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/taglib/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -953,6 +963,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in
index fc4ff9efbcad8cb6553dd9b9d3b30174ec0f21a1..38800bedc1f5fce510d4a45005b02470164be390 100644
--- a/ext/vpx/Makefile.in
+++ b/ext/vpx/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/vpx
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -605,7 +616,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/vpx/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/vpx/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -975,6 +985,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/vpx/gstvp8dec.c b/ext/vpx/gstvp8dec.c
index 4b05f9969708e9966543b259bc414d51a4ada7f2..c86cc4c9d5881b4a8cb4c9eafd873f83762642dd 100644
--- a/ext/vpx/gstvp8dec.c
+++ b/ext/vpx/gstvp8dec.c
@@ -207,6 +207,8 @@ gst_vp8_dec_init (GstVP8Dec * gst_vp8_dec)
   gst_vp8_dec->noise_level = DEFAULT_NOISE_LEVEL;
 
   gst_video_decoder_set_needs_format (decoder, TRUE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (decoder, TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (decoder));
 }
 
 static void
diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c
index 364bfa3fe767c8c63abc62dd96d1908ba936b0a7..a53819266a46ef70560c51c041eb05e18e3e4192 100644
--- a/ext/vpx/gstvp8enc.c
+++ b/ext/vpx/gstvp8enc.c
@@ -557,7 +557,9 @@ gst_vp8_enc_class_init (GstVP8EncClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_MULTIPASS_CACHE_FILE,
       g_param_spec_string ("multipass-cache-file", "Multipass Cache File",
-          "Multipass cache file",
+          "Multipass cache file. "
+          "If stream caps reinited, multiple files will be created: "
+          "file, file.1, file.2, ... and so on.",
           DEFAULT_MULTIPASS_CACHE_FILE,
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
@@ -724,6 +726,7 @@ gst_vp8_enc_init (GstVP8Enc * gst_vp8_enc)
   vpx_codec_err_t status;
 
   GST_DEBUG_OBJECT (gst_vp8_enc, "init");
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (gst_vp8_enc));
 
   status =
       vpx_codec_enc_config_default (&vpx_codec_vp8_cx_algo, &gst_vp8_enc->cfg,
@@ -759,7 +762,9 @@ gst_vp8_enc_init (GstVP8Enc * gst_vp8_enc)
   gst_vp8_enc->cfg.kf_mode = DEFAULT_KF_MODE;
   gst_vp8_enc->cfg.kf_max_dist = DEFAULT_KF_MAX_DIST;
   gst_vp8_enc->cfg.g_pass = DEFAULT_MULTIPASS_MODE;
-  gst_vp8_enc->multipass_cache_file = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE);
+  gst_vp8_enc->multipass_cache_prefix = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE);
+  gst_vp8_enc->multipass_cache_file = NULL;
+  gst_vp8_enc->multipass_cache_idx = 0;
   gst_vp8_enc->cfg.ts_number_layers = DEFAULT_TS_NUMBER_LAYERS;
   gst_vp8_enc->n_ts_target_bitrate = 0;
   gst_vp8_enc->n_ts_rate_decimator = 0;
@@ -801,8 +806,10 @@ gst_vp8_enc_finalize (GObject * object)
   g_return_if_fail (GST_IS_VP8_ENC (object));
   gst_vp8_enc = GST_VP8_ENC (object);
 
+  g_free (gst_vp8_enc->multipass_cache_prefix);
   g_free (gst_vp8_enc->multipass_cache_file);
-  gst_vp8_enc->multipass_cache_file = NULL;
+  gst_vp8_enc->multipass_cache_idx = 0;
+
 
   if (gst_vp8_enc->input_state)
     gst_video_codec_state_unref (gst_vp8_enc->input_state);
@@ -904,9 +911,9 @@ gst_vp8_enc_set_property (GObject * object, guint prop_id,
       global = TRUE;
       break;
     case PROP_MULTIPASS_CACHE_FILE:
-      if (gst_vp8_enc->multipass_cache_file)
-        g_free (gst_vp8_enc->multipass_cache_file);
-      gst_vp8_enc->multipass_cache_file = g_value_dup_string (value);
+      if (gst_vp8_enc->multipass_cache_prefix)
+        g_free (gst_vp8_enc->multipass_cache_prefix);
+      gst_vp8_enc->multipass_cache_prefix = g_value_dup_string (value);
       break;
     case PROP_TS_NUMBER_LAYERS:
       gst_vp8_enc->cfg.ts_number_layers = g_value_get_int (value);
@@ -1264,7 +1271,7 @@ gst_vp8_enc_get_property (GObject * object, guint prop_id, GValue * value,
       g_value_set_enum (value, gst_vp8_enc->cfg.g_pass);
       break;
     case PROP_MULTIPASS_CACHE_FILE:
-      g_value_set_string (value, gst_vp8_enc->multipass_cache_file);
+      g_value_set_string (value, gst_vp8_enc->multipass_cache_prefix);
       break;
     case PROP_TS_NUMBER_LAYERS:
       g_value_set_int (value, gst_vp8_enc->cfg.ts_number_layers);
@@ -1455,6 +1462,10 @@ gst_vp8_enc_stop (GstVideoEncoder * video_encoder)
 
   gst_tag_setter_reset_tags (GST_TAG_SETTER (encoder));
 
+  g_free (encoder->multipass_cache_file);
+  encoder->multipass_cache_file = NULL;
+  encoder->multipass_cache_idx = 0;
+
   return TRUE;
 }
 
@@ -1520,6 +1531,7 @@ gst_vp8_enc_set_format (GstVideoEncoder * video_encoder,
     g_mutex_lock (&encoder->encoder_lock);
     vpx_codec_destroy (&encoder->encoder);
     encoder->inited = FALSE;
+    encoder->multipass_cache_idx++;
   } else {
     g_mutex_lock (&encoder->encoder_lock);
   }
@@ -1550,20 +1562,34 @@ gst_vp8_enc_set_format (GstVideoEncoder * video_encoder,
     encoder->cfg.g_timebase.den = 90000;
   }
 
-  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
-    if (encoder->first_pass_cache_content == NULL) {
-      encoder->first_pass_cache_content = g_byte_array_sized_new (4096);
-    }
-  } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
-    GError *err = NULL;
-
-    if (!encoder->multipass_cache_file) {
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS ||
+      encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
+    if (!encoder->multipass_cache_prefix) {
       GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ,
           ("No multipass cache file provided"), (NULL));
       g_mutex_unlock (&encoder->encoder_lock);
       return FALSE;
     }
 
+    g_free (encoder->multipass_cache_file);
+
+    if (encoder->multipass_cache_idx > 0)
+      encoder->multipass_cache_file = g_strdup_printf ("%s.%u",
+          encoder->multipass_cache_prefix, encoder->multipass_cache_idx);
+    else
+      encoder->multipass_cache_file =
+          g_strdup (encoder->multipass_cache_prefix);
+  }
+
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
+    if (encoder->first_pass_cache_content != NULL)
+      g_byte_array_free (encoder->first_pass_cache_content, TRUE);
+
+    encoder->first_pass_cache_content = g_byte_array_sized_new (4096);
+
+  } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
+    GError *err = NULL;
+
     if (encoder->cfg.rc_twopass_stats_in.buf != NULL) {
       g_free (encoder->cfg.rc_twopass_stats_in.buf);
       encoder->cfg.rc_twopass_stats_in.buf = NULL;
diff --git a/ext/vpx/gstvp8enc.h b/ext/vpx/gstvp8enc.h
index d70f383a38b11267e43a45bcbbd503ec5c43d16e..3f04646481d5fb746ef5a7da8c7c621ae097a35f 100644
--- a/ext/vpx/gstvp8enc.h
+++ b/ext/vpx/gstvp8enc.h
@@ -73,6 +73,8 @@ struct _GstVP8Enc
   gint n_ts_layer_id;
   /* Global two-pass options */
   gchar *multipass_cache_file;
+  gchar *multipass_cache_prefix;
+  guint multipass_cache_idx;
   GByteArray *first_pass_cache_content;
 
   /* Encode parameter */
diff --git a/ext/vpx/gstvp9dec.c b/ext/vpx/gstvp9dec.c
index a11c848109ba259f14d59aea438aa49d4b4ee3a2..3de5a641257ac292492c28f0d83f4aa7c4d31db7 100644
--- a/ext/vpx/gstvp9dec.c
+++ b/ext/vpx/gstvp9dec.c
@@ -207,6 +207,8 @@ gst_vp9_dec_init (GstVP9Dec * gst_vp9_dec)
   gst_vp9_dec->noise_level = DEFAULT_NOISE_LEVEL;
 
   gst_video_decoder_set_needs_format (decoder, TRUE);
+  gst_video_decoder_set_use_default_pad_acceptcaps (decoder, TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_DECODER_SINK_PAD (decoder));
 }
 
 static void
diff --git a/ext/vpx/gstvp9enc.c b/ext/vpx/gstvp9enc.c
index 4f272b4bb2f3e3a35de447290cb606b98688d27c..e8e347f3fe10e095c2862efbb4720d8b59ebc7ae 100644
--- a/ext/vpx/gstvp9enc.c
+++ b/ext/vpx/gstvp9enc.c
@@ -529,7 +529,9 @@ gst_vp9_enc_class_init (GstVP9EncClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_MULTIPASS_CACHE_FILE,
       g_param_spec_string ("multipass-cache-file", "Multipass Cache File",
-          "Multipass cache file",
+          "Multipass cache file. "
+          "If stream caps reinited, multiple files will be created: "
+          "file, file.1, file.2, ... and so on.",
           DEFAULT_MULTIPASS_CACHE_FILE,
           (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
 
@@ -696,6 +698,7 @@ gst_vp9_enc_init (GstVP9Enc * gst_vp9_enc)
   vpx_codec_err_t status;
 
   GST_DEBUG_OBJECT (gst_vp9_enc, "init");
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (gst_vp9_enc));
 
   status =
       vpx_codec_enc_config_default (&vpx_codec_vp9_cx_algo, &gst_vp9_enc->cfg,
@@ -731,7 +734,9 @@ gst_vp9_enc_init (GstVP9Enc * gst_vp9_enc)
   gst_vp9_enc->cfg.kf_mode = DEFAULT_KF_MODE;
   gst_vp9_enc->cfg.kf_max_dist = DEFAULT_KF_MAX_DIST;
   gst_vp9_enc->cfg.g_pass = DEFAULT_MULTIPASS_MODE;
-  gst_vp9_enc->multipass_cache_file = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE);
+  gst_vp9_enc->multipass_cache_prefix = g_strdup (DEFAULT_MULTIPASS_CACHE_FILE);
+  gst_vp9_enc->multipass_cache_file = NULL;
+  gst_vp9_enc->multipass_cache_idx = 0;
   gst_vp9_enc->cfg.ts_number_layers = DEFAULT_TS_NUMBER_LAYERS;
   gst_vp9_enc->n_ts_target_bitrate = 0;
   gst_vp9_enc->n_ts_rate_decimator = 0;
@@ -773,8 +778,9 @@ gst_vp9_enc_finalize (GObject * object)
   g_return_if_fail (GST_IS_VP9_ENC (object));
   gst_vp9_enc = GST_VP9_ENC (object);
 
+  g_free (gst_vp9_enc->multipass_cache_prefix);
   g_free (gst_vp9_enc->multipass_cache_file);
-  gst_vp9_enc->multipass_cache_file = NULL;
+  gst_vp9_enc->multipass_cache_idx = 0;
 
   if (gst_vp9_enc->input_state)
     gst_video_codec_state_unref (gst_vp9_enc->input_state);
@@ -876,9 +882,9 @@ gst_vp9_enc_set_property (GObject * object, guint prop_id,
       global = TRUE;
       break;
     case PROP_MULTIPASS_CACHE_FILE:
-      if (gst_vp9_enc->multipass_cache_file)
-        g_free (gst_vp9_enc->multipass_cache_file);
-      gst_vp9_enc->multipass_cache_file = g_value_dup_string (value);
+      if (gst_vp9_enc->multipass_cache_prefix)
+        g_free (gst_vp9_enc->multipass_cache_prefix);
+      gst_vp9_enc->multipass_cache_prefix = g_value_dup_string (value);
       break;
     case PROP_TS_NUMBER_LAYERS:
       gst_vp9_enc->cfg.ts_number_layers = g_value_get_int (value);
@@ -1238,7 +1244,7 @@ gst_vp9_enc_get_property (GObject * object, guint prop_id, GValue * value,
       g_value_set_enum (value, gst_vp9_enc->cfg.g_pass);
       break;
     case PROP_MULTIPASS_CACHE_FILE:
-      g_value_set_string (value, gst_vp9_enc->multipass_cache_file);
+      g_value_set_string (value, gst_vp9_enc->multipass_cache_prefix);
       break;
     case PROP_TS_NUMBER_LAYERS:
       g_value_set_int (value, gst_vp9_enc->cfg.ts_number_layers);
@@ -1429,6 +1435,10 @@ gst_vp9_enc_stop (GstVideoEncoder * video_encoder)
 
   gst_tag_setter_reset_tags (GST_TAG_SETTER (encoder));
 
+  g_free (encoder->multipass_cache_file);
+  encoder->multipass_cache_file = NULL;
+  encoder->multipass_cache_idx = 0;
+
   return TRUE;
 }
 
@@ -1493,6 +1503,7 @@ gst_vp9_enc_set_format (GstVideoEncoder * video_encoder,
     g_mutex_lock (&encoder->encoder_lock);
     vpx_codec_destroy (&encoder->encoder);
     encoder->inited = FALSE;
+    encoder->multipass_cache_idx++;
   } else {
     g_mutex_lock (&encoder->encoder_lock);
   }
@@ -1523,20 +1534,34 @@ gst_vp9_enc_set_format (GstVideoEncoder * video_encoder,
     encoder->cfg.g_timebase.den = 90000;
   }
 
-  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
-    if (encoder->first_pass_cache_content == NULL) {
-      encoder->first_pass_cache_content = g_byte_array_sized_new (4096);
-    }
-  } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
-    GError *err = NULL;
-
-    if (!encoder->multipass_cache_file) {
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS ||
+      encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
+    if (!encoder->multipass_cache_prefix) {
       GST_ELEMENT_ERROR (encoder, RESOURCE, OPEN_READ,
           ("No multipass cache file provided"), (NULL));
       g_mutex_unlock (&encoder->encoder_lock);
       return FALSE;
     }
 
+    g_free (encoder->multipass_cache_file);
+
+    if (encoder->multipass_cache_idx > 0)
+      encoder->multipass_cache_file = g_strdup_printf ("%s.%u",
+          encoder->multipass_cache_prefix, encoder->multipass_cache_idx);
+    else
+      encoder->multipass_cache_file =
+          g_strdup (encoder->multipass_cache_prefix);
+  }
+
+  if (encoder->cfg.g_pass == VPX_RC_FIRST_PASS) {
+    if (encoder->first_pass_cache_content != NULL)
+      g_byte_array_free (encoder->first_pass_cache_content, TRUE);
+
+    encoder->first_pass_cache_content = g_byte_array_sized_new (4096);
+
+  } else if (encoder->cfg.g_pass == VPX_RC_LAST_PASS) {
+    GError *err = NULL;
+
     if (encoder->cfg.rc_twopass_stats_in.buf != NULL) {
       g_free (encoder->cfg.rc_twopass_stats_in.buf);
       encoder->cfg.rc_twopass_stats_in.buf = NULL;
diff --git a/ext/vpx/gstvp9enc.h b/ext/vpx/gstvp9enc.h
index 7851f1a32e6c9d4621c0a59b5a8eea15b9227268..e85a802f189b3b3b3396741fea5c751e3c9148b3 100644
--- a/ext/vpx/gstvp9enc.h
+++ b/ext/vpx/gstvp9enc.h
@@ -73,6 +73,8 @@ struct _GstVP9Enc
   gint n_ts_layer_id;
   /* Global two-pass options */
   gchar *multipass_cache_file;
+  gchar *multipass_cache_prefix;
+  guint multipass_cache_idx;
   GByteArray *first_pass_cache_content;
 
   /* Encode parameter */
diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in
index 035e5349e94ff5e24831f334a9a92f9df5239c87..25ad232cc8414bd1ad3cf027cf8288406d48ea5b 100644
--- a/ext/wavpack/Makefile.in
+++ b/ext/wavpack/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = ext/wavpack
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -592,7 +603,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/wavpack/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu ext/wavpack/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -933,6 +943,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c
index 9f9fd5363b6d8de9c0d866f1568dcb0f4dbd5927..f9393904887f96b51c3fe5e42c9971b990ae1a33 100644
--- a/ext/wavpack/gstwavpackdec.c
+++ b/ext/wavpack/gstwavpackdec.c
@@ -142,6 +142,9 @@ gst_wavpack_dec_init (GstWavpackDec * dec)
   dec->stream_reader = gst_wavpack_stream_reader_new ();
 
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (dec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (dec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (dec));
 
   gst_wavpack_dec_reset (dec);
 }
diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c
index 386524b406f7e6ff235c92e83677d4f60526a098..95a8e8f569736844ce343e5799a18d0a732e6fe0 100644
--- a/ext/wavpack/gstwavpackenc.c
+++ b/ext/wavpack/gstwavpackenc.c
@@ -345,6 +345,8 @@ gst_wavpack_enc_init (GstWavpackEnc * enc)
 
   /* require perfect ts */
   gst_audio_encoder_set_perfect_timestamp (benc, TRUE);
+
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (enc));
 }
 
 
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index a1b6e3c43064d7d1cc6c69b1870cd9b0f2b70896..2d8f4e231a4142789647c6da6e7e5f8cadcd6953 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.5.90</revision>
+   <branch>1.5</branch>
+   <name></name>
+   <created>2015-08-19</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.5.90.tar.xz" />
+  </Version>
+ </release>
+
  <release>
   <Version>
    <revision>1.5.2</revision>
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index 546c999de9b633d4242c60c9711c46c455abceb6..af7bb53e351e5b5b5e758a6747b0fa9b0fe194d6 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.5.2
+Version: 	1.5.90
 Release: 	1.gst
 Summary: 	GStreamer plug-ins with good code and licensing
 
diff --git a/gst/Makefile.in b/gst/Makefile.in
index bbb2b5375bc21b951b521249c03ef8d892eda009..7c191d4ebac79febdcf95fe3fea2a792831e86b4 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = gst
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -121,6 +129,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -179,6 +188,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -545,7 +556,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -554,7 +564,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -841,6 +851,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in
index 247ea977fc7ee2db69d3fb07acc95491b51eba02..582f95ab0c929bd09954c40141bc0b0623ea9ff3 100644
--- a/gst/alpha/Makefile.in
+++ b/gst/alpha/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/alpha
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -235,6 +245,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -595,7 +606,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/alpha/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/alpha/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -915,6 +925,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in
index 3039913fa3566696e7b7356d4a1f483e483de5f3..ca30f3b455ae9fe418f73963514e120aaa34efa4 100644
--- a/gst/apetag/Makefile.in
+++ b/gst/apetag/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/apetag
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -581,7 +592,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/apetag/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/apetag/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -890,6 +900,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in
index 56b6a2ebb590d7e09bb82ab5a90c729181d641b5..f49e8f512911efed139f4adf3d9416efc2c434bc 100644
--- a/gst/audiofx/Makefile.in
+++ b/gst/audiofx/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -40,7 +40,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -104,8 +114,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/audiofx
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -142,6 +150,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -269,6 +279,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -679,7 +691,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/audiofx/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/audiofx/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -688,7 +699,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
+$(top_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1124,6 +1135,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/audiofx/audioecho.c b/gst/audiofx/audioecho.c
index 42572aa3c4b2ee421c8c4d5312167a9305ae5aeb..769994bd71a8093d8387e4d22786f87a2223a1ab 100644
--- a/gst/audiofx/audioecho.c
+++ b/gst/audiofx/audioecho.c
@@ -200,6 +200,10 @@ gst_audio_echo_set_property (GObject * object, guint prop_id,
       } else {
         self->delay = delay;
         self->max_delay = MAX (delay, max_delay);
+        if (delay > max_delay) {
+          g_free (self->buffer);
+          self->buffer = NULL;
+        }
       }
       rate = GST_AUDIO_FILTER_RATE (self);
       if (rate > 0)
@@ -210,18 +214,18 @@ gst_audio_echo_set_property (GObject * object, guint prop_id,
       break;
     }
     case PROP_MAX_DELAY:{
-      guint64 max_delay, delay;
+      guint64 max_delay;
 
       g_mutex_lock (&self->lock);
       max_delay = g_value_get_uint64 (value);
-      delay = self->delay;
 
       if (GST_STATE (self) > GST_STATE_READY) {
         GST_ERROR_OBJECT (self, "Can't change maximum delay in"
             " PLAYING or PAUSED state");
       } else {
-        self->delay = delay;
         self->max_delay = max_delay;
+        g_free (self->buffer);
+        self->buffer = NULL;
       }
       g_mutex_unlock (&self->lock);
       break;
diff --git a/gst/audiofx/audioinvert.c b/gst/audiofx/audioinvert.c
index 7671db1b54c11a4e34c54a3d9bda284d5b8f65d3..a68dd10710bfae8be5c42394eefc1a7402cef4fe 100644
--- a/gst/audiofx/audioinvert.c
+++ b/gst/audiofx/audioinvert.c
@@ -29,9 +29,9 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 audiotestsrc wave=saw ! audioinvert invert=0.4 ! alsasink
- * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audioinvert invert=0.4 ! alsasink
- * gst-launch-1.0 audiotestsrc wave=saw ! audioconvert ! audioinvert invert=0.4 ! audioconvert ! alsasink
+ * gst-launch-1.0 audiotestsrc wave=saw ! audioinvert degree=0.4 ! alsasink
+ * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audioinvert degree=0.4 ! alsasink
+ * gst-launch-1.0 audiotestsrc wave=saw ! audioconvert ! audioinvert degree=0.4 ! audioconvert ! alsasink
  * ]|
  * </refsect2>
  */
diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c
index 3d5999a61ec741960fb1f94b6cb574718c162485..12d6aa0e882766f80a636140b53aa2cb4f33299f 100644
--- a/gst/audiofx/audiopanoramaorc-dist.c
+++ b/gst/audiofx/audiopanoramaorc-dist.c
@@ -264,7 +264,7 @@ audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2,
         195, 0, 4, 4, 2, 0,
       };
@@ -390,7 +390,7 @@ audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4,
         194, 0, 4, 4, 2, 0,
       };
@@ -502,7 +502,7 @@ audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4,
         21, 1, 79, 0, 4, 2, 0,
       };
@@ -614,7 +614,7 @@ audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8,
         21, 1, 112, 0, 4, 2, 0,
       };
@@ -842,7 +842,7 @@ audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17,
         4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202,
         34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@@ -1053,7 +1053,7 @@ audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17,
         4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194,
         0, 32, 33, 2, 0,
@@ -1355,7 +1355,7 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
         4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20,
         4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34,
@@ -1675,7 +1675,7 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4,
         4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4,
         21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32,
@@ -1945,7 +1945,7 @@ audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
         8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192,
         32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34,
@@ -2205,7 +2205,7 @@ audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8,
         8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32,
         4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32,
@@ -2433,7 +2433,7 @@ audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
         4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4,
         211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@@ -2655,7 +2655,7 @@ audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
         4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211,
         34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21,
@@ -2909,7 +2909,7 @@ audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
         4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153,
         32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34,
@@ -3168,7 +3168,7 @@ audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115,
-        49,
+            49,
         54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
         4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32,
         4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24,
@@ -3355,7 +3355,7 @@ audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
         8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33,
         4, 24, 194, 0, 32, 33, 2, 0,
@@ -3529,7 +3529,7 @@ audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
         8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33,
         4, 194, 0, 32, 33, 2, 0,
@@ -3725,7 +3725,7 @@ audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
         8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33,
         4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0,
@@ -3923,7 +3923,7 @@ audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
         109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102,
-        51,
+            51,
         50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
         8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4,
         202, 32, 32, 24, 194, 0, 32, 33, 2, 0,
diff --git a/gst/audiofx/audiowsincband.c b/gst/audiofx/audiowsincband.c
index 3cbad5d31b0efb06f2c4cb8169827ef60b4990a2..3a66d410d07016c37ec9955a7a3e1b432fefe319 100644
--- a/gst/audiofx/audiowsincband.c
+++ b/gst/audiofx/audiowsincband.c
@@ -45,7 +45,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiosincband mode=band-pass lower-frequency=3000 upper-frequency=10000 length=501 window=blackman ! audioconvert ! alsasink
+ * gst-launch-1.0 audiotestsrc freq=1500 ! audioconvert ! audiowsincband mode=band-pass lower-frequency=3000 upper-frequency=10000 length=501 window=blackman ! audioconvert ! alsasink
  * gst-launch-1.0 filesrc location="melo1.ogg" ! oggdemux ! vorbisdec ! audioconvert ! audiowsincband mode=band-reject lower-frequency=59 upper-frequency=61 length=10001 window=hamming ! audioconvert ! alsasink
  * gst-launch-1.0 audiotestsrc wave=white-noise ! audioconvert ! audiowsincband mode=band-pass lower-frequency=1000 upper-frequency=2000 length=31 ! audioconvert ! alsasink
  * ]|
diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in
index e7865e2e80c83909e07790a1fa4dd123a54d47e2..eb3a4daf293c6cbddcf377104c114715a052bdc4 100644
--- a/gst/audioparsers/Makefile.in
+++ b/gst/audioparsers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/audioparsers
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -595,7 +606,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/audioparsers/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/audioparsers/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -968,6 +978,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c
index 9a0b80e9ac30d51e21dd8136d90538672d490e3a..d0b95712962465e9cac379e13c4d8029c1248613 100644
--- a/gst/audioparsers/gstaacparse.c
+++ b/gst/audioparsers/gstaacparse.c
@@ -144,6 +144,7 @@ gst_aac_parse_init (GstAacParse * aacparse)
 {
   GST_DEBUG ("initialized");
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (aacparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (aacparse));
 }
 
 
@@ -1363,8 +1364,8 @@ gst_aac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (aacparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     aacparse->sent_codec_tag = TRUE;
diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c
index 4a6cd6d03cea6e146a0eaa2da3c900e60ca5f2a2..a7b2475a4e48ab0c01570203aa700d5c8cc9e040 100644
--- a/gst/audioparsers/gstac3parse.c
+++ b/gst/audioparsers/gstac3parse.c
@@ -224,6 +224,7 @@ gst_ac3_parse_init (GstAc3Parse * ac3parse)
   ac3parse->baseparse_chainfunc =
       GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (ac3parse))->chainfunc;
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (ac3parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (ac3parse));
 }
 
 static void
@@ -793,8 +794,8 @@ gst_ac3_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (ac3parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     ac3parse->sent_codec_tag = TRUE;
diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c
index 54e378ff3387c8dae7454621e150a74132555e21..b9501d5d86d6024c5e54a69cbeff2628405585b0 100644
--- a/gst/audioparsers/gstamrparse.c
+++ b/gst/audioparsers/gstamrparse.c
@@ -133,6 +133,7 @@ gst_amr_parse_init (GstAmrParse * amrparse)
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (amrparse), 62);
   GST_DEBUG ("initialized");
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (amrparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (amrparse));
 }
 
 
@@ -433,8 +434,8 @@ gst_amr_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (amrparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     amrparse->sent_codec_tag = TRUE;
diff --git a/gst/audioparsers/gstamrparse.h b/gst/audioparsers/gstamrparse.h
index 29bc868f04356c7c7fbb1924c2b672e4dce2b325..bba29c0e893768c920100620846ae3bc715948ad 100644
--- a/gst/audioparsers/gstamrparse.h
+++ b/gst/audioparsers/gstamrparse.h
@@ -49,11 +49,6 @@ typedef struct _GstAmrParseClass GstAmrParseClass;
  * @block_size: Pointer to frame size lookup table.
  * @need_header: Tells whether the MIME header should be read in the beginning.
  * @wide: Wideband mode.
- * @eos: Indicates the EOS situation. Set when EOS event is received.
- * @sync: Tells whether the parser is in sync.
- * @framecount: Total amount of frames handled.
- * @bytecount: Total amount of bytes handled.
- * @ts: Timestamp of the current media.
  *
  * The opaque GstAacParse data structure.
  */
diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c
index de7385665812d988335759941ba37d8d8e63a1ff..cfe97e1eb61ae49250015ad969f75c2875eeb7b6 100644
--- a/gst/audioparsers/gstdcaparse.c
+++ b/gst/audioparsers/gstdcaparse.c
@@ -139,6 +139,7 @@ gst_dca_parse_init (GstDcaParse * dcaparse)
       GST_BASE_PARSE_SINK_PAD (GST_BASE_PARSE (dcaparse))->chainfunc;
 
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (dcaparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (dcaparse));
 }
 
 static void
@@ -320,7 +321,6 @@ gst_dca_parse_handle_frame (GstBaseParse * parse,
   GstDcaParse *dcaparse = GST_DCA_PARSE (parse);
   GstBuffer *buf = frame->buffer;
   GstByteReader r;
-  gboolean parser_draining;
   gboolean parser_in_sync;
   gboolean terminator;
   guint32 sync = 0;
@@ -378,6 +378,12 @@ gst_dca_parse_handle_frame (GstBaseParse * parse,
 
   dcaparse->last_sync = sync;
 
+  /* FIXME: Don't look for a second syncword, there are streams out there
+   * that consistently contain garbage between every frame so we never ever
+   * find a second consecutive syncword.
+   * See https://bugzilla.gnome.org/show_bug.cgi?id=738237
+   */
+#if 0
   parser_draining = GST_BASE_PARSE_DRAINING (parse);
 
   if (!parser_in_sync && !parser_draining) {
@@ -408,6 +414,7 @@ gst_dca_parse_handle_frame (GstBaseParse * parse,
       goto cleanup;
     }
   }
+#endif
 
   /* found frame */
   ret = GST_FLOW_OK;
@@ -566,8 +573,8 @@ gst_dca_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (dcaparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     dcaparse->sent_codec_tag = TRUE;
diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c
index 154e133cea800b0c0de274baf6fdc7b02dd8e78f..6db5d59f5e6e54f717ba2fb1226f19e1bcecab35 100644
--- a/gst/audioparsers/gstflacparse.c
+++ b/gst/audioparsers/gstflacparse.c
@@ -258,6 +258,7 @@ gst_flac_parse_init (GstFlacParse * flacparse)
 {
   flacparse->check_frame_checksums = DEFAULT_CHECK_FRAME_CHECKSUMS;
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (flacparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (flacparse));
 }
 
 static void
@@ -1140,21 +1141,16 @@ gst_flac_parse_handle_picture (GstFlacParse * flacparse, GstBuffer * buffer)
   if (gst_byte_reader_get_pos (&reader) + img_len > map.size)
     goto error;
 
-  if (!flacparse->tags)
-    flacparse->tags = gst_tag_list_new_empty ();
-
   GST_INFO_OBJECT (flacparse, "Got image of %d bytes", img_len);
 
   if (img_len > 0) {
+    if (flacparse->tags == NULL)
+      flacparse->tags = gst_tag_list_new_empty ();
+
     gst_tag_list_add_id3_image (flacparse->tags,
         map.data + gst_byte_reader_get_pos (&reader), img_len, img_type);
   }
 
-  if (gst_tag_list_is_empty (flacparse->tags)) {
-    gst_tag_list_unref (flacparse->tags);
-    flacparse->tags = NULL;
-  }
-
   gst_buffer_unmap (buffer, &map);
   return TRUE;
 
@@ -1703,30 +1699,24 @@ gst_flac_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
   GstFlacParse *flacparse = GST_FLAC_PARSE (parse);
 
   if (!flacparse->sent_codec_tag) {
-    GstTagList *taglist;
     GstCaps *caps;
 
-    taglist = gst_tag_list_new_empty ();
+    if (flacparse->tags == NULL)
+      flacparse->tags = gst_tag_list_new_empty ();
 
     /* codec tag */
     caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
-    gst_pb_utils_add_codec_description_to_tag_list (taglist,
+    gst_pb_utils_add_codec_description_to_tag_list (flacparse->tags,
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse),
-        gst_event_new_tag (taglist));
+    /* Announce our pending tags */
+    gst_base_parse_merge_tags (parse, flacparse->tags, GST_TAG_MERGE_REPLACE);
 
     /* also signals the end of first-frame processing */
     flacparse->sent_codec_tag = TRUE;
   }
 
-  /* Push tags */
-  if (flacparse->tags) {
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse),
-        gst_event_new_tag (flacparse->tags));
-    flacparse->tags = NULL;
-  }
   /* Push toc */
   if (flacparse->toc) {
     gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (flacparse),
diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c
index 88d31bfe4dd98b982c6f1a46933e6b0623556084..51421cf68ba8c633d8f780f5a13ec0f2a97a2ea8 100644
--- a/gst/audioparsers/gstmpegaudioparse.c
+++ b/gst/audioparsers/gstmpegaudioparse.c
@@ -227,6 +227,7 @@ gst_mpeg_audio_parse_init (GstMpegAudioParse * mp3parse)
 {
   gst_mpeg_audio_parse_reset (mp3parse);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (mp3parse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (mp3parse));
 }
 
 static void
@@ -1320,45 +1321,16 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame)
 {
   GstMpegAudioParse *mp3parse = GST_MPEG_AUDIO_PARSE (parse);
-  GstTagList *taglist;
-
-  /* tag sending done late enough in hook to ensure pending events
-   * have already been sent */
-
-  if (!mp3parse->sent_codec_tag) {
-    GstCaps *caps;
-
-    taglist = gst_tag_list_new_empty ();
-
-    /* codec tag */
-    caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
-    gst_pb_utils_add_codec_description_to_tag_list (taglist,
-        GST_TAG_AUDIO_CODEC, caps);
-    gst_caps_unref (caps);
-
-    if (mp3parse->hdr_bitrate > 0 && mp3parse->xing_bitrate == 0 &&
-        mp3parse->vbri_bitrate == 0) {
-      /* We don't have a VBR bitrate, so post the available bitrate as
-       * nominal and let baseparse calculate the real bitrate */
-      gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
-          GST_TAG_NOMINAL_BITRATE, mp3parse->hdr_bitrate, NULL);
-    }
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp3parse),
-        gst_event_new_tag (taglist));
-
-    /* also signals the end of first-frame processing */
-    mp3parse->sent_codec_tag = TRUE;
-  }
+  GstTagList *taglist = NULL;
 
   /* we will create a taglist (if any of the parameters has changed)
    * to add the tags that changed */
-  taglist = NULL;
   if (mp3parse->last_posted_crc != mp3parse->last_crc) {
     gboolean using_crc;
 
-    if (!taglist) {
+    if (!taglist)
       taglist = gst_tag_list_new_empty ();
-    }
+
     mp3parse->last_posted_crc = mp3parse->last_crc;
     if (mp3parse->last_posted_crc == CRC_PROTECTED) {
       using_crc = TRUE;
@@ -1370,19 +1342,45 @@ gst_mpeg_audio_parse_pre_push_frame (GstBaseParse * parse,
   }
 
   if (mp3parse->last_posted_channel_mode != mp3parse->last_mode) {
-    if (!taglist) {
+    if (!taglist)
       taglist = gst_tag_list_new_empty ();
-    }
+
     mp3parse->last_posted_channel_mode = mp3parse->last_mode;
 
     gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_MODE,
         gst_mpeg_audio_channel_mode_get_nick (mp3parse->last_mode), NULL);
   }
 
-  /* if the taglist exists, we need to send it */
+  /* tag sending done late enough in hook to ensure pending events
+   * have already been sent */
+  if (taglist != NULL || !mp3parse->sent_codec_tag) {
+    GstCaps *caps;
+
+    if (taglist == NULL)
+      taglist = gst_tag_list_new_empty ();
+
+    /* codec tag */
+    caps = gst_pad_get_current_caps (GST_BASE_PARSE_SRC_PAD (parse));
+    gst_pb_utils_add_codec_description_to_tag_list (taglist,
+        GST_TAG_AUDIO_CODEC, caps);
+    gst_caps_unref (caps);
+
+    if (mp3parse->hdr_bitrate > 0 && mp3parse->xing_bitrate == 0 &&
+        mp3parse->vbri_bitrate == 0) {
+      /* We don't have a VBR bitrate, so post the available bitrate as
+       * nominal and let baseparse calculate the real bitrate */
+      gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE,
+          GST_TAG_NOMINAL_BITRATE, mp3parse->hdr_bitrate, NULL);
+    }
+
+    /* also signals the end of first-frame processing */
+    mp3parse->sent_codec_tag = TRUE;
+  }
+
+  /* if the taglist exists, we need to update it so it gets sent out */
   if (taglist) {
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (mp3parse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
   }
 
   /* usual clipping applies */
diff --git a/gst/audioparsers/gstsbcparse.c b/gst/audioparsers/gstsbcparse.c
index bda6d2ff2ad4630a62078fe6bb6d9267cce7931c..4412e2bd3b5a17257a0fcccb860146fe5e8af308 100644
--- a/gst/audioparsers/gstsbcparse.c
+++ b/gst/audioparsers/gstsbcparse.c
@@ -125,6 +125,7 @@ gst_sbc_parse_init (GstSbcParse * sbcparse)
 {
   gst_sbc_parse_reset (sbcparse);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (sbcparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (sbcparse));
 }
 
 static gboolean
@@ -514,8 +515,8 @@ gst_sbc_parse_pre_push_frame (GstBaseParse * parse, GstBaseParseFrame * frame)
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (sbcparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     sbcparse->sent_codec_tag = TRUE;
diff --git a/gst/audioparsers/gstwavpackparse.c b/gst/audioparsers/gstwavpackparse.c
index 9c613f96e69c755772cca8c8c29fb706c1d73936..05c57218b94783bb094d8abb5f55fe703c77a3f7 100644
--- a/gst/audioparsers/gstwavpackparse.c
+++ b/gst/audioparsers/gstwavpackparse.c
@@ -124,6 +124,7 @@ gst_wavpack_parse_init (GstWavpackParse * wvparse)
 {
   gst_wavpack_parse_reset (wvparse);
   GST_PAD_SET_ACCEPT_INTERSECT (GST_BASE_PARSE_SINK_PAD (wvparse));
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_BASE_PARSE_SINK_PAD (wvparse));
 }
 
 static void
@@ -686,8 +687,8 @@ gst_wavpack_parse_pre_push_frame (GstBaseParse * parse,
         GST_TAG_AUDIO_CODEC, caps);
     gst_caps_unref (caps);
 
-    gst_pad_push_event (GST_BASE_PARSE_SRC_PAD (wavpackparse),
-        gst_event_new_tag (taglist));
+    gst_base_parse_merge_tags (parse, taglist, GST_TAG_MERGE_REPLACE);
+    gst_tag_list_unref (taglist);
 
     /* also signals the end of first-frame processing */
     wavpackparse->sent_codec_tag = TRUE;
diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in
index e882474e4aa2da572f87233ef229731bfb1bcc98..a34b185d9b3e6a6bf520b8300d184a1ffdeab1a3 100644
--- a/gst/auparse/Makefile.in
+++ b/gst/auparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/auparse
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/auparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/auparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in
index 23118ccde1a5e887823cab1a8aa76a0510b5862e..fc9b3a480ff81dff16faa39924fa930f51ac31d9 100644
--- a/gst/autodetect/Makefile.in
+++ b/gst/autodetect/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/autodetect
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -588,7 +599,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/autodetect/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/autodetect/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -929,6 +939,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in
index 22a14a2b3c531545e989528048ee6271b65c814c..f9b2a3bfa9b46eb01a5c163b2d089b2bcd640948 100644
--- a/gst/avi/Makefile.in
+++ b/gst/avi/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/avi
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -593,7 +604,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/avi/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/avi/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -926,6 +936,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 7438a27a943ea66506c5c3eaab354bae83c19415..56916e725989ecd3fbdffb43510812a0f38470a2 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -666,7 +666,7 @@ gst_avi_demux_seek_streams (GstAviDemux * avi, guint64 offset, gboolean before)
 }
 #endif
 
-static guint
+static gint
 gst_avi_demux_index_entry_offset_search (GstAviIndexEntry * entry,
     guint64 * offset)
 {
@@ -4355,9 +4355,11 @@ no_index:
   }
 pull_range_failed:
   {
+    if (res == GST_FLOW_FLUSHING)
+      return res;
     GST_ELEMENT_ERROR (avi, STREAM, DEMUX, (NULL),
         ("pull_range flow reading header: %s", gst_flow_get_name (res)));
-    return GST_FLOW_ERROR;
+    return res;
   }
 }
 
@@ -5756,8 +5758,10 @@ gst_avi_demux_chain (GstPad * pad, GstObject * parent, GstBuffer * buf)
       GST_OBJECT_UNLOCK (avi);
 
       /* calculate and perform seek */
-      if (!avi_demux_handle_seek_push (avi, avi->sinkpad, event))
+      if (!avi_demux_handle_seek_push (avi, avi->sinkpad, event)) {
+        gst_event_unref (event);
         goto seek_failed;
+      }
 
       gst_event_unref (event);
       avi->state = GST_AVI_DEMUX_MOVI;
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index ae3d74d45f3dd87c4ccda7b626eb37ea30e8d2a2..2ef3d3e0d18e5b23a03e4f61d7b063ecaae44ed3 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -262,7 +262,7 @@ gst_avi_mux_class_init (GstAviMuxClass * klass)
   gst_element_class_set_static_metadata (gstelement_class, "Avi muxer",
       "Codec/Muxer",
       "Muxes audio and video into an avi stream",
-      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
+      "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 }
 
 /* reset pad to initial state
diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in
index 99cca3e77784d2a3206270b9da0b1557519b2c74..44fb3d4b0df0a60e1ef5bec306b502689ec97ebe 100644
--- a/gst/cutter/Makefile.in
+++ b/gst/cutter/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/cutter
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -573,7 +584,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/cutter/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/cutter/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -882,6 +892,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index adffb8977b22649b23edad2ba036fa68e6fd697b..163b971a21324a4c05cf55630b2ddfd3765469a3 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/debugutils
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -242,6 +252,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -622,7 +633,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/debugutils/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/debugutils/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1022,6 +1032,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in
index 926ab5d0de29ce053e366f6a09edcc81569ba54d..72366dd0792a71de646f55930eb124cbddab0cec 100644
--- a/gst/deinterlace/Makefile.in
+++ b/gst/deinterlace/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,8 +112,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS)
 subdir = gst/deinterlace
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -140,6 +148,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -265,6 +275,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -667,7 +679,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/deinterlace/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/deinterlace/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -676,7 +687,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
+$(top_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1111,6 +1122,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c
index f0e0f317e5c559abc670430de27f6cfc5e640fd4..0c46a4229f62e26385ad29be5b075de25677698e 100644
--- a/gst/deinterlace/gstdeinterlace.c
+++ b/gst/deinterlace/gstdeinterlace.c
@@ -29,7 +29,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 -v filesrc location=/path/to/file ! decodebin2 ! videoconvert ! deinterlace ! videoconvert ! autovideosink
+ * gst-launch-1.0 -v filesrc location=/path/to/file ! decodebin ! videoconvert ! deinterlace ! videoconvert ! autovideosink
  * ]| This pipeline deinterlaces a video file with the default deinterlacing options.
  * </refsect2>
  */
@@ -1500,9 +1500,7 @@ gst_deinterlace_output_frame (GstDeinterlace * self, gboolean flushing)
 
 restart:
   ret = GST_FLOW_OK;
-  fields_required = 0;
   hl_no_lock = FALSE;
-  same_buffer = FALSE;
   flush_one = FALSE;
   self->need_more = FALSE;
   phase = self->pattern_phase;
diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c
index 9ac33461deb5ef33f5ad689f229d9f1be24ca001..d92ce306fa975c1b3695bfdbe111edc1fb3a51e5 100644
--- a/gst/deinterlace/tvtime-dist.c
+++ b/gst/deinterlace/tvtime-dist.c
@@ -713,7 +713,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
       static const orc_uint8 bc[] = {
         1, 9, 29, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
         105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 98, 108, 101, 110,
-        100,
+            100,
         11, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 14, 2, 2, 0,
         0, 0, 20, 2, 20, 2, 20, 2, 150, 32, 4, 150, 33, 5, 150, 34,
         6, 70, 32, 32, 33, 70, 34, 34, 34, 70, 32, 32, 34, 70, 32, 32,
diff --git a/gst/dtmf/Makefile.in b/gst/dtmf/Makefile.in
index 7af3f463d01eee4cf255e8a6b41702a6b078bbad..3727cd767b6b4e0de9322120d84f51f8c9a4886d 100644
--- a/gst/dtmf/Makefile.in
+++ b/gst/dtmf/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/dtmf
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -585,7 +596,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/dtmf/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/dtmf/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -918,6 +928,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in
index 2b26f90fc985096396a583d8ae1cecd5f7ade1b9..9367b66769fd59db4600e18198e8826e2784cbdf 100644
--- a/gst/effectv/Makefile.in
+++ b/gst/effectv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/effectv
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -597,7 +608,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/effectv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/effectv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1002,6 +1012,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in
index c8a10f0d9b917cd4044836324371a1bbeba669fd..40b68d28b79c8ef5ad22c84c4e6df423dbf7439e 100644
--- a/gst/equalizer/Makefile.in
+++ b/gst/equalizer/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/equalizer
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -591,7 +602,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/equalizer/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/equalizer/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -945,6 +955,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in
index 84b4254d563c5fdebc2ef668e120f623ad44a4d4..daeb7dbafae94af07c7f471f75355491dc47fd6c 100644
--- a/gst/flv/Makefile.in
+++ b/gst/flv/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/flv
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -577,7 +588,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/flv/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/flv/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -894,6 +904,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index 3658844a42d09604466b943788d58e8113a36ba4..22bc40b8c3354818ae1f0a52c380eee58e2ff1d5 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -2617,7 +2617,7 @@ pause:
         demux->no_more_pads = TRUE;
       }
 
-      if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+      if (demux->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
         gint64 stop;
 
         /* for segment playback we need to post when (in stream time)
@@ -2668,7 +2668,8 @@ pause:
 }
 
 static guint64
-gst_flv_demux_find_offset (GstFlvDemux * demux, GstSegment * segment)
+gst_flv_demux_find_offset (GstFlvDemux * demux, GstSegment * segment,
+    GstSeekFlags seek_flags)
 {
   gint64 bytes = 0;
   gint64 time = 0;
@@ -2684,8 +2685,9 @@ gst_flv_demux_find_offset (GstFlvDemux * demux, GstSegment * segment)
   if (index) {
     /* Let's check if we have an index entry for that seek time */
     entry = gst_index_get_assoc_entry (index, demux->index_id,
-        GST_INDEX_LOOKUP_BEFORE, GST_ASSOCIATION_FLAG_KEY_UNIT,
-        GST_FORMAT_TIME, time);
+        seek_flags & GST_SEEK_FLAG_SNAP_AFTER ?
+        GST_INDEX_LOOKUP_AFTER : GST_INDEX_LOOKUP_BEFORE,
+        GST_ASSOCIATION_FLAG_KEY_UNIT, GST_FORMAT_TIME, time);
 
     if (entry) {
       gst_index_entry_assoc_map (entry, GST_FORMAT_BYTES, &bytes);
@@ -2696,11 +2698,9 @@ gst_flv_demux_find_offset (GstFlvDemux * demux, GstSegment * segment)
           GST_TIME_ARGS (segment->position), GST_TIME_ARGS (time), bytes);
 
       /* Key frame seeking */
-      if (segment->flags & GST_SEEK_FLAG_KEY_UNIT) {
+      if (seek_flags & GST_SEEK_FLAG_KEY_UNIT) {
         /* Adjust the segment so that the keyframe fits in */
-        if (time < segment->start) {
-          segment->start = segment->time = time;
-        }
+        segment->start = segment->time = time;
         segment->position = time;
       }
     } else {
@@ -2732,7 +2732,6 @@ flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event)
     goto wrong_format;
 
   flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
-  /* FIXME : the keyframe flag is never used ! */
 
   /* Work on a copy until we are sure the seek succeeded. */
   memcpy (&seeksegment, &demux->segment, sizeof (GstSegment));
@@ -2749,13 +2748,13 @@ flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event)
 
   if (flush || seeksegment.position != demux->segment.position) {
     /* Do the actual seeking */
-    guint64 offset = gst_flv_demux_find_offset (demux, &seeksegment);
+    guint64 offset = gst_flv_demux_find_offset (demux, &seeksegment, flags);
 
     GST_DEBUG_OBJECT (demux, "generating an upstream seek at position %"
         G_GUINT64_FORMAT, offset);
     ret = gst_pad_push_event (demux->sinkpad,
         gst_event_new_seek (seeksegment.rate, GST_FORMAT_BYTES,
-            seeksegment.flags | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET,
+            flags | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET,
             offset, GST_SEEK_TYPE_NONE, 0));
     if (G_UNLIKELY (!ret)) {
       GST_WARNING_OBJECT (demux, "upstream seek failed");
@@ -2782,6 +2781,11 @@ flv_demux_handle_seek_push (GstFlvDemux * demux, GstEvent * event)
       gst_event_unref (demux->new_seg_event);
       demux->new_seg_event = NULL;
     }
+    GST_DEBUG_OBJECT (demux, "preparing newsegment from %"
+        GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (demux->segment.start),
+        GST_TIME_ARGS (demux->segment.stop));
+    demux->new_seg_event = gst_event_new_segment (&demux->segment);
     gst_event_unref (event);
   } else {
     ret = gst_pad_push_event (demux->sinkpad, event);
@@ -2894,7 +2898,6 @@ gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, GstEvent * event,
   GST_OBJECT_UNLOCK (demux);
 
   flush = ! !(flags & GST_SEEK_FLAG_FLUSH);
-  /* FIXME : the keyframe flag is never used */
 
   if (flush) {
     /* Flush start up and downstream to make sure data flow and loops are
@@ -2949,9 +2952,10 @@ gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, GstEvent * event,
       ret = TRUE;
       goto exit;
     }
+
     /* now index should be as reliable as it can be for current purpose */
     gst_flv_demux_move_to_offset (demux,
-        gst_flv_demux_find_offset (demux, &seeksegment), TRUE);
+        gst_flv_demux_find_offset (demux, &seeksegment, flags), TRUE);
     ret = TRUE;
   } else {
     ret = TRUE;
@@ -2967,7 +2971,7 @@ gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, GstEvent * event,
     memcpy (&demux->segment, &seeksegment, sizeof (GstSegment));
 
     /* Notify about the start of a new segment */
-    if (demux->segment.flags & GST_SEEK_FLAG_SEGMENT) {
+    if (demux->segment.flags & GST_SEGMENT_FLAG_SEGMENT) {
       gst_element_post_message (GST_ELEMENT (demux),
           gst_message_new_segment_start (GST_OBJECT (demux),
               demux->segment.format, demux->segment.position));
@@ -2983,15 +2987,11 @@ gst_flv_demux_handle_seek_pull (GstFlvDemux * demux, GstEvent * event,
       gst_event_unref (demux->new_seg_event);
       demux->new_seg_event = NULL;
     }
-    if (demux->segment.rate < 0.0) {
-      /* we can't generate a segment by locking on
-       * to the first timestamp we see */
-      GST_DEBUG_OBJECT (demux, "preparing newsegment from %"
-          GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
-          GST_TIME_ARGS (demux->segment.start),
-          GST_TIME_ARGS (demux->segment.stop));
-      demux->new_seg_event = gst_event_new_segment (&demux->segment);
-    }
+    GST_DEBUG_OBJECT (demux, "preparing newsegment from %"
+        GST_TIME_FORMAT " to %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (demux->segment.start),
+        GST_TIME_ARGS (demux->segment.stop));
+    demux->new_seg_event = gst_event_new_segment (&demux->segment);
   }
 
 exit:
diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in
index 5137bfa0b09bb30082f98efdbfa6730da129fbf5..e0f2edfaf885c5b0b48382012b231705c0f81af6 100644
--- a/gst/flx/Makefile.in
+++ b/gst/flx/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/flx
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -573,7 +584,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/flx/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/flx/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -890,6 +900,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in
index 705446a4c79376a4457ee6cb17897cee7c61db57..f120fac1bb1b23c406773b65915c91fd75b18a04 100644
--- a/gst/goom/Makefile.in
+++ b/gst/goom/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -80,8 +90,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/goom
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -117,6 +125,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -245,6 +254,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -621,7 +631,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/goom/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/goom/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1082,6 +1091,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 .NOTPARALLEL:
 
diff --git a/gst/goom/goom_core.c b/gst/goom/goom_core.c
index 90b8c6fb3ff3a9c1dc4d38e7e5fcdf313c4430f5..5b1d4f76c84be50253b906531fc1ca0f7d5e7289 100644
--- a/gst/goom/goom_core.c
+++ b/gst/goom/goom_core.c
@@ -673,7 +673,7 @@ goom_update (PluginInfo * goomInfo, gint16 data[2][512], int forceMode,
    */
   if ((goomInfo->update.stop_lines & 0xf000)
       || (!goomInfo->curGState->drawScope)) {
-    float param1, param2, amplitude;
+    float param1 = 0, param2 = 0, amplitude;
     int couleur;
     int mode;
 
diff --git a/gst/goom/gstaudiovisualizer.c b/gst/goom/gstaudiovisualizer.c
index 3e8f3c3ef5b8213014d41affaa15b569c7f423d5..e643de49aaf81f4da15f1d4d8ccb60403448a92e 100644
--- a/gst/goom/gstaudiovisualizer.c
+++ b/gst/goom/gstaudiovisualizer.c
@@ -543,7 +543,7 @@ gst_audio_visualizer_change_shader (GstAudioVisualizer * scope)
 /* class */
 
 GType
-gst_audio_visualizer_get_type (void)
+goom_gst_audio_visualizer_get_type (void)
 {
   static volatile gsize audio_visualizer_type = 0;
 
diff --git a/gst/goom/gstaudiovisualizer.h b/gst/goom/gstaudiovisualizer.h
index 0fdb1fa3dbe7a89fb9cf9f7851e552c92f94827e..ea8444b618a98d701754fad50b1e4ff48b43a646 100644
--- a/gst/goom/gstaudiovisualizer.h
+++ b/gst/goom/gstaudiovisualizer.h
@@ -30,7 +30,7 @@
 #include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_AUDIO_VISUALIZER            (gst_audio_visualizer_get_type())
+#define GST_TYPE_AUDIO_VISUALIZER            (goom_gst_audio_visualizer_get_type())
 #define GST_AUDIO_VISUALIZER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizer))
 #define GST_AUDIO_VISUALIZER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
 #define GST_AUDIO_VISUALIZER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
@@ -99,7 +99,7 @@ struct _GstAudioVisualizerClass
   gboolean (*decide_allocation)   (GstAudioVisualizer * scope, GstQuery *query);
 };
 
-GType gst_audio_visualizer_get_type (void);
+GType goom_gst_audio_visualizer_get_type (void);
 
 G_END_DECLS
 #endif /* __GST_AUDIO_VISUALIZER_H__ */
diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in
index 450bc1fd94a58c8542a658ebe5b339ac9973aaa0..c6df17871eae5ddb00adcb9b36c1c32eeda68180 100644
--- a/gst/goom2k1/Makefile.in
+++ b/gst/goom2k1/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/goom2k1
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -597,7 +608,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/goom2k1/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/goom2k1/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -946,6 +956,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/goom2k1/gstaudiovisualizer.c b/gst/goom2k1/gstaudiovisualizer.c
index 66b03b611fff1aedcded9ba08a5520d652987300..fbd298d44718a9eb4b3d71c8100c3cf0134316ed 100644
--- a/gst/goom2k1/gstaudiovisualizer.c
+++ b/gst/goom2k1/gstaudiovisualizer.c
@@ -543,7 +543,7 @@ gst_audio_visualizer_change_shader (GstAudioVisualizer * scope)
 /* class */
 
 GType
-gst_audio_visualizer_get_type (void)
+goom2k1_gst_audio_visualizer_get_type (void)
 {
   static volatile gsize audio_visualizer_type = 0;
 
diff --git a/gst/goom2k1/gstaudiovisualizer.h b/gst/goom2k1/gstaudiovisualizer.h
index 0fdb1fa3dbe7a89fb9cf9f7851e552c92f94827e..9a618ab645f7ea440bc86653ab97f63e86ddf948 100644
--- a/gst/goom2k1/gstaudiovisualizer.h
+++ b/gst/goom2k1/gstaudiovisualizer.h
@@ -30,7 +30,7 @@
 #include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
-#define GST_TYPE_AUDIO_VISUALIZER            (gst_audio_visualizer_get_type())
+#define GST_TYPE_AUDIO_VISUALIZER            (goom2k1_gst_audio_visualizer_get_type())
 #define GST_AUDIO_VISUALIZER(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizer))
 #define GST_AUDIO_VISUALIZER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
 #define GST_AUDIO_VISUALIZER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj),GST_TYPE_AUDIO_VISUALIZER,GstAudioVisualizerClass))
@@ -99,7 +99,7 @@ struct _GstAudioVisualizerClass
   gboolean (*decide_allocation)   (GstAudioVisualizer * scope, GstQuery *query);
 };
 
-GType gst_audio_visualizer_get_type (void);
+GType goom2k1_gst_audio_visualizer_get_type (void);
 
 G_END_DECLS
 #endif /* __GST_AUDIO_VISUALIZER_H__ */
diff --git a/gst/goom2k1/gstgoom.c b/gst/goom2k1/gstgoom.c
index b22c8a7389d98c09a55f254335cae34e15f8f207..2f10db18df898be9f49c7e4ea267614c4584b90d 100644
--- a/gst/goom2k1/gstgoom.c
+++ b/gst/goom2k1/gstgoom.c
@@ -43,8 +43,8 @@
 #include "gstgoom.h"
 #include "goom_core.h"
 
-GST_DEBUG_CATEGORY_STATIC (goom_debug);
-#define GST_CAT_DEFAULT goom_debug
+GST_DEBUG_CATEGORY_STATIC (goom2k1_debug);
+#define GST_CAT_DEFAULT goom2k1_debug
 
 #define DEFAULT_WIDTH  320
 #define DEFAULT_HEIGHT 240
@@ -76,19 +76,17 @@ static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
         "channel-mask = (bitmask) 0x3, " "layout = (string) interleaved")
     );
 
-static void gst_goom_finalize (GObject * object);
+static void gst_goom2k1_finalize (GObject * object);
 
-static gboolean gst_goom_setup (GstAudioVisualizer * base);
-static gboolean gst_goom_render (GstAudioVisualizer * base, GstBuffer * audio,
-    GstVideoFrame * video);
+static gboolean gst_goom2k1_setup (GstAudioVisualizer * base);
+static gboolean gst_goom2k1_render (GstAudioVisualizer * base,
+    GstBuffer * audio, GstVideoFrame * video);
 
-typedef GstGoom GstGoom2k1;
-typedef GstGoomClass GstGoom2k1Class;
 
-G_DEFINE_TYPE (GstGoom2k1, gst_goom, GST_TYPE_AUDIO_VISUALIZER);
+G_DEFINE_TYPE (GstGoom2k1, gst_goom2k1, GST_TYPE_AUDIO_VISUALIZER);
 
 static void
-gst_goom_class_init (GstGoomClass * klass)
+gst_goom2k1_class_init (GstGoom2k1Class * klass)
 {
   GObjectClass *gobject_class;
   GstElementClass *gstelement_class;
@@ -98,7 +96,7 @@ gst_goom_class_init (GstGoomClass * klass)
   gstelement_class = (GstElementClass *) klass;
   visualizer_class = (GstAudioVisualizerClass *) klass;
 
-  gobject_class->finalize = gst_goom_finalize;
+  gobject_class->finalize = gst_goom2k1_finalize;
 
   gst_element_class_set_static_metadata (gstelement_class,
       "GOOM: what a GOOM! 2k1 edition", "Visualization",
@@ -109,14 +107,15 @@ gst_goom_class_init (GstGoomClass * klass)
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&src_template));
 
-  GST_DEBUG_CATEGORY_INIT (goom_debug, "goom", 0, "goom visualisation element");
+  GST_DEBUG_CATEGORY_INIT (goom2k1_debug, "goom2k1", 0,
+      "goom2k1 visualisation element");
 
-  visualizer_class->setup = GST_DEBUG_FUNCPTR (gst_goom_setup);
-  visualizer_class->render = GST_DEBUG_FUNCPTR (gst_goom_render);
+  visualizer_class->setup = GST_DEBUG_FUNCPTR (gst_goom2k1_setup);
+  visualizer_class->render = GST_DEBUG_FUNCPTR (gst_goom2k1_render);
 }
 
 static void
-gst_goom_init (GstGoom * goom)
+gst_goom2k1_init (GstGoom2k1 * goom)
 {
   goom->width = DEFAULT_WIDTH;
   goom->height = DEFAULT_HEIGHT;
@@ -126,19 +125,19 @@ gst_goom_init (GstGoom * goom)
 }
 
 static void
-gst_goom_finalize (GObject * object)
+gst_goom2k1_finalize (GObject * object)
 {
-  GstGoom *goom = GST_GOOM (object);
+  GstGoom2k1 *goom = GST_GOOM2K1 (object);
 
   goom_close (&(goom->goomdata));
 
-  G_OBJECT_CLASS (gst_goom_parent_class)->finalize (object);
+  G_OBJECT_CLASS (gst_goom2k1_parent_class)->finalize (object);
 }
 
 static gboolean
-gst_goom_setup (GstAudioVisualizer * base)
+gst_goom2k1_setup (GstAudioVisualizer * base)
 {
-  GstGoom *goom = GST_GOOM (base);
+  GstGoom2k1 *goom = GST_GOOM2K1 (base);
 
   goom->width = GST_VIDEO_INFO_WIDTH (&base->vinfo);
   goom->height = GST_VIDEO_INFO_HEIGHT (&base->vinfo);
@@ -149,26 +148,26 @@ gst_goom_setup (GstAudioVisualizer * base)
 }
 
 static gboolean
-gst_goom_render (GstAudioVisualizer * base, GstBuffer * audio,
+gst_goom2k1_render (GstAudioVisualizer * base, GstBuffer * audio,
     GstVideoFrame * video)
 {
-  GstGoom *goom = GST_GOOM (base);
+  GstGoom2k1 *goom = GST_GOOM2K1 (base);
   GstMapInfo amap;
-  gint16 datain[2][GOOM_SAMPLES];
+  gint16 datain[2][GOOM2K1_SAMPLES];
   gint16 *adata;
   gint i;
 
-  /* get next GOOM_SAMPLES, we have at least this amount of samples */
+  /* get next GOOM2K1_SAMPLES, we have at least this amount of samples */
   gst_buffer_map (audio, &amap, GST_MAP_READ);
   adata = (gint16 *) amap.data;
 
   if (goom->channels == 2) {
-    for (i = 0; i < GOOM_SAMPLES; i++) {
+    for (i = 0; i < GOOM2K1_SAMPLES; i++) {
       datain[0][i] = *adata++;
       datain[1][i] = *adata++;
     }
   } else {
-    for (i = 0; i < GOOM_SAMPLES; i++) {
+    for (i = 0; i < GOOM2K1_SAMPLES; i++) {
       datain[0][i] = *adata;
       datain[1][i] = *adata++;
     }
@@ -183,7 +182,8 @@ gst_goom_render (GstAudioVisualizer * base, GstBuffer * audio,
 static gboolean
 plugin_init (GstPlugin * plugin)
 {
-  return gst_element_register (plugin, "goom2k1", GST_RANK_NONE, GST_TYPE_GOOM);
+  return gst_element_register (plugin, "goom2k1", GST_RANK_NONE,
+      GST_TYPE_GOOM2K1);
 }
 
 GST_PLUGIN_DEFINE (GST_VERSION_MAJOR,
diff --git a/gst/goom2k1/gstgoom.h b/gst/goom2k1/gstgoom.h
index 7047517a326ef697ccb8c6201725e9539caccc8b..e34e42e0a82511d30397c8f1cec4206eb5112af7 100644
--- a/gst/goom2k1/gstgoom.h
+++ b/gst/goom2k1/gstgoom.h
@@ -27,18 +27,18 @@
 
 G_BEGIN_DECLS
 
-#define GOOM_SAMPLES 512
+#define GOOM2K1_SAMPLES 512
 
-#define GST_TYPE_GOOM            (gst_goom_get_type())
-#define GST_GOOM(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GOOM,GstGoom))
-#define GST_GOOM_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GOOM,GstGoomClass))
-#define GST_IS_GOOM(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GOOM))
-#define GST_IS_GOOM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GOOM))
+#define GST_TYPE_GOOM2K1            (gst_goom2k1_get_type())
+#define GST_GOOM2K1(obj)            (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GOOM2K1,GstGoom2k1))
+#define GST_GOOM2K1_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GOOM2K1,GstGoom2k1Class))
+#define GST_IS_GOOM2K1(obj)         (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GOOM2K1))
+#define GST_IS_GOOM2K1_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GOOM2K1))
 
-typedef struct _GstGoom GstGoom;
-typedef struct _GstGoomClass GstGoomClass;
+typedef struct _GstGoom2k1 GstGoom2k1;
+typedef struct _GstGoom2k1Class GstGoom2k1Class;
 
-struct _GstGoom
+struct _GstGoom2k1
 {
   GstAudioVisualizer parent;
 
@@ -53,13 +53,13 @@ struct _GstGoom
   GoomData goomdata;
 };
 
-struct _GstGoomClass
+struct _GstGoom2k1Class
 {
   GstAudioVisualizerClass parent_class;
 };
 
-GType gst_goom_get_type (void);
-gboolean gst_goom_plugin_init (GstPlugin * plugin);
+GType gst_goom2k1_get_type (void);
+gboolean gst_goom2k1_plugin_init (GstPlugin * plugin);
 
 G_END_DECLS
 
diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in
index 9cf75018ad7193a6804027c8f09ce0e186830e48..ee3fc6da40130addb3fd69cb0025697c827cebba 100644
--- a/gst/icydemux/Makefile.in
+++ b/gst/icydemux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/icydemux
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/icydemux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/icydemux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in
index 63abc193806c8274f12db2f6b08dc8f72935f3ae..5f1436be5742d5980c0027ac22411c22fefb8093 100644
--- a/gst/id3demux/Makefile.in
+++ b/gst/id3demux/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/id3demux
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -574,7 +585,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/id3demux/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/id3demux/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -883,6 +893,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in
index f4e92ba7026f665032401f28c075c120668d9c47..6af185403f8979430f85e5c82ed99695c9d6c78c 100644
--- a/gst/imagefreeze/Makefile.in
+++ b/gst/imagefreeze/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/imagefreeze
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/imagefreeze/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/imagefreeze/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c
index 6b75ed9f8ad715b615ed3b1d6364c4feaae228ee..3c617cee1a0db01829b33fbf3736109237b1f8a8 100644
--- a/gst/imagefreeze/gstimagefreeze.c
+++ b/gst/imagefreeze/gstimagefreeze.c
@@ -28,7 +28,7 @@
  * <refsect2>
  * <title>Example launch line</title>
  * |[
- * gst-launch-1.0 -v filesrc location=some.png ! decodebin2 ! imagefreeze ! autovideosink
+ * gst-launch-1.0 -v filesrc location=some.png ! decodebin ! imagefreeze ! autovideosink
  * ]| This pipeline shows a still frame stream of a PNG file.
  * </refsect2>
  */
@@ -676,9 +676,14 @@ gst_image_freeze_sink_chain (GstPad * pad, GstObject * parent,
 {
   GstImageFreeze *self = GST_IMAGE_FREEZE (parent);
 
-  g_return_val_if_fail (self->buffer == NULL, GST_FLOW_ERROR);
-
   g_mutex_lock (&self->lock);
+  if (self->buffer) {
+    GST_DEBUG_OBJECT (pad, "Already have a buffer, dropping");
+    gst_buffer_unref (buffer);
+    g_mutex_unlock (&self->lock);
+    return GST_FLOW_EOS;
+  }
+
   self->buffer = buffer;
 
   gst_pad_start_task (self->srcpad, (GstTaskFunction) gst_image_freeze_src_loop,
diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in
index fcb8719d519da4c13cd90f89496da15bffef983c..040b9b973cb2acf1419a24bc9cd28a960d644730 100644
--- a/gst/interleave/Makefile.in
+++ b/gst/interleave/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/interleave
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -574,7 +585,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/interleave/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/interleave/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -899,6 +909,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in
index 5dbfcdffdb37b8bc85f4c30214de51bb653279a2..a857234460c1b2cef4f5867712f21ee930488744 100644
--- a/gst/isomp4/Makefile.in
+++ b/gst/isomp4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/isomp4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -615,7 +626,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/isomp4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/isomp4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1028,6 +1038,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c
index 45e668d9a46c5ca06b335940c7487f0030ef2fc6..267c4f092a7a9d41cb4becbc954de0ba5f834cdc 100644
--- a/gst/isomp4/atoms.c
+++ b/gst/isomp4/atoms.c
@@ -50,7 +50,7 @@
 #include <gst/tag/tag.h>
 #include <gst/video/video.h>
 
-/**
+/*
  * Creates a new AtomsContext for the given flavor.
  */
 AtomsContext *
@@ -61,7 +61,7 @@ atoms_context_new (AtomsTreeFlavor flavor)
   return context;
 }
 
-/**
+/*
  * Frees an AtomsContext and all memory associated with it
  */
 void
diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h
index b2073c6934d6960e190033875fddd95af889a585..f8789e4706f8802f6deced3d53571d01ee9f6306 100644
--- a/gst/isomp4/atoms.h
+++ b/gst/isomp4/atoms.h
@@ -112,7 +112,7 @@ void          atoms_context_free (AtomsContext *context);
 
 /* atom defs and functions */
 
-/**
+/*
  * Used for storing time related values for some atoms.
  */
 typedef struct _TimeInfo
@@ -612,7 +612,8 @@ enum TfFlags
   TF_DEFAULT_SAMPLE_DURATION  = 0x08,     /* default-sample-duration-present */
   TF_DEFAULT_SAMPLE_SIZE      = 0x010,    /* default-sample-size-present */
   TF_DEFAULT_SAMPLE_FLAGS     = 0x020,    /* default-sample-flags-present */
-  TF_DURATION_IS_EMPTY        = 0x010000  /* sample-composition-time-offsets-presents */
+  TF_DURATION_IS_EMPTY        = 0x010000, /* sample-composition-time-offsets-presents */
+  TF_DEFAULT_BASE_IS_MOOF     = 0x020000  /* default-base-is-moof */
 };
 
 typedef struct _AtomTRAK
diff --git a/gst/isomp4/atomsrecovery.c b/gst/isomp4/atomsrecovery.c
index 83ee3720610a58a06b4da5ddb061c956f0d99654..b21ee9cbe638cb26d89c8cc804bc373fee43471e 100644
--- a/gst/isomp4/atomsrecovery.c
+++ b/gst/isomp4/atomsrecovery.c
@@ -40,7 +40,7 @@
  * SOFTWARE.
  */
 
-/**
+/*
  * This module contains functions for serializing partial information from
  * a mux in progress (by qtmux elements). This enables reconstruction of the
  * moov box if a crash happens and thus recovering the movie file.
@@ -128,7 +128,7 @@ atoms_recov_write_ftyp_info (FILE * f, AtomFTYP * ftyp, GstBuffer * prefix)
   return TRUE;
 }
 
-/**
+/*
  * Writes important info on the 'moov' atom (non-trak related)
  * to be able to recover the moov structure after a crash.
  *
@@ -153,7 +153,7 @@ atoms_recov_write_moov_info (FILE * f, AtomMOOV * moov)
   return atom_size > 0 && writen == atom_size;
 }
 
-/**
+/*
  * Writes the number of traks to the file.
  * This simply writes a guint32 in BE.
  */
@@ -165,7 +165,7 @@ atoms_recov_write_traks_number (FILE * f, guint32 traks)
   return fwrite (data, 4, 1, f) == 1;
 }
 
-/**
+/*
  * Writes the moov's timescale to the file
  * This simply writes a guint32 in BE.
  */
@@ -177,7 +177,7 @@ atoms_recov_write_moov_timescale (FILE * f, guint32 timescale)
   return fwrite (data, 4, 1, f) == 1;
 }
 
-/**
+/*
  * Writes the trak atom to the file.
  */
 gboolean
@@ -778,7 +778,7 @@ trak_recov_data_add_sample (TrakRecovData * trak, TrakBufferEntryInfo * b)
       b->chunk_offset, b->sync, b->pts_offset);
 }
 
-/**
+/*
  * Parses the buffer entries in the MoovRecovFile and matches the inputs
  * with the data in the MdatRecovFile. Whenever a buffer entry of that
  * represents 'x' bytes of data, the same amount of data is 'validated' in
diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h
index 147027bb53db272df0edce3b8b3c446d2743e554..4bff1e0d53fb5bc8dffcaeaaf998b0f6dacbe050 100644
--- a/gst/isomp4/fourcc.h
+++ b/gst/isomp4/fourcc.h
@@ -204,6 +204,7 @@ G_BEGIN_DECLS
 #define FOURCC_stsz     GST_MAKE_FOURCC('s','t','s','z')
 #define FOURCC_stts     GST_MAKE_FOURCC('s','t','t','s')
 #define FOURCC_subp     GST_MAKE_FOURCC('s','u','b','p')
+#define FOURCC_subt     GST_MAKE_FOURCC('s','u','b','t')
 #define FOURCC_text     GST_MAKE_FOURCC('t','e','x','t')
 #define FOURCC_tkhd     GST_MAKE_FOURCC('t','k','h','d')
 #define FOURCC_tmpo     GST_MAKE_FOURCC('t','m','p','o')
@@ -234,6 +235,8 @@ G_BEGIN_DECLS
 #define FOURCC_apcs     GST_MAKE_FOURCC('a','p','c','s')
 #define FOURCC_m1v      GST_MAKE_FOURCC('m','1','v',' ')
 #define FOURCC_vivo     GST_MAKE_FOURCC('v','i','v','o')
+#define FOURCC_saiz     GST_MAKE_FOURCC('s','a','i','z')
+#define FOURCC_saio     GST_MAKE_FOURCC('s','a','i','o')
 
 #define FOURCC_3gg6     GST_MAKE_FOURCC('3','g','g','6')
 #define FOURCC_3gg7     GST_MAKE_FOURCC('3','g','g','7')
@@ -328,6 +331,21 @@ G_BEGIN_DECLS
 #define FOURCC_svmi     GST_MAKE_FOURCC('s','v','m','i')
 #define FOURCC_scdi     GST_MAKE_FOURCC('s','c','d','i')
 
+/* Protected streams */
+#define FOURCC_encv     GST_MAKE_FOURCC('e','n','c','v')
+#define FOURCC_enca     GST_MAKE_FOURCC('e','n','c','a')
+#define FOURCC_enct     GST_MAKE_FOURCC('e','n','c','t')
+#define FOURCC_encs     GST_MAKE_FOURCC('e','n','c','s')
+#define FOURCC_sinf     GST_MAKE_FOURCC('s','i','n','f')
+#define FOURCC_frma     GST_MAKE_FOURCC('f','r','m','a')
+#define FOURCC_schm     GST_MAKE_FOURCC('s','c','h','m')
+#define FOURCC_schi     GST_MAKE_FOURCC('s','c','h','i')
+
+/* Common Encryption */
+#define FOURCC_pssh     GST_MAKE_FOURCC('p','s','s','h')
+#define FOURCC_tenc     GST_MAKE_FOURCC('t','e','n','c')
+#define FOURCC_cenc     GST_MAKE_FOURCC('c','e','n','c')
+
 G_END_DECLS
 
 #endif /* __FOURCC_H__ */
diff --git a/gst/isomp4/properties.h b/gst/isomp4/properties.h
index 443288c54965dda8860810f710abdb2d0d2c836f..c36fe48769e7d6e3453ff3731a40e6e0641d86c4 100644
--- a/gst/isomp4/properties.h
+++ b/gst/isomp4/properties.h
@@ -46,7 +46,7 @@
 #include <glib.h>
 #include <string.h>
 
-/**
+/*
  * Functions for copying atoms properties.
  *
  * All of them receive, as the input, the property to be copied, the destination
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index edd0a585a44a3352a9b1493e3c6f9450fa600040..8393959c99c3e0ff661bdcaf88eeafcc49096015 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -8,6 +8,7 @@
  * Copyright (C) <2013> Sreerenj Balachandran <sreerenj.balachandran@intel.com>
  * Copyright (C) <2013> Intel Corporation
  * Copyright (C) <2014> Centricular Ltd
+ * Copyright (C) <2015> YouView TV Ltd.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -100,6 +101,8 @@ GST_DEBUG_CATEGORY (qtdemux_debug);
 typedef struct _QtDemuxSegment QtDemuxSegment;
 typedef struct _QtDemuxSample QtDemuxSample;
 
+typedef struct _QtDemuxCencSampleSetInfo QtDemuxCencSampleSetInfo;
+
 /*struct _QtNode
 {
   guint32 type;
@@ -391,6 +394,23 @@ struct _QtDemuxStream
   /* stereoscopic video streams */
   GstVideoMultiviewMode multiview_mode;
   GstVideoMultiviewFlags multiview_flags;
+
+  /* protected streams */
+  gboolean protected;
+  guint32 protection_scheme_type;
+  guint32 protection_scheme_version;
+  gpointer protection_scheme_info;      /* specific to the protection scheme */
+  GQueue protection_scheme_event_queue;
+};
+
+/* Contains properties and cryptographic info for a set of samples from a
+ * track protected using Common Encryption (cenc) */
+struct _QtDemuxCencSampleSetInfo
+{
+  GstStructure *default_properties;
+
+  /* @crypto_info holds one GstStructure per sample */
+  GPtrArray *crypto_info;
 };
 
 enum QtDemuxState
@@ -507,6 +527,9 @@ static void qtdemux_do_allocation (GstQTDemux * qtdemux,
 static gboolean qtdemux_pull_mfro_mfra (GstQTDemux * qtdemux);
 static void check_update_duration (GstQTDemux * qtdemux, GstClockTime duration);
 
+static void gst_qtdemux_append_protection_system_id (GstQTDemux * qtdemux,
+    const gchar * id);
+
 static void
 gst_qtdemux_class_init (GstQTDemuxClass * klass)
 {
@@ -576,9 +599,11 @@ gst_qtdemux_init (GstQTDemux * qtdemux)
   qtdemux->exposed = FALSE;
   qtdemux->mss_mode = FALSE;
   qtdemux->pending_newsegment = NULL;
-  qtdemux->upstream_newsegment = FALSE;
+  qtdemux->upstream_format_is_time = FALSE;
   qtdemux->have_group_id = FALSE;
   qtdemux->group_id = G_MAXUINT;
+  qtdemux->protection_system_ids = NULL;
+  g_queue_init (&qtdemux->protection_event_queue);
   gst_segment_init (&qtdemux->segment, GST_FORMAT_TIME);
   qtdemux->flowcombiner = gst_flow_combiner_new ();
 
@@ -595,6 +620,9 @@ gst_qtdemux_dispose (GObject * object)
     qtdemux->adapter = NULL;
   }
   gst_flow_combiner_free (qtdemux->flowcombiner);
+  g_queue_foreach (&qtdemux->protection_event_queue, (GFunc) gst_event_unref,
+      NULL);
+  g_queue_clear (&qtdemux->protection_event_queue);
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
@@ -1323,7 +1351,7 @@ gst_qtdemux_do_push_seek (GstQTDemux * qtdemux, GstPad * pad, GstEvent * event)
           stop_type, &stop))
     goto no_format;
 
-  /* Upstrea seek in bytes will have undefined stop, but qtdemux stores
+  /* Upstream seek in bytes will have undefined stop, but qtdemux stores
    * the original stop position to use when upstream pushes the new segment
    * for this seek */
   original_stop = stop;
@@ -1600,7 +1628,7 @@ gst_qtdemux_handle_src_event (GstPad * pad, GstObject * parent,
       GstClockTime ts = gst_util_get_timestamp ();
 #endif
 
-      if (qtdemux->upstream_newsegment && qtdemux->fragmented) {
+      if (qtdemux->upstream_format_is_time && qtdemux->fragmented) {
         /* seek should be handled by upstream, we might need to re-download fragments */
         GST_DEBUG_OBJECT (qtdemux,
             "let upstream handle seek for fragmented playback");
@@ -1755,6 +1783,11 @@ _create_stream (void)
   stream->new_stream = TRUE;
   stream->multiview_mode = GST_VIDEO_MULTIVIEW_MODE_NONE;
   stream->multiview_flags = GST_VIDEO_MULTIVIEW_FLAGS_NONE;
+  stream->protected = FALSE;
+  stream->protection_scheme_type = 0;
+  stream->protection_scheme_version = 0;
+  stream->protection_scheme_info = NULL;
+  g_queue_init (&stream->protection_scheme_event_queue);
   return stream;
 }
 
@@ -1845,7 +1878,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
   GST_DEBUG_OBJECT (qtdemux, "Resetting demux");
   gst_pad_stop_task (qtdemux->sinkpad);
 
-  if (hard || qtdemux->upstream_newsegment) {
+  if (hard || qtdemux->upstream_format_is_time) {
     qtdemux->state = QTDEMUX_STATE_INITIAL;
     qtdemux->neededbytes = 16;
     qtdemux->todrop = 0;
@@ -1882,7 +1915,7 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
     if (qtdemux->pending_newsegment)
       gst_event_unref (qtdemux->pending_newsegment);
     qtdemux->pending_newsegment = NULL;
-    qtdemux->upstream_newsegment = FALSE;
+    qtdemux->upstream_format_is_time = FALSE;
     qtdemux->upstream_seekable = FALSE;
     qtdemux->upstream_size = 0;
 
@@ -1893,6 +1926,14 @@ gst_qtdemux_reset (GstQTDemux * qtdemux, gboolean hard)
     qtdemux->chapters_track_id = 0;
     qtdemux->have_group_id = FALSE;
     qtdemux->group_id = G_MAXUINT;
+
+    if (qtdemux->protection_system_ids) {
+      g_ptr_array_free (qtdemux->protection_system_ids, TRUE);
+      qtdemux->protection_system_ids = NULL;
+    }
+    g_queue_foreach (&qtdemux->protection_event_queue, (GFunc) gst_event_unref,
+        NULL);
+    g_queue_clear (&qtdemux->protection_event_queue);
   }
   qtdemux->offset = 0;
   gst_adapter_clear (qtdemux->adapter);
@@ -1954,7 +1995,7 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
       if (segment.format == GST_FORMAT_TIME) {
         GST_DEBUG_OBJECT (demux, "new pending_newsegment");
         gst_event_replace (&demux->pending_newsegment, event);
-        demux->upstream_newsegment = TRUE;
+        demux->upstream_format_is_time = TRUE;
       } else {
         GST_DEBUG_OBJECT (demux, "Not storing upstream newsegment, "
             "not in time format");
@@ -2006,16 +2047,9 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
           segment.stop = MAX (segment.stop, segment.start);
         }
       } else if (segment.format == GST_FORMAT_TIME) {
-        /* NOP */
-#if 0
-        gst_qtdemux_push_event (demux, gst_event_ref (event));
-        gst_event_new_new_segment_full (segment.update, segment.rate,
-            segment.arate, GST_FORMAT_TIME, segment.start, segment.stop,
-            segment.start);
-        gst_adapter_clear (demux->adapter);
-        demux->neededbytes = 16;
-        goto exit;
-#endif
+        /* push all data on the adapter before starting this
+         * new segment */
+        gst_qtdemux_process_adapter (demux, TRUE);
       } else {
         GST_DEBUG_OBJECT (demux, "unsupported segment format, ignoring");
         goto exit;
@@ -2036,20 +2070,25 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
 
       /* clear leftover in current segment, if any */
       gst_adapter_clear (demux->adapter);
+
       /* set up streaming thread */
-      gst_qtdemux_find_sample (demux, offset, TRUE, TRUE, &stream, &idx, NULL);
       demux->offset = offset;
-      if (stream) {
-        demux->todrop = stream->samples[idx].offset - offset;
-        demux->neededbytes = demux->todrop + stream->samples[idx].size;
+      if (demux->upstream_format_is_time) {
+        GST_DEBUG_OBJECT (demux, "Upstream is driving in time format, "
+            "set values to restart reading from a new atom");
+        demux->neededbytes = 16;
+        demux->todrop = 0;
       } else {
-        /* set up for EOS */
-        if (demux->upstream_newsegment) {
-          demux->neededbytes = 16;
+        gst_qtdemux_find_sample (demux, offset, TRUE, TRUE, &stream, &idx,
+            NULL);
+        if (stream) {
+          demux->todrop = stream->samples[idx].offset - offset;
+          demux->neededbytes = demux->todrop + stream->samples[idx].size;
         } else {
+          /* set up for EOS */
           demux->neededbytes = -1;
+          demux->todrop = 0;
         }
-        demux->todrop = 0;
       }
     exit:
       gst_event_unref (event);
@@ -2097,6 +2136,21 @@ gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
       gst_event_unref (event);
       goto drop;
     }
+    case GST_EVENT_PROTECTION:
+    {
+      const gchar *system_id = NULL;
+
+      gst_event_parse_protection (event, &system_id, NULL, NULL);
+      GST_DEBUG_OBJECT (demux, "Received protection event for system ID %s",
+          system_id);
+      gst_qtdemux_append_protection_system_id (demux, system_id);
+      /* save the event for later, for source pads that have not been created */
+      g_queue_push_tail (&demux->protection_event_queue, gst_event_ref (event));
+      /* send it to all pads that already exist */
+      gst_qtdemux_push_event (demux, event);
+      res = TRUE;
+      goto drop;
+    }
     default:
       break;
   }
@@ -2165,14 +2219,22 @@ gst_qtdemux_stbl_free (QtDemuxStream * stream)
   stream->ctts.data = NULL;
 }
 
+static void
+gst_qtdemux_stream_flush_segments_data (GstQTDemux * qtdemux,
+    QtDemuxStream * stream)
+{
+  g_free (stream->segments);
+  stream->segments = NULL;
+  stream->segment_index = -1;
+  stream->accumulated_base = 0;
+}
+
 static void
 gst_qtdemux_stream_flush_samples_data (GstQTDemux * qtdemux,
     QtDemuxStream * stream)
 {
   g_free (stream->samples);
   stream->samples = NULL;
-  g_free (stream->segments);
-  stream->segments = NULL;
   gst_qtdemux_stbl_free (stream);
 
   /* fragments */
@@ -2184,8 +2246,6 @@ gst_qtdemux_stream_flush_samples_data (GstQTDemux * qtdemux,
   stream->stbl_index = -1;
   stream->n_samples = 0;
   stream->time_position = 0;
-  stream->segment_index = -1;
-  stream->accumulated_base = 0;
 }
 
 static void
@@ -2209,7 +2269,25 @@ gst_qtdemux_stream_clear (GstQTDemux * qtdemux, QtDemuxStream * stream)
   stream->redirect_uri = NULL;
   stream->sent_eos = FALSE;
   stream->sparse = FALSE;
-
+  stream->protected = FALSE;
+  if (stream->protection_scheme_info) {
+    if (stream->protection_scheme_type == FOURCC_cenc) {
+      QtDemuxCencSampleSetInfo *info =
+          (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+      if (info->default_properties)
+        gst_structure_free (info->default_properties);
+      if (info->crypto_info)
+        g_ptr_array_free (info->crypto_info, TRUE);
+    }
+    g_free (stream->protection_scheme_info);
+    stream->protection_scheme_info = NULL;
+  }
+  stream->protection_scheme_type = 0;
+  stream->protection_scheme_version = 0;
+  g_queue_foreach (&stream->protection_scheme_event_queue,
+      (GFunc) gst_event_unref, NULL);
+  g_queue_clear (&stream->protection_scheme_event_queue);
+  gst_qtdemux_stream_flush_segments_data (qtdemux, stream);
   gst_qtdemux_stream_flush_samples_data (qtdemux, stream);
 }
 
@@ -2670,19 +2748,21 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
     goto fail;
   data = (guint8 *) gst_byte_reader_peek_data_unchecked (trun);
 
-  if (stream->n_samples >=
+  if (stream->n_samples + samples_count >=
       QTDEMUX_MAX_SAMPLE_INDEX_SIZE / sizeof (QtDemuxSample))
     goto index_too_big;
 
   GST_DEBUG_OBJECT (qtdemux, "allocating n_samples %u * %u (%.2f MB)",
-      stream->n_samples, (guint) sizeof (QtDemuxSample),
-      stream->n_samples * sizeof (QtDemuxSample) / (1024.0 * 1024.0));
+      stream->n_samples + samples_count, (guint) sizeof (QtDemuxSample),
+      (stream->n_samples + samples_count) *
+      sizeof (QtDemuxSample) / (1024.0 * 1024.0));
 
   /* create a new array of samples if it's the first sample parsed */
-  if (stream->n_samples == 0)
+  if (stream->n_samples == 0) {
+    g_assert (stream->samples == NULL);
     stream->samples = g_try_new0 (QtDemuxSample, samples_count);
-  /* or try to reallocate it with space enough to insert the new samples */
-  else
+    /* or try to reallocate it with space enough to insert the new samples */
+  } else
     stream->samples = g_try_renew (QtDemuxSample, stream->samples,
         stream->n_samples + samples_count);
   if (stream->samples == NULL)
@@ -2692,7 +2772,7 @@ qtdemux_parse_trun (GstQTDemux * qtdemux, GstByteReader * trun,
     timestamp = GSTTIME_TO_QTSTREAMTIME (stream, qtdemux->fragment_start);
     qtdemux->fragment_start = -1;
   } else {
-    if (G_UNLIKELY (stream->n_samples == 0)) {
+    if (stream->n_samples == 0) {
       if (decode_ts > 0) {
         timestamp = decode_ts;
       } else if (stream->pending_seek != NULL) {
@@ -2872,6 +2952,9 @@ qtdemux_parse_tfhd (GstQTDemux * qtdemux, GstByteReader * tfhd,
   if (G_UNLIKELY (!*stream))
     goto unknown_stream;
 
+  if (flags & TF_DEFAULT_BASE_IS_MOOF)
+    *base_offset = qtdemux->moof_offset;
+
   if (flags & TF_BASE_DATA_OFFSET)
     if (!gst_byte_reader_get_uint64_be (tfhd, (guint64 *) base_offset))
       goto invalid_track;
@@ -2943,12 +3026,300 @@ failed:
   }
 }
 
+/* Returns a pointer to a GstStructure containing the properties of
+ * the stream sample identified by @sample_index. The caller must unref
+ * the returned object after use. Returns NULL if unsuccessful. */
+static GstStructure *
+qtdemux_get_cenc_sample_properties (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, guint sample_index)
+{
+  QtDemuxCencSampleSetInfo *info = NULL;
+
+  g_return_val_if_fail (stream != NULL, NULL);
+  g_return_val_if_fail (stream->protected, NULL);
+  g_return_val_if_fail (stream->protection_scheme_info != NULL, NULL);
+
+  info = (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+
+  /* Currently, cenc properties for groups of samples are not supported, so
+   * simply return a copy of the default sample properties */
+  return gst_structure_copy (info->default_properties);
+}
+
+/* Parses the sizes of sample auxiliary information contained within a stream,
+ * as given in a saiz box. Returns array of sample_count guint8 size values,
+ * or NULL on failure */
+static guint8 *
+qtdemux_parse_saiz (GstQTDemux * qtdemux, QtDemuxStream * stream,
+    GstByteReader * br, guint32 * sample_count)
+{
+  guint32 flags = 0;
+  guint8 *info_sizes;
+  guint8 default_info_size;
+
+  g_return_val_if_fail (qtdemux != NULL, NULL);
+  g_return_val_if_fail (stream != NULL, NULL);
+  g_return_val_if_fail (br != NULL, NULL);
+  g_return_val_if_fail (sample_count != NULL, NULL);
+
+  if (!gst_byte_reader_get_uint32_be (br, &flags))
+    return NULL;
+
+  if (flags & 0x1) {
+    /* aux_info_type and aux_info_type_parameter are ignored */
+    if (!gst_byte_reader_skip (br, 8))
+      return NULL;
+  }
+
+  if (!gst_byte_reader_get_uint8 (br, &default_info_size))
+    return NULL;
+  GST_DEBUG_OBJECT (qtdemux, "default_info_size: %u", default_info_size);
+
+  if (!gst_byte_reader_get_uint32_be (br, sample_count))
+    return NULL;
+  GST_DEBUG_OBJECT (qtdemux, "sample_count: %u", *sample_count);
+
+
+  if (default_info_size == 0) {
+    if (!gst_byte_reader_dup_data (br, *sample_count, &info_sizes)) {
+      return NULL;
+    }
+  } else {
+    info_sizes = g_new (guint8, *sample_count);
+    memset (info_sizes, default_info_size, *sample_count);
+  }
+
+  return info_sizes;
+}
+
+/* Parses the offset of sample auxiliary information contained within a stream,
+ * as given in a saio box. Returns TRUE if successful; FALSE otherwise. */
+static gboolean
+qtdemux_parse_saio (GstQTDemux * qtdemux, QtDemuxStream * stream,
+    GstByteReader * br, guint32 * info_type, guint32 * info_type_parameter,
+    guint64 * offset)
+{
+  guint8 version = 0;
+  guint32 flags = 0;
+  guint32 aux_info_type = 0;
+  guint32 aux_info_type_parameter = 0;
+  guint32 entry_count;
+  guint32 off_32;
+  guint64 off_64;
+
+  g_return_val_if_fail (qtdemux != NULL, FALSE);
+  g_return_val_if_fail (stream != NULL, FALSE);
+  g_return_val_if_fail (br != NULL, FALSE);
+  g_return_val_if_fail (offset != NULL, FALSE);
+
+  if (!gst_byte_reader_get_uint8 (br, &version))
+    return FALSE;
+
+  if (!gst_byte_reader_get_uint24_be (br, &flags))
+    return FALSE;
+
+  if (flags & 0x1) {
+    if (!gst_byte_reader_get_uint32_be (br, &aux_info_type))
+      return FALSE;
+    if (!gst_byte_reader_get_uint32_be (br, &aux_info_type_parameter))
+      return FALSE;
+  } else if (stream->protected) {
+    aux_info_type = stream->protection_scheme_type;
+  } else {
+    aux_info_type = stream->fourcc;
+  }
+
+  if (info_type)
+    *info_type = aux_info_type;
+  if (info_type_parameter)
+    *info_type_parameter = aux_info_type_parameter;
+
+  GST_DEBUG_OBJECT (qtdemux, "aux_info_type: '%" GST_FOURCC_FORMAT "', "
+      "aux_info_type_parameter:  %#06x",
+      GST_FOURCC_ARGS (aux_info_type), aux_info_type_parameter);
+
+  if (!gst_byte_reader_get_uint32_be (br, &entry_count))
+    return FALSE;
+
+  if (entry_count != 1) {
+    GST_ERROR_OBJECT (qtdemux, "multiple offsets are not supported");
+    return FALSE;
+  }
+
+  if (version == 0) {
+    if (!gst_byte_reader_get_uint32_be (br, &off_32))
+      return FALSE;
+    *offset = (guint64) off_32;
+  } else {
+    if (!gst_byte_reader_get_uint64_be (br, &off_64))
+      return FALSE;
+    *offset = off_64;
+  }
+
+  GST_DEBUG_OBJECT (qtdemux, "offset: %" G_GUINT64_FORMAT, *offset);
+  return TRUE;
+}
+
+static void
+qtdemux_gst_structure_free (GstStructure * gststructure)
+{
+  if (gststructure) {
+    gst_structure_free (gststructure);
+  }
+}
+
+/* Parses auxiliary information relating to samples protected using Common
+ * Encryption (cenc); the format of this information is defined in
+ * ISO/IEC 23001-7. Returns TRUE if successful; FALSE otherwise. */
+static gboolean
+qtdemux_parse_cenc_aux_info (GstQTDemux * qtdemux, QtDemuxStream * stream,
+    GstByteReader * br, guint8 * info_sizes, guint32 sample_count)
+{
+  QtDemuxCencSampleSetInfo *ss_info = NULL;
+  guint8 size;
+  gint i;
+
+  g_return_val_if_fail (qtdemux != NULL, FALSE);
+  g_return_val_if_fail (stream != NULL, FALSE);
+  g_return_val_if_fail (br != NULL, FALSE);
+  g_return_val_if_fail (stream->protected, FALSE);
+  g_return_val_if_fail (stream->protection_scheme_info != NULL, FALSE);
+
+  ss_info = (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+
+  if (ss_info->crypto_info) {
+    GST_LOG_OBJECT (qtdemux, "unreffing existing crypto_info");
+    g_ptr_array_free (ss_info->crypto_info, TRUE);
+  }
+
+  ss_info->crypto_info =
+      g_ptr_array_new_full (sample_count,
+      (GDestroyNotify) qtdemux_gst_structure_free);
+
+  for (i = 0; i < sample_count; ++i) {
+    GstStructure *properties;
+    guint16 n_subsamples;
+    guint8 *data;
+    guint iv_size;
+    GstBuffer *buf;
+
+    properties = qtdemux_get_cenc_sample_properties (qtdemux, stream, i);
+    if (properties == NULL) {
+      GST_ERROR_OBJECT (qtdemux, "failed to get properties for sample %u", i);
+      return FALSE;
+    }
+    if (!gst_structure_get_uint (properties, "iv_size", &iv_size)) {
+      GST_ERROR_OBJECT (qtdemux, "failed to get iv_size for sample %u", i);
+      gst_structure_free (properties);
+      return FALSE;
+    }
+    if (!gst_byte_reader_dup_data (br, iv_size, &data)) {
+      GST_ERROR_OBJECT (qtdemux, "failed to get IV for sample %u", i);
+      gst_structure_free (properties);
+      return FALSE;
+    }
+    buf = gst_buffer_new_wrapped (data, iv_size);
+    gst_structure_set (properties, "iv", GST_TYPE_BUFFER, buf, NULL);
+    size = info_sizes[i];
+    if (size > iv_size) {
+      if (!gst_byte_reader_get_uint16_be (br, &n_subsamples)
+          || !(n_subsamples > 0)) {
+        gst_structure_free (properties);
+        GST_ERROR_OBJECT (qtdemux,
+            "failed to get subsample count for sample %u", i);
+        return FALSE;
+      }
+      GST_LOG_OBJECT (qtdemux, "subsample count: %u", n_subsamples);
+      if (!gst_byte_reader_dup_data (br, n_subsamples * 6, &data)) {
+        GST_ERROR_OBJECT (qtdemux, "failed to get subsample data for sample %u",
+            i);
+        gst_structure_free (properties);
+        return FALSE;
+      }
+      buf = gst_buffer_new_wrapped (data, n_subsamples * 6);
+      if (!buf) {
+        gst_structure_free (properties);
+        return FALSE;
+      }
+      gst_structure_set (properties,
+          "subsample_count", G_TYPE_UINT, n_subsamples,
+          "subsamples", GST_TYPE_BUFFER, buf, NULL);
+    } else {
+      gst_structure_set (properties, "subsample_count", G_TYPE_UINT, 0, NULL);
+    }
+    g_ptr_array_add (ss_info->crypto_info, properties);
+  }
+  return TRUE;
+}
+
+/* Converts a UUID in raw byte form to a string representation, as defined in
+ * RFC 4122. The caller takes ownership of the returned string and is
+ * responsible for freeing it after use. */
+static gchar *
+qtdemux_uuid_bytes_to_string (gconstpointer uuid_bytes)
+{
+  const guint8 *uuid = (const guint8 *) uuid_bytes;
+
+  return g_strdup_printf ("%02x%02x%02x%02x-%02x%02x-%02x%02x-"
+      "%02x%02x-%02x%02x%02x%02x%02x%02x",
+      uuid[0], uuid[1], uuid[2], uuid[3],
+      uuid[4], uuid[5], uuid[6], uuid[7],
+      uuid[8], uuid[9], uuid[10], uuid[11],
+      uuid[12], uuid[13], uuid[14], uuid[15]);
+}
+
+/* Parses a Protection System Specific Header box (pssh), as defined in the
+ * Common Encryption (cenc) standard (ISO/IEC 23001-7), which contains
+ * information needed by a specific content protection system in order to
+ * decrypt cenc-protected tracks. Returns TRUE if successful; FALSE
+ * otherwise. */
+static gboolean
+qtdemux_parse_pssh (GstQTDemux * qtdemux, GNode * node)
+{
+  gchar *sysid_string;
+  guint32 pssh_size = QT_UINT32 (node->data);
+  GstBuffer *pssh = NULL;
+  GstEvent *event = NULL;
+  guint32 parent_box_type;
+  gint i;
+
+  if (G_UNLIKELY (pssh_size < 32U)) {
+    GST_ERROR_OBJECT (qtdemux, "invalid box size");
+    return FALSE;
+  }
+
+  sysid_string =
+      qtdemux_uuid_bytes_to_string ((const guint8 *) node->data + 12);
+
+  gst_qtdemux_append_protection_system_id (qtdemux, sysid_string);
+
+  pssh = gst_buffer_new_wrapped (g_memdup (node->data, pssh_size), pssh_size);
+  GST_LOG_OBJECT (qtdemux, "cenc pssh size: %" G_GSIZE_FORMAT,
+      gst_buffer_get_size (pssh));
+
+  parent_box_type = QT_FOURCC ((const guint8 *) node->parent->data + 4);
+
+  /* Push an event containing the pssh box onto the queues of all streams. */
+  event = gst_event_new_protection (sysid_string, pssh,
+      (parent_box_type == FOURCC_moov) ? "isobmff/moov" : "isobmff/moof");
+  for (i = 0; i < qtdemux->n_streams; ++i) {
+    g_queue_push_tail (&qtdemux->streams[i]->protection_scheme_event_queue,
+        gst_event_ref (event));
+  }
+  g_free (sysid_string);
+  gst_event_unref (event);
+  gst_buffer_unref (pssh);
+  return TRUE;
+}
+
 static gboolean
 qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
     guint64 moof_offset, QtDemuxStream * stream)
 {
   GNode *moof_node, *traf_node, *tfhd_node, *trun_node, *tfdt_node, *mfhd_node;
   GstByteReader mfhd_data, trun_data, tfhd_data, tfdt_data;
+  GNode *saiz_node, *saio_node, *pssh_node;
+  GstByteReader saiz_data, saio_data;
   guint32 ds_size = 0, ds_duration = 0, ds_flags = 0;
   gint64 base_offset, running_offset;
   guint32 frag_num;
@@ -2983,6 +3354,61 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
     if (!qtdemux_parse_tfhd (qtdemux, &tfhd_data, &stream, &ds_duration,
             &ds_size, &ds_flags, &base_offset))
       goto missing_tfhd;
+
+    /* The following code assumes at most a single set of sample auxiliary
+     * data in the fragment (consisting of a saiz box and a corresponding saio
+     * box); in theory, however, there could be multiple sets of sample
+     * auxiliary data in a fragment. */
+    saiz_node =
+        qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_saiz,
+        &saiz_data);
+    if (saiz_node) {
+      guint8 *info_sizes;
+      guint32 sample_count;
+      guint32 info_type = 0;
+      guint64 offset = 0;
+      guint32 info_type_parameter = 0;
+
+      info_sizes = qtdemux_parse_saiz (qtdemux, stream, &saiz_data,
+          &sample_count);
+      if (G_UNLIKELY (info_sizes == NULL)) {
+        GST_ERROR_OBJECT (qtdemux, "failed to parse saiz box");
+        goto fail;
+      }
+      saio_node =
+          qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_saio,
+          &saio_data);
+      if (!saio_node) {
+        GST_ERROR_OBJECT (qtdemux, "saiz box without a corresponding saio box");
+        goto fail;
+      }
+
+      if (G_UNLIKELY (!qtdemux_parse_saio (qtdemux, stream, &saio_data,
+                  &info_type, &info_type_parameter, &offset))) {
+        GST_ERROR_OBJECT (qtdemux, "failed to parse saio box");
+        g_free (info_sizes);
+        goto fail;
+      }
+      if (base_offset > qtdemux->moof_offset)
+        offset += (guint64) (base_offset - qtdemux->moof_offset);
+      if (info_type == FOURCC_cenc && info_type_parameter == 0U) {
+        GstByteReader br;
+        if (offset > length) {
+          GST_ERROR_OBJECT (qtdemux, "cenc auxiliary info outside moof "
+              "boxes is not supported");
+          g_free (info_sizes);
+          goto fail;
+        }
+        gst_byte_reader_init (&br, buffer + offset, length - offset);
+        if (!qtdemux_parse_cenc_aux_info (qtdemux, stream, &br,
+                info_sizes, sample_count)) {
+          GST_ERROR_OBJECT (qtdemux, "failed to parse cenc auxiliary info");
+          goto fail;
+        }
+      }
+      g_free (info_sizes);
+    }
+
     tfdt_node =
         qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_tfdt,
         &tfdt_data);
@@ -3014,6 +3440,10 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
     }
     if (G_UNLIKELY (base_offset < -1))
       goto lost_offset;
+
+    if (qtdemux->upstream_format_is_time)
+      gst_qtdemux_stream_flush_samples_data (qtdemux, stream);
+
     /* Track Run node */
     trun_node =
         qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_trun,
@@ -3034,6 +3464,15 @@ qtdemux_parse_moof (GstQTDemux * qtdemux, const guint8 * buffer, guint length,
     /* iterate all siblings */
     traf_node = qtdemux_tree_get_sibling_by_type (traf_node, FOURCC_traf);
   }
+
+  /* parse any protection system info */
+  pssh_node = qtdemux_tree_get_child_by_type (moof_node, FOURCC_pssh);
+  while (pssh_node) {
+    GST_LOG_OBJECT (qtdemux, "Parsing pssh box.");
+    qtdemux_parse_pssh (qtdemux, pssh_node);
+    pssh_node = qtdemux_tree_get_sibling_by_type (pssh_node, FOURCC_pssh);
+  }
+
   g_node_destroy (moof_node);
   return TRUE;
 
@@ -3313,6 +3752,8 @@ gst_qtdemux_loop_state_header (GstQTDemux * qtdemux)
       }
       if (qtdemux_pull_mfro_mfra (qtdemux)) {
         /* FIXME */
+      } else {
+        qtdemux->offset += length;      /* skip moof and keep going */
       }
       if (qtdemux->got_moov) {
         GST_INFO_OBJECT (qtdemux, "moof header, got moov, done with headers");
@@ -4437,6 +4878,28 @@ gst_qtdemux_decorate_and_push_buffer (GstQTDemux * qtdemux,
       GST_TIME_ARGS (pts), GST_TIME_ARGS (duration),
       GST_PAD_NAME (stream->pad));
 
+  if (stream->protected && stream->protection_scheme_type == FOURCC_cenc) {
+    GstStructure *crypto_info;
+    QtDemuxCencSampleSetInfo *info =
+        (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+    gint index;
+    GstEvent *event;
+
+    while ((event = g_queue_pop_head (&stream->protection_scheme_event_queue))) {
+      gst_pad_push_event (stream->pad, event);
+    }
+
+    index = stream->sample_index - (stream->n_samples - info->crypto_info->len);
+    if (G_LIKELY (index >= 0 && index < info->crypto_info->len)) {
+      /* steal structure from array */
+      crypto_info = g_ptr_array_index (info->crypto_info, index);
+      g_ptr_array_index (info->crypto_info, index) = NULL;
+      GST_LOG_OBJECT (qtdemux, "attaching cenc metadata [%u]", index);
+      if (!crypto_info || !gst_buffer_add_protection_meta (buf, crypto_info))
+        GST_ERROR_OBJECT (qtdemux, "failed to attach cenc metadata to buffer");
+    }
+  }
+
   ret = gst_pad_push (stream->pad, buf);
 
   if (GST_CLOCK_TIME_IS_VALID (pts) && GST_CLOCK_TIME_IS_VALID (duration)) {
@@ -5278,6 +5741,7 @@ gst_qtdemux_process_adapter (GstQTDemux * demux, gboolean force)
                   GST_TIME_ARGS (demux->fragment_start));
             }
 
+            demux->moof_offset = demux->offset;
             if (!qtdemux_parse_moof (demux, data, demux->neededbytes,
                     demux->offset, NULL)) {
               gst_adapter_unmap (demux->adapter);
@@ -6102,6 +6566,16 @@ qtdemux_parse_node (GstQTDemux * qtdemux, GNode * node, const guint8 * buffer,
         qtdemux_parse_uuid (qtdemux, buffer, end - buffer);
         break;
       }
+      case FOURCC_encv:
+      {
+        qtdemux_parse_container (qtdemux, node, buffer + 86, end);
+        break;
+      }
+      case FOURCC_enca:
+      {
+        qtdemux_parse_container (qtdemux, node, buffer + 36, end);
+        break;
+      }
       default:
         if (!strcmp (type->name, "unknown"))
           GST_MEMDUMP ("Unknown tag", buffer + 4, end - buffer - 4);
@@ -6248,6 +6722,46 @@ qtdemux_do_allocation (GstQTDemux * qtdemux, QtDemuxStream * stream)
 #endif
 }
 
+static gboolean
+gst_qtdemux_configure_protected_caps (GstQTDemux * qtdemux,
+    QtDemuxStream * stream)
+{
+  GstStructure *s;
+  const gchar *selected_system;
+
+  g_return_val_if_fail (qtdemux != NULL, FALSE);
+  g_return_val_if_fail (stream != NULL, FALSE);
+  g_return_val_if_fail (gst_caps_get_size (stream->caps) == 1, FALSE);
+
+  if (stream->protection_scheme_type != FOURCC_cenc) {
+    GST_ERROR_OBJECT (qtdemux, "unsupported protection scheme");
+    return FALSE;
+  }
+  if (qtdemux->protection_system_ids == NULL) {
+    GST_ERROR_OBJECT (qtdemux, "stream is protected using cenc, but no "
+        "cenc protection system information has been found");
+    return FALSE;
+  }
+  g_ptr_array_add (qtdemux->protection_system_ids, NULL);
+  selected_system = gst_protection_select_system ((const gchar **)
+      qtdemux->protection_system_ids->pdata);
+  g_ptr_array_remove_index (qtdemux->protection_system_ids,
+      qtdemux->protection_system_ids->len - 1);
+  if (!selected_system) {
+    GST_ERROR_OBJECT (qtdemux, "stream is protected, but no "
+        "suitable decryptor element has been found");
+    return FALSE;
+  }
+
+  s = gst_caps_get_structure (stream->caps, 0);
+  gst_structure_set (s,
+      "original-media-type", G_TYPE_STRING, gst_structure_get_name (s),
+      GST_PROTECTION_SYSTEM_ID_CAPS_FIELD, G_TYPE_STRING, selected_system,
+      NULL);
+  gst_structure_set_name (s, "application/x-cenc");
+  return TRUE;
+}
+
 static gboolean
 gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream)
 {
@@ -6367,6 +6881,14 @@ gst_qtdemux_configure_stream (GstQTDemux * qtdemux, QtDemuxStream * stream)
 
     gst_pad_use_fixed_caps (stream->pad);
 
+    if (stream->protected) {
+      if (!gst_qtdemux_configure_protected_caps (qtdemux, stream)) {
+        GST_ERROR_OBJECT (qtdemux,
+            "Failed to configure protected stream caps.");
+        return FALSE;
+      }
+    }
+
     GST_DEBUG_OBJECT (qtdemux, "setting caps %" GST_PTR_FORMAT, stream->caps);
     if (stream->new_stream) {
       gchar *stream_id;
@@ -6436,7 +6958,7 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
   } else if (stream->subtype == FOURCC_strm) {
     GST_DEBUG_OBJECT (qtdemux, "stream type, not creating pad");
   } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text
-      || stream->subtype == FOURCC_sbtl) {
+      || stream->subtype == FOURCC_sbtl || stream->subtype == FOURCC_subt) {
     gchar *name = g_strdup_printf ("subtitle_%u", qtdemux->n_sub_streams);
 
     stream->pad =
@@ -6458,6 +6980,8 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
   }
 
   if (stream->pad) {
+    GList *l;
+
     GST_DEBUG_OBJECT (qtdemux, "adding pad %s %p to qtdemux %p",
         GST_OBJECT_NAME (stream->pad), stream->pad, qtdemux);
     gst_element_add_pad (GST_ELEMENT_CAST (qtdemux), stream->pad);
@@ -6469,6 +6993,10 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
     list = NULL;
     /* global tags go on each pad anyway */
     stream->send_global_tags = TRUE;
+    /* send upstream GST_EVENT_PROTECTION events that were received before
+       this source pad was created */
+    for (l = qtdemux->protection_event_queue.head; l != NULL; l = l->next)
+      gst_pad_push_event (stream->pad, gst_event_ref (l->data));
   }
 done:
   if (list)
@@ -6769,6 +7297,7 @@ qtdemux_stbl_init (GstQTDemux * qtdemux, QtDemuxStream * stream, GNode * stbl)
     return FALSE;
   }
 
+  g_assert (stream->samples == NULL);
   stream->samples = g_try_new0 (QtDemuxSample, stream->n_samples);
   if (!stream->samples) {
     GST_WARNING_OBJECT (qtdemux, "failed to allocate %d samples",
@@ -7240,11 +7769,13 @@ done:
   /* if index has been completely parsed, free data that is no-longer needed */
   if (n + 1 == stream->n_samples) {
     gst_qtdemux_stbl_free (stream);
-    GST_DEBUG_OBJECT (qtdemux,
-        "parsed all available samples; checking for more");
-    while (n + 1 == stream->n_samples)
-      if (qtdemux_add_fragmented_samples (qtdemux) != GST_FLOW_OK)
-        break;
+    GST_DEBUG_OBJECT (qtdemux, "parsed all available samples;");
+    if (qtdemux->pullbased) {
+      GST_DEBUG_OBJECT (qtdemux, "checking for more samples");
+      while (n + 1 == stream->n_samples)
+        if (qtdemux_add_fragmented_samples (qtdemux) != GST_FLOW_OK)
+          break;
+    }
   }
   GST_OBJECT_UNLOCK (qtdemux);
 
@@ -7719,25 +8250,21 @@ qtdemux_inspect_transformation_matrix (GstQTDemux * qtdemux,
  * This macro will only compare value abdegh, it expects cfi to have already
  * been checked
  */
-#define QTCHECK_MATRIX(m,a,b,d,e,g,h) ((m)[0] == (a << 16) && (m)[1] == (b << 16) && \
-                                       (m)[3] == (d << 16) && (m)[4] == (e << 16) && \
-                                       (m)[6] == (g << 16) && (m)[7] == (h << 16))
+#define QTCHECK_MATRIX(m,a,b,d,e) ((m)[0] == (a << 16) && (m)[1] == (b << 16) && \
+                                   (m)[3] == (d << 16) && (m)[4] == (e << 16))
 
   /* only handle the cases where the last column has standard values */
   if (matrix[2] == 0 && matrix[5] == 0 && matrix[8] == 1 << 30) {
     const gchar *rotation_tag = NULL;
 
     /* no rotation needed */
-    if (QTCHECK_MATRIX (matrix, 1, 0, 0, 1, 0, 0)) {
+    if (QTCHECK_MATRIX (matrix, 1, 0, 0, 1)) {
       /* NOP */
-    } else if (QTCHECK_MATRIX (matrix, 0, 1, G_MAXUINT16, 0,
-            stream->display_height, 0)) {
+    } else if (QTCHECK_MATRIX (matrix, 0, 1, G_MAXUINT16, 0)) {
       rotation_tag = "rotate-90";
-    } else if (QTCHECK_MATRIX (matrix, G_MAXUINT16, 0, 0, G_MAXUINT16,
-            stream->display_width, stream->display_height)) {
+    } else if (QTCHECK_MATRIX (matrix, G_MAXUINT16, 0, 0, G_MAXUINT16)) {
       rotation_tag = "rotate-180";
-    } else if (QTCHECK_MATRIX (matrix, 0, G_MAXUINT16, 1, 0, 0,
-            stream->display_width)) {
+    } else if (QTCHECK_MATRIX (matrix, 0, G_MAXUINT16, 1, 0)) {
       rotation_tag = "rotate-270";
     } else {
       GST_FIXME_OBJECT (qtdemux, "Unhandled transformation matrix values");
@@ -7756,6 +8283,108 @@ qtdemux_inspect_transformation_matrix (GstQTDemux * qtdemux,
   }
 }
 
+/* Parses the boxes defined in ISO/IEC 14496-12 that enable support for
+ * protected streams (sinf, frma, schm and schi); if the protection scheme is
+ * Common Encryption (cenc), the function will also parse the tenc box (defined
+ * in ISO/IEC 23001-7). @container points to the node that contains these boxes
+ * (typically an enc[v|a|t|s] sample entry); the function will set
+ * @original_fmt to the fourcc of the original unencrypted stream format.
+ * Returns TRUE if successful; FALSE otherwise. */
+static gboolean
+qtdemux_parse_protection_scheme_info (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, GNode * container, guint32 * original_fmt)
+{
+  GNode *sinf;
+  GNode *frma;
+  GNode *schm;
+  GNode *schi;
+
+  g_return_val_if_fail (qtdemux != NULL, FALSE);
+  g_return_val_if_fail (stream != NULL, FALSE);
+  g_return_val_if_fail (container != NULL, FALSE);
+  g_return_val_if_fail (original_fmt != NULL, FALSE);
+
+  sinf = qtdemux_tree_get_child_by_type (container, FOURCC_sinf);
+  if (G_UNLIKELY (!sinf)) {
+    if (stream->protection_scheme_type == FOURCC_cenc) {
+      GST_ERROR_OBJECT (qtdemux, "sinf box does not contain schi box, which is "
+          "mandatory for Common Encryption");
+      return FALSE;
+    }
+    return TRUE;
+  }
+
+  frma = qtdemux_tree_get_child_by_type (sinf, FOURCC_frma);
+  if (G_UNLIKELY (!frma)) {
+    GST_ERROR_OBJECT (qtdemux, "sinf box does not contain mandatory frma box");
+    return FALSE;
+  }
+
+  *original_fmt = QT_FOURCC ((const guint8 *) frma->data + 8);
+  GST_DEBUG_OBJECT (qtdemux, "original stream format: '%" GST_FOURCC_FORMAT "'",
+      GST_FOURCC_ARGS (*original_fmt));
+
+  schm = qtdemux_tree_get_child_by_type (sinf, FOURCC_schm);
+  if (!schm) {
+    GST_DEBUG_OBJECT (qtdemux, "sinf box does not contain schm box");
+    return FALSE;
+  }
+  stream->protection_scheme_type = QT_FOURCC ((const guint8 *) schm->data + 12);
+  stream->protection_scheme_version =
+      QT_UINT32 ((const guint8 *) schm->data + 16);
+
+  GST_DEBUG_OBJECT (qtdemux,
+      "protection_scheme_type: %" GST_FOURCC_FORMAT ", "
+      "protection_scheme_version: %#010x",
+      GST_FOURCC_ARGS (stream->protection_scheme_type),
+      stream->protection_scheme_version);
+
+  schi = qtdemux_tree_get_child_by_type (sinf, FOURCC_schi);
+  if (!schi) {
+    GST_DEBUG_OBJECT (qtdemux, "sinf box does not contain schi box");
+    return FALSE;
+  }
+  if (stream->protection_scheme_type == FOURCC_cenc) {
+    QtDemuxCencSampleSetInfo *info;
+    GNode *tenc;
+    const guint8 *tenc_data;
+    guint32 isEncrypted;
+    guint8 iv_size;
+    const guint8 *default_kid;
+    GstBuffer *kid_buf;
+
+    if (G_UNLIKELY (!stream->protection_scheme_info))
+      stream->protection_scheme_info =
+          g_malloc0 (sizeof (QtDemuxCencSampleSetInfo));
+
+    info = (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+
+    tenc = qtdemux_tree_get_child_by_type (schi, FOURCC_tenc);
+    if (!tenc) {
+      GST_ERROR_OBJECT (qtdemux, "schi box does not contain tenc box, "
+          "which is mandatory for Common Encryption");
+      return FALSE;
+    }
+    tenc_data = (const guint8 *) tenc->data + 12;
+    isEncrypted = QT_UINT24 (tenc_data);
+    iv_size = QT_UINT8 (tenc_data + 3);
+    default_kid = (tenc_data + 4);
+    kid_buf = gst_buffer_new_allocate (NULL, 16, NULL);
+    gst_buffer_fill (kid_buf, 0, default_kid, 16);
+    if (info->default_properties)
+      gst_structure_free (info->default_properties);
+    info->default_properties =
+        gst_structure_new ("application/x-cenc",
+        "iv_size", G_TYPE_UINT, iv_size,
+        "encrypted", G_TYPE_BOOLEAN, (isEncrypted == 1),
+        "kid", GST_TYPE_BUFFER, kid_buf, NULL);
+    GST_DEBUG_OBJECT (qtdemux, "default sample properties: "
+        "is_encrypted=%u, iv_size=%u", isEncrypted, iv_size);
+    gst_buffer_unref (kid_buf);
+  }
+  return TRUE;
+}
+
 /* parse the traks.
  * With each track we associate a new QtDemuxStream that contains all the info
  * about the trak.
@@ -7818,6 +8447,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
       GST_WARNING_OBJECT (qtdemux, "Stream not found, going to ignore it");
       goto skip_track;
     }
+
+    /* flush samples data from this track from previous moov */
+    gst_qtdemux_stream_flush_segments_data (qtdemux, stream);
+    gst_qtdemux_stream_flush_samples_data (qtdemux, stream);
   }
 
   if (stream->pending_tags == NULL)
@@ -8009,10 +8642,16 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
       GST_FOURCC_ARGS (stream->fourcc));
   GST_LOG_OBJECT (qtdemux, "stsd type len:      %d", len);
 
-  if ((fourcc == FOURCC_drms) || (fourcc == FOURCC_drmi) ||
-      ((fourcc & 0x00FFFFFF) == GST_MAKE_FOURCC ('e', 'n', 'c', 0)))
+  if ((fourcc == FOURCC_drms) || (fourcc == FOURCC_drmi))
     goto error_encrypted;
 
+  if (fourcc == FOURCC_encv || fourcc == FOURCC_enca) {
+    GNode *enc = qtdemux_tree_get_child_by_type (stsd, fourcc);
+    stream->protected = TRUE;
+    if (!qtdemux_parse_protection_scheme_info (qtdemux, stream, enc, &fourcc))
+      GST_ERROR_OBJECT (qtdemux, "Failed to parse protection scheme info");
+  }
+
   if (stream->subtype == FOURCC_vide) {
     guint32 w = 0, h = 0;
     gboolean gray;
@@ -8184,7 +8823,11 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     esds = NULL;
     pasp = NULL;
     /* pick 'the' stsd child */
-    mp4v = qtdemux_tree_get_child_by_type (stsd, fourcc);
+    if (!stream->protected)
+      mp4v = qtdemux_tree_get_child_by_type (stsd, fourcc);
+    else
+      mp4v = qtdemux_tree_get_child_by_type (stsd, FOURCC_encv);
+
     if (mp4v) {
       esds = qtdemux_tree_get_child_by_type (mp4v, FOURCC_esds);
       pasp = qtdemux_tree_get_child_by_type (mp4v, FOURCC_pasp);
@@ -9077,7 +9720,11 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
             GST_TAG_BITRATE, bitrate, NULL);
     }
 
-    mp4a = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4a);
+    if (stream->protected && fourcc == FOURCC_mp4a)
+      mp4a = qtdemux_tree_get_child_by_type (stsd, FOURCC_enca);
+    else
+      mp4a = qtdemux_tree_get_child_by_type (stsd, FOURCC_mp4a);
+
     wave = NULL;
     esds = NULL;
     if (mp4a) {
@@ -9294,7 +9941,7 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak)
     }
     stream->sampled = TRUE;
   } else if (stream->subtype == FOURCC_subp || stream->subtype == FOURCC_text
-      || stream->subtype == FOURCC_sbtl) {
+      || stream->subtype == FOURCC_sbtl || stream->subtype == FOURCC_subt) {
 
     stream->sampled = TRUE;
     stream->sparse = TRUE;
@@ -10890,6 +11537,7 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
   GNode *udta;
   GNode *mvex;
   GstClockTime duration;
+  GNode *pssh;
   guint64 creation_time;
   GstDateTime *datetime = NULL;
   gint version;
@@ -11016,6 +11664,14 @@ qtdemux_parse_tree (GstQTDemux * qtdemux)
     GST_LOG_OBJECT (qtdemux, "No meta node found.");
   }
 
+  /* parse any protection system info */
+  pssh = qtdemux_tree_get_child_by_type (qtdemux->moov_node, FOURCC_pssh);
+  while (pssh) {
+    GST_LOG_OBJECT (qtdemux, "Parsing pssh box.");
+    qtdemux_parse_pssh (qtdemux, pssh);
+    pssh = qtdemux_tree_get_sibling_by_type (pssh, FOURCC_pssh);
+  }
+
   qtdemux->tag_list = qtdemux_add_container_format (qtdemux, qtdemux->tag_list);
 
   return TRUE;
@@ -11716,31 +12372,32 @@ qtdemux_audio_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
   const GstStructure *s;
   const gchar *name;
   gint endian = 0;
+  GstAudioFormat format = 0;
+  gint depth;
 
   GST_DEBUG_OBJECT (qtdemux, "resolve fourcc 0x%08x", GUINT32_TO_BE (fourcc));
 
+  depth = stream->bytes_per_packet * 8;
+
   switch (fourcc) {
     case GST_MAKE_FOURCC ('N', 'O', 'N', 'E'):
     case GST_MAKE_FOURCC ('r', 'a', 'w', ' '):
-      _codec ("Raw 8-bit PCM audio");
-      caps = gst_caps_new_simple ("audio/x-raw",
-          "format", G_TYPE_STRING, "U8",
-          "layout", G_TYPE_STRING, "interleaved", NULL);
-      break;
+      /* 8-bit audio is unsigned */
+      if (depth == 8)
+        format = GST_AUDIO_FORMAT_U8;
+      /* otherwise it's signed and big-endian just like 'twos' */
     case GST_MAKE_FOURCC ('t', 'w', 'o', 's'):
       endian = G_BIG_ENDIAN;
       /* fall-through */
     case GST_MAKE_FOURCC ('s', 'o', 'w', 't'):
     {
       gchar *str;
-      gint depth;
-      GstAudioFormat format;
 
       if (!endian)
         endian = G_LITTLE_ENDIAN;
 
-      depth = stream->bytes_per_packet * 8;
-      format = gst_audio_format_build_integer (TRUE, endian, depth, depth);
+      if (!format)
+        format = gst_audio_format_build_integer (TRUE, endian, depth, depth);
 
       str = g_strdup_printf ("Raw %d-bit PCM audio", depth);
       _codec (str);
@@ -12056,3 +12713,24 @@ qtdemux_generic_caps (GstQTDemux * qtdemux, QtDemuxStream * stream,
   }
   return caps;
 }
+
+static void
+gst_qtdemux_append_protection_system_id (GstQTDemux * qtdemux,
+    const gchar * system_id)
+{
+  gint i;
+
+  if (!qtdemux->protection_system_ids)
+    qtdemux->protection_system_ids =
+        g_ptr_array_new_with_free_func ((GDestroyNotify) g_free);
+  /* Check whether we already have an entry for this system ID. */
+  for (i = 0; i < qtdemux->protection_system_ids->len; ++i) {
+    const gchar *id = g_ptr_array_index (qtdemux->protection_system_ids, i);
+    if (g_ascii_strcasecmp (system_id, id) == 0) {
+      return;
+    }
+  }
+  GST_DEBUG_OBJECT (qtdemux, "Adding cenc protection system ID %s", system_id);
+  g_ptr_array_add (qtdemux->protection_system_ids, g_ascii_strdown (system_id,
+          -1));
+}
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index 6345d9c4560b871d7cb999dcc11e807cc30ba9df..8f0553bc8198b2017783d72957b981de9861c334 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -117,10 +117,10 @@ struct _GstQTDemux {
   /* configured playback region */
   GstSegment segment;
   GstEvent *pending_newsegment;
-  gboolean upstream_newsegment; /* qtdemux received upstream
-                                 * newsegment in TIME format which likely
-                                 * means that upstream is driving the pipeline
-                                 * (adaptive demuxers) */
+  gboolean upstream_format_is_time; /* qtdemux received upstream
+                                     * newsegment in TIME format which likely
+                                     * means that upstream is driving the pipeline
+                                     * (adaptive demuxers / dlna) */
   gint64 seek_offset;
   gint64 push_seek_start;
   gint64 push_seek_stop;
@@ -145,6 +145,10 @@ struct _GstQTDemux {
   guint64 fragment_start_offset;
     
   gint64 chapters_track_id;
+
+  /* protection support */
+  GPtrArray *protection_system_ids; /* Holds identifiers of all content protection systems for all tracks */
+  GQueue protection_event_queue; /* holds copy of upstream protection events */
 };
 
 struct _GstQTDemuxClass {
diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c
index ecd02f26545cff5a5a488c351094f8b705c8ec79..8e8189dea825dc1c103b66da87f09881aee8b944 100644
--- a/gst/isomp4/qtdemux_types.c
+++ b/gst/isomp4/qtdemux_types.c
@@ -189,6 +189,18 @@ static const QtNodeType qt_node_types[] = {
       qtdemux_dump_svmi},
   {FOURCC_scdi, "Stereoscopic Camera and Display Information", 0,
       qtdemux_dump_unknown},
+  {FOURCC_saiz, "sample auxiliary information sizes", 0},
+  {FOURCC_saio, "sample auxiliary information offsets", 0},
+  {FOURCC_encv, "encrypted visual sample entry", 0},
+  {FOURCC_enca, "encrypted audio sample entry", 0},
+  {FOURCC_enct, "encrypted text sample entry", 0},
+  {FOURCC_encs, "encrypted system sample entry", 0},
+  {FOURCC_sinf, "protection scheme information", QT_FLAG_CONTAINER},
+  {FOURCC_frma, "original format", 0},
+  {FOURCC_schm, "scheme type", 0},
+  {FOURCC_schi, "scheme information", QT_FLAG_CONTAINER},
+  {FOURCC_pssh, "protection system specific header", 0},
+  {FOURCC_tenc, "track encryption", 0},
   {0, "unknown", 0,},
 };
 
diff --git a/gst/isomp4/qtdemux_types.h b/gst/isomp4/qtdemux_types.h
index 57ab4f096805ed7f06075eab4e8878fa0e046d0c..43ef77c3a0356c8dcbd729bae4ad4b22aad5588c 100644
--- a/gst/isomp4/qtdemux_types.h
+++ b/gst/isomp4/qtdemux_types.h
@@ -62,7 +62,8 @@ enum TfFlags
   TF_DEFAULT_SAMPLE_DURATION  = 0x000008,   /* default-sample-duration-present */
   TF_DEFAULT_SAMPLE_SIZE      = 0x000010,   /* default-sample-size-present */
   TF_DEFAULT_SAMPLE_FLAGS     = 0x000020,   /* default-sample-flags-present */
-  TF_DURATION_IS_EMPTY        = 0x100000    /* duration-is-empty */
+  TF_DURATION_IS_EMPTY        = 0x010000,   /* duration-is-empty */
+  TF_DEFAULT_BASE_IS_MOOF     = 0x020000    /* default-base-is-moof */
 };
 
 enum TrFlags
diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in
index 55888c5d12c9e6f6588175bbadc18dc8352134e1..9bf1df76279d265b842f5d5e7e965736088a1935 100644
--- a/gst/law/Makefile.in
+++ b/gst/law/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/law
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -236,6 +246,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -592,7 +603,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/law/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/law/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -952,6 +962,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/law/alaw-decode.c b/gst/law/alaw-decode.c
index e08dc57b0668b934509ff8f54228c9b6cc317f7e..88df489ae68f28068306264ff0d0eead9e46598d 100644
--- a/gst/law/alaw-decode.c
+++ b/gst/law/alaw-decode.c
@@ -34,16 +34,12 @@ extern GstStaticPadTemplate alaw_dec_sink_factory;
 GST_DEBUG_CATEGORY_STATIC (alaw_dec_debug);
 #define GST_CAT_DEFAULT alaw_dec_debug
 
-static GstStateChangeReturn
-gst_alaw_dec_change_state (GstElement * element, GstStateChange transition);
-
-static gboolean gst_alaw_dec_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
-static GstFlowReturn gst_alaw_dec_chain (GstPad * pad, GstObject * parent,
+static gboolean gst_alaw_dec_set_format (GstAudioDecoder * dec, GstCaps * caps);
+static GstFlowReturn gst_alaw_dec_handle_frame (GstAudioDecoder * dec,
     GstBuffer * buffer);
 
 #define gst_alaw_dec_parent_class parent_class
-G_DEFINE_TYPE (GstALawDec, gst_alaw_dec, GST_TYPE_ELEMENT);
+G_DEFINE_TYPE (GstALawDec, gst_alaw_dec, GST_TYPE_AUDIO_DECODER);
 
 /* some day we might have defines in gstconfig.h that tell us about the
  * desired cpu/memory/binary size trade-offs */
@@ -115,279 +111,120 @@ alaw_to_s16 (guint8 a_val)
 #endif /* GST_ALAW_DEC_USE_TABLE */
 
 static gboolean
-gst_alaw_dec_setcaps (GstALawDec * alawdec, GstCaps * caps)
+gst_alaw_dec_set_format (GstAudioDecoder * dec, GstCaps * caps)
 {
+  GstALawDec *alawdec = GST_ALAW_DEC (dec);
   GstStructure *structure;
   int rate, channels;
-  gboolean ret;
-  GstCaps *outcaps;
   GstAudioInfo info;
 
   structure = gst_caps_get_structure (caps, 0);
-
-  ret = gst_structure_get_int (structure, "rate", &rate);
-  ret &= gst_structure_get_int (structure, "channels", &channels);
-  if (!ret)
+  if (!structure) {
+    GST_ERROR_OBJECT (dec, "failed to get structure from caps");
     return FALSE;
-
-  gst_audio_info_init (&info);
-  gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL);
-
-  outcaps = gst_audio_info_to_caps (&info);
-  ret = gst_pad_set_caps (alawdec->srcpad, outcaps);
-  gst_caps_unref (outcaps);
-
-  if (ret) {
-    GST_DEBUG_OBJECT (alawdec, "rate=%d, channels=%d", rate, channels);
-    alawdec->info = info;
   }
-  return ret;
-}
 
-static GstCaps *
-gst_alaw_dec_getcaps (GstPad * pad, GstCaps * filter)
-{
-  GstALawDec *alawdec;
-  GstPad *otherpad;
-  GstCaps *othercaps, *result;
-  GstCaps *templ;
-  const gchar *name;
-  gint i;
-
-  alawdec = GST_ALAW_DEC (GST_PAD_PARENT (pad));
-
-  /* figure out the name of the caps we are going to return */
-  if (pad == alawdec->srcpad) {
-    name = "audio/x-raw";
-    otherpad = alawdec->sinkpad;
-  } else {
-    name = "audio/x-alaw";
-    otherpad = alawdec->srcpad;
-  }
-  /* get caps from the peer, this can return NULL when there is no peer */
-  othercaps = gst_pad_peer_query_caps (otherpad, NULL);
-
-  /* get the template caps to make sure we return something acceptable */
-  templ = gst_pad_get_pad_template_caps (pad);
-
-  if (othercaps) {
-    /* there was a peer */
-    othercaps = gst_caps_make_writable (othercaps);
-
-    /* go through the caps and remove the fields we don't want */
-    for (i = 0; i < gst_caps_get_size (othercaps); i++) {
-      GstStructure *structure;
-
-      structure = gst_caps_get_structure (othercaps, i);
-
-      /* adjust the name */
-      gst_structure_set_name (structure, name);
-
-      if (pad == alawdec->sinkpad) {
-        /* remove the fields we don't want */
-        gst_structure_remove_fields (structure, "format", "layout", NULL);
-      } else {
-        /* add fixed fields */
-        gst_structure_set (structure, "format", G_TYPE_STRING,
-            GST_AUDIO_NE (S16), "layout", G_TYPE_STRING, "interleaved", NULL);
-      }
-    }
-    /* filter against the allowed caps of the pad to return our result */
-    result = gst_caps_intersect (othercaps, templ);
-    gst_caps_unref (othercaps);
-    gst_caps_unref (templ);
-  } else {
-    /* there was no peer, return the template caps */
-    result = templ;
-  }
-  if (filter && result) {
-    GstCaps *temp;
-
-    temp = gst_caps_intersect (result, filter);
-    gst_caps_unref (result);
-    result = temp;
+  if (!gst_structure_get_int (structure, "rate", &rate)) {
+    GST_ERROR_OBJECT (dec, "failed to find field rate in input caps");
+    return FALSE;
   }
-  return result;
-}
 
-static gboolean
-gst_alaw_dec_query (GstPad * pad, GstObject * parent, GstQuery * query)
-{
-  gboolean res;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CAPS:
-    {
-      GstCaps *filter, *caps;
-
-      gst_query_parse_caps (query, &filter);
-      caps = gst_alaw_dec_getcaps (pad, filter);
-      gst_query_set_caps_result (query, caps);
-      gst_caps_unref (caps);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, parent, query);
-      break;
+  if (!gst_structure_get_int (structure, "channels", &channels)) {
+    GST_ERROR_OBJECT (dec, "failed to find field channels in input caps");
+    return FALSE;
   }
-  return res;
-}
-
-static void
-gst_alaw_dec_class_init (GstALawDecClass * klass)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alaw_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alaw_dec_sink_factory));
-
-  gst_element_class_set_static_metadata (element_class, "A Law audio decoder",
-      "Codec/Decoder/Audio", "Convert 8bit A law to 16bit PCM",
-      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
 
-  element_class->change_state = GST_DEBUG_FUNCPTR (gst_alaw_dec_change_state);
-
-  GST_DEBUG_CATEGORY_INIT (alaw_dec_debug, "alawdec", 0, "A Law audio decoder");
-}
+  gst_audio_info_init (&info);
+  gst_audio_info_set_format (&info, GST_AUDIO_FORMAT_S16, rate, channels, NULL);
 
-static void
-gst_alaw_dec_init (GstALawDec * alawdec)
-{
-  alawdec->sinkpad =
-      gst_pad_new_from_static_template (&alaw_dec_sink_factory, "sink");
-  gst_pad_set_query_function (alawdec->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_dec_query));
-  gst_pad_set_event_function (alawdec->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_dec_event));
-  gst_pad_set_chain_function (alawdec->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_dec_chain));
-  gst_element_add_pad (GST_ELEMENT (alawdec), alawdec->sinkpad);
-
-  alawdec->srcpad =
-      gst_pad_new_from_static_template (&alaw_dec_src_factory, "src");
-  gst_pad_use_fixed_caps (alawdec->srcpad);
-  gst_pad_set_query_function (alawdec->srcpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_dec_query));
-  gst_element_add_pad (GST_ELEMENT (alawdec), alawdec->srcpad);
-}
+  GST_DEBUG_OBJECT (alawdec, "rate=%d, channels=%d", rate, channels);
 
-static gboolean
-gst_alaw_dec_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstALawDec *alawdec;
-  gboolean res;
-
-  alawdec = GST_ALAW_DEC (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
-
-      gst_event_parse_caps (event, &caps);
-      gst_alaw_dec_setcaps (alawdec, caps);
-      gst_event_unref (event);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_event_default (pad, parent, event);
-      break;
-  }
-  return res;
+  return gst_audio_decoder_set_output_format (dec, &info);
 }
 
 static GstFlowReturn
-gst_alaw_dec_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_alaw_dec_handle_frame (GstAudioDecoder * dec, GstBuffer * buffer)
 {
-  GstALawDec *alawdec;
   GstMapInfo inmap, outmap;
   gint16 *linear_data;
   guint8 *alaw_data;
   gsize alaw_size, linear_size;
   GstBuffer *outbuf;
   gint i;
-  GstFlowReturn ret;
 
-  alawdec = GST_ALAW_DEC (parent);
-
-  if (G_UNLIKELY (!GST_AUDIO_INFO_IS_VALID (&alawdec->info)))
-    goto not_negotiated;
+  if (!buffer) {
+    return GST_FLOW_OK;
+  }
 
-  GST_LOG_OBJECT (alawdec, "buffer with ts=%" GST_TIME_FORMAT,
-      GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)));
+  if (!gst_buffer_map (buffer, &inmap, GST_MAP_READ)) {
+    GST_ERROR_OBJECT (dec, "failed to map input buffer");
+    goto error_failed_map_input_buffer;
+  }
 
-  gst_buffer_map (buffer, &inmap, GST_MAP_READ);
   alaw_data = inmap.data;
   alaw_size = inmap.size;
 
   linear_size = alaw_size * 2;
 
-  outbuf = gst_buffer_new_allocate (NULL, linear_size, NULL);
-
-  gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
-  linear_data = (gint16 *) outmap.data;
-
-  /* copy discont flag */
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-
-  GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buffer);
-  if (GST_BUFFER_DURATION_IS_VALID (buffer)) {
-    GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (buffer);
-  } else {
-    GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (GST_SECOND,
-        linear_size, GST_AUDIO_INFO_RATE (&alawdec->info) *
-        GST_AUDIO_INFO_BPF (&alawdec->info));
+  outbuf = gst_audio_decoder_allocate_output_buffer (dec, linear_size);
+  if (!gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE)) {
+    GST_ERROR_OBJECT (dec, "failed to map input buffer");
+    goto error_failed_map_output_buffer;
   }
 
+  linear_data = (gint16 *) outmap.data;
   for (i = 0; i < alaw_size; i++) {
     linear_data[i] = alaw_to_s16 (alaw_data[i]);
   }
 
   gst_buffer_unmap (outbuf, &outmap);
   gst_buffer_unmap (buffer, &inmap);
-  gst_buffer_unref (buffer);
 
-  ret = gst_pad_push (alawdec->srcpad, outbuf);
+  return gst_audio_decoder_finish_frame (dec, outbuf, -1);
 
-  return ret;
+error_failed_map_output_buffer:
+  gst_buffer_unref (outbuf);
 
-not_negotiated:
-  {
-    gst_buffer_unref (buffer);
-    GST_WARNING_OBJECT (alawdec, "no input format set: not-negotiated");
-    return GST_FLOW_NOT_NEGOTIATED;
-  }
+error_failed_map_input_buffer:
+  return GST_FLOW_ERROR;
 }
 
-static GstStateChangeReturn
-gst_alaw_dec_change_state (GstElement * element, GstStateChange transition)
+static gboolean
+gst_alaw_dec_start (GstAudioDecoder * dec)
 {
-  GstStateChangeReturn ret;
-  GstALawDec *dec = GST_ALAW_DEC (element);
+  gst_audio_decoder_set_estimate_rate (dec, TRUE);
 
-  switch (transition) {
-    default:
-      break;
-  }
+  return TRUE;
+}
 
-  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
-  if (ret != GST_STATE_CHANGE_SUCCESS)
-    return ret;
+static void
+gst_alaw_dec_class_init (GstALawDecClass * klass)
+{
+  GstElementClass *element_class = (GstElementClass *) klass;
+  GstAudioDecoderClass *audiodec_class = GST_AUDIO_DECODER_CLASS (klass);
 
-  switch (transition) {
-    case GST_STATE_CHANGE_PAUSED_TO_READY:
-      gst_audio_info_init (&dec->info);
-      break;
-    default:
-      break;
-  }
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&alaw_dec_src_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&alaw_dec_sink_factory));
+
+  audiodec_class->start = GST_DEBUG_FUNCPTR (gst_alaw_dec_start);
+  audiodec_class->set_format = GST_DEBUG_FUNCPTR (gst_alaw_dec_set_format);
+  audiodec_class->handle_frame = GST_DEBUG_FUNCPTR (gst_alaw_dec_handle_frame);
 
-  return ret;
+  gst_element_class_set_static_metadata (element_class, "A Law audio decoder",
+      "Codec/Decoder/Audio",
+      "Convert 8bit A law to 16bit PCM",
+      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
+
+  GST_DEBUG_CATEGORY_INIT (alaw_dec_debug, "alawdec", 0, "A Law audio decoder");
+}
+
+static void
+gst_alaw_dec_init (GstALawDec * alawdec)
+{
+  gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (alawdec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (alawdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (alawdec));
 }
diff --git a/gst/law/alaw-decode.h b/gst/law/alaw-decode.h
index 0680f5039c43afe8fc5e3725d1f67971e5b2e455..58647dc9e3a7c0941218845d39d423752f9e89e4 100644
--- a/gst/law/alaw-decode.h
+++ b/gst/law/alaw-decode.h
@@ -40,14 +40,11 @@ typedef struct _GstALawDec GstALawDec;
 typedef struct _GstALawDecClass GstALawDecClass;
 
 struct _GstALawDec {
-  GstElement element;
-
-  GstPad *sinkpad,*srcpad;
-  GstAudioInfo info;
+  GstAudioDecoder element;
 };
 
 struct _GstALawDecClass {
-  GstElementClass parent_class;
+  GstAudioDecoderClass parent_class;
 };
 
 GType gst_alaw_dec_get_type(void);
diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c
index 6bcd35e9695acfed64fc814521e1374fc9beeb72..ebee1920fecc6788e07cb8fcfecba372494a3ed8 100644
--- a/gst/law/alaw-encode.c
+++ b/gst/law/alaw-encode.c
@@ -35,12 +35,13 @@ GST_DEBUG_CATEGORY_STATIC (alaw_enc_debug);
 extern GstStaticPadTemplate alaw_enc_src_factory;
 extern GstStaticPadTemplate alaw_enc_sink_factory;
 
-static gboolean gst_alaw_enc_event (GstPad * pad, GstObject * parent,
-    GstEvent * event);
-static GstFlowReturn gst_alaw_enc_chain (GstPad * pad, GstObject * parent,
-    GstBuffer * buffer);
+G_DEFINE_TYPE (GstALawEnc, gst_alaw_enc, GST_TYPE_AUDIO_ENCODER);
 
-G_DEFINE_TYPE (GstALawEnc, gst_alaw_enc, GST_TYPE_ELEMENT);
+static gboolean gst_alaw_enc_start (GstAudioEncoder * audioenc);
+static gboolean gst_alaw_enc_set_format (GstAudioEncoder * enc,
+    GstAudioInfo * info);
+static GstFlowReturn gst_alaw_enc_handle_frame (GstAudioEncoder * enc,
+    GstBuffer * buffer);
 
 /* some day we might have defines in gstconfig.h that tell us about the
  * desired cpu/memory/binary size trade-offs */
@@ -300,198 +301,48 @@ s16_to_alaw (gint pcm_val)
 
 #endif /* GST_ALAW_ENC_USE_TABLE */
 
-static GstCaps *
-gst_alaw_enc_getcaps (GstPad * pad, GstCaps * filter)
+static gboolean
+gst_alaw_enc_start (GstAudioEncoder * audioenc)
 {
-  GstALawEnc *alawenc;
-  GstPad *otherpad;
-  GstCaps *othercaps, *result;
-  GstCaps *templ;
-  const gchar *name;
-  gint i;
-
-  alawenc = GST_ALAW_ENC (GST_PAD_PARENT (pad));
+  GstALawEnc *alawenc = GST_ALAW_ENC (audioenc);
 
-  /* figure out the name of the caps we are going to return */
-  if (pad == alawenc->srcpad) {
-    name = "audio/x-alaw";
-    otherpad = alawenc->sinkpad;
-  } else {
-    name = "audio/x-raw";
-    otherpad = alawenc->srcpad;
-  }
-  /* get caps from the peer, this can return NULL when there is no peer */
-  othercaps = gst_pad_peer_query_caps (otherpad, NULL);
-
-  /* get the template caps to make sure we return something acceptable */
-  templ = gst_pad_get_pad_template_caps (pad);
-
-  if (othercaps) {
-    /* there was a peer */
-    othercaps = gst_caps_make_writable (othercaps);
-
-    /* go through the caps and remove the fields we don't want */
-    for (i = 0; i < gst_caps_get_size (othercaps); i++) {
-      GstStructure *structure;
-
-      structure = gst_caps_get_structure (othercaps, i);
-
-      /* adjust the name */
-      gst_structure_set_name (structure, name);
-
-      if (pad == alawenc->srcpad) {
-        /* remove the fields we don't want */
-        gst_structure_remove_fields (structure, "format", NULL);
-      } else {
-        /* add fixed fields */
-        gst_structure_set (structure, "format", G_TYPE_STRING,
-            GST_AUDIO_NE (S16), NULL);
-      }
-    }
-    /* filter against the allowed caps of the pad to return our result */
-    result = gst_caps_intersect (othercaps, templ);
-    gst_caps_unref (templ);
-    gst_caps_unref (othercaps);
-  } else {
-    /* there was no peer, return the template caps */
-    result = templ;
-  }
-  if (filter && result) {
-    GstCaps *temp;
-
-    temp = gst_caps_intersect (result, filter);
-    gst_caps_unref (result);
-    result = temp;
-  }
+  alawenc->channels = 0;
+  alawenc->rate = 0;
 
-  return result;
+  return TRUE;
 }
 
 static gboolean
-gst_alaw_enc_query (GstPad * pad, GstObject * parent, GstQuery * query)
-{
-  gboolean res;
-
-  switch (GST_QUERY_TYPE (query)) {
-    case GST_QUERY_CAPS:
-    {
-      GstCaps *filter, *caps;
-
-      gst_query_parse_caps (query, &filter);
-      caps = gst_alaw_enc_getcaps (pad, filter);
-      gst_query_set_caps_result (query, caps);
-      gst_caps_unref (caps);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_query_default (pad, parent, query);
-      break;
-  }
-  return res;
-}
-
-static gboolean
-gst_alaw_enc_setcaps (GstALawEnc * alawenc, GstCaps * caps)
+gst_alaw_enc_set_format (GstAudioEncoder * audioenc, GstAudioInfo * info)
 {
+  GstCaps *base_caps;
   GstStructure *structure;
+  GstALawEnc *alawenc = GST_ALAW_ENC (audioenc);
   gboolean ret;
-  GstCaps *base_caps;
 
-  structure = gst_caps_get_structure (caps, 0);
-  gst_structure_get_int (structure, "channels", &alawenc->channels);
-  gst_structure_get_int (structure, "rate", &alawenc->rate);
+  alawenc->rate = info->rate;
+  alawenc->channels = info->channels;
 
-  base_caps = gst_pad_get_pad_template_caps (alawenc->srcpad);
+  base_caps =
+      gst_pad_get_pad_template_caps (GST_AUDIO_ENCODER_SRC_PAD (audioenc));
+  g_assert (base_caps);
   base_caps = gst_caps_make_writable (base_caps);
+  g_assert (base_caps);
+
   structure = gst_caps_get_structure (base_caps, 0);
+  g_assert (structure);
   gst_structure_set (structure, "rate", G_TYPE_INT, alawenc->rate, NULL);
   gst_structure_set (structure, "channels", G_TYPE_INT, alawenc->channels,
       NULL);
 
-  GST_DEBUG_OBJECT (alawenc, "rate=%d, channels=%d", alawenc->rate,
-      alawenc->channels);
-
-  ret = gst_pad_set_caps (alawenc->srcpad, base_caps);
-
+  ret = gst_audio_encoder_set_output_format (audioenc, base_caps);
   gst_caps_unref (base_caps);
 
   return ret;
 }
 
-static void
-gst_alaw_enc_class_init (GstALawEncClass * klass)
-{
-  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alaw_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&alaw_enc_sink_factory));
-
-  gst_element_class_set_static_metadata (element_class,
-      "A Law audio encoder", "Codec/Encoder/Audio",
-      "Convert 16bit PCM to 8bit A law",
-      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
-
-  GST_DEBUG_CATEGORY_INIT (alaw_enc_debug, "alawenc", 0, "A Law audio encoder");
-}
-
-static void
-gst_alaw_enc_init (GstALawEnc * alawenc)
-{
-  alawenc->sinkpad =
-      gst_pad_new_from_static_template (&alaw_enc_sink_factory, "sink");
-  gst_pad_set_query_function (alawenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_enc_query));
-  gst_pad_set_event_function (alawenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_enc_event));
-  gst_pad_set_chain_function (alawenc->sinkpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_enc_chain));
-  gst_element_add_pad (GST_ELEMENT (alawenc), alawenc->sinkpad);
-
-  alawenc->srcpad =
-      gst_pad_new_from_static_template (&alaw_enc_src_factory, "src");
-  gst_pad_set_query_function (alawenc->srcpad,
-      GST_DEBUG_FUNCPTR (gst_alaw_enc_query));
-  gst_pad_use_fixed_caps (alawenc->srcpad);
-  gst_element_add_pad (GST_ELEMENT (alawenc), alawenc->srcpad);
-
-  /* init rest */
-  alawenc->channels = 0;
-  alawenc->rate = 0;
-}
-
-static gboolean
-gst_alaw_enc_event (GstPad * pad, GstObject * parent, GstEvent * event)
-{
-  GstALawEnc *alawenc;
-  gboolean res;
-
-  alawenc = GST_ALAW_ENC (parent);
-
-  switch (GST_EVENT_TYPE (event)) {
-    case GST_EVENT_CAPS:
-    {
-      GstCaps *caps;
-
-      gst_event_parse_caps (event, &caps);
-      gst_alaw_enc_setcaps (alawenc, caps);
-      gst_event_unref (event);
-
-      res = TRUE;
-      break;
-    }
-    default:
-      res = gst_pad_event_default (pad, parent, event);
-      break;
-  }
-  return res;
-}
-
 static GstFlowReturn
-gst_alaw_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
+gst_alaw_enc_handle_frame (GstAudioEncoder * audioenc, GstBuffer * buffer)
 {
   GstALawEnc *alawenc;
   GstMapInfo inmap, outmap;
@@ -500,13 +351,17 @@ gst_alaw_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
   guint8 *alaw_data;
   guint alaw_size;
   GstBuffer *outbuf;
-  gint i;
   GstFlowReturn ret;
-  GstClockTime timestamp, duration;
+  gint i;
 
-  alawenc = GST_ALAW_ENC (parent);
+  if (!buffer) {
+    ret = GST_FLOW_OK;
+    goto done;
+  }
+
+  alawenc = GST_ALAW_ENC (audioenc);
 
-  if (G_UNLIKELY (alawenc->rate == 0 || alawenc->channels == 0))
+  if (!alawenc->rate || !alawenc->channels)
     goto not_negotiated;
 
   gst_buffer_map (buffer, &inmap, GST_MAP_READ);
@@ -515,29 +370,12 @@ gst_alaw_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
   alaw_size = linear_size / 2;
 
-  timestamp = GST_BUFFER_TIMESTAMP (buffer);
-  duration = GST_BUFFER_DURATION (buffer);
-
-  GST_LOG_OBJECT (alawenc, "buffer with ts=%" GST_TIME_FORMAT,
-      GST_TIME_ARGS (timestamp));
+  outbuf = gst_audio_encoder_allocate_output_buffer (audioenc, alaw_size);
 
-  outbuf = gst_buffer_new_allocate (NULL, alaw_size, NULL);
-
-  if (duration == GST_CLOCK_TIME_NONE) {
-    duration = gst_util_uint64_scale_int (alaw_size,
-        GST_SECOND, alawenc->rate * alawenc->channels);
-  }
+  g_assert (outbuf);
 
   gst_buffer_map (outbuf, &outmap, GST_MAP_WRITE);
   alaw_data = outmap.data;
-  alaw_size = outmap.size;
-
-  /* copy discont flag */
-  if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))
-    GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
-
-  GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
-  GST_BUFFER_DURATION (outbuf) = duration;
 
   for (i = 0; i < alaw_size; i++) {
     alaw_data[i] = s16_to_alaw (linear_data[i]);
@@ -545,15 +383,45 @@ gst_alaw_enc_chain (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 
   gst_buffer_unmap (outbuf, &outmap);
   gst_buffer_unmap (buffer, &inmap);
-  gst_buffer_unref (buffer);
 
-  ret = gst_pad_push (alawenc->srcpad, outbuf);
+  ret = gst_audio_encoder_finish_frame (audioenc, outbuf, -1);
 
+done:
   return ret;
 
 not_negotiated:
   {
-    gst_buffer_unref (buffer);
-    return GST_FLOW_NOT_NEGOTIATED;
+    GST_DEBUG_OBJECT (alawenc, "no format negotiated");
+    ret = GST_FLOW_NOT_NEGOTIATED;
+    goto done;
   }
 }
+
+static void
+gst_alaw_enc_class_init (GstALawEncClass * klass)
+{
+  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
+  GstAudioEncoderClass *audio_encoder_class = GST_AUDIO_ENCODER_CLASS (klass);
+
+  audio_encoder_class->start = GST_DEBUG_FUNCPTR (gst_alaw_enc_start);
+  audio_encoder_class->set_format = GST_DEBUG_FUNCPTR (gst_alaw_enc_set_format);
+  audio_encoder_class->handle_frame =
+      GST_DEBUG_FUNCPTR (gst_alaw_enc_handle_frame);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&alaw_enc_src_factory));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&alaw_enc_sink_factory));
+
+  gst_element_class_set_static_metadata (element_class,
+      "A Law audio encoder", "Codec/Encoder/Audio",
+      "Convert 16bit PCM to 8bit A law",
+      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
+  GST_DEBUG_CATEGORY_INIT (alaw_enc_debug, "alawenc", 0, "A Law audio encoder");
+}
+
+static void
+gst_alaw_enc_init (GstALawEnc * alawenc)
+{
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (alawenc));
+}
diff --git a/gst/law/alaw-encode.h b/gst/law/alaw-encode.h
index 16a61ddd57dc00df543d6750ff510eec26e88c3a..7b08f483bcc85f3b734c93290c8930b48a9b226e 100644
--- a/gst/law/alaw-encode.h
+++ b/gst/law/alaw-encode.h
@@ -40,16 +40,14 @@ typedef struct _GstALawEnc GstALawEnc;
 typedef struct _GstALawEncClass GstALawEncClass;
 
 struct _GstALawEnc {
-  GstElement element;
-
-  GstPad *sinkpad,*srcpad;
+  GstAudioEncoder encoder;
 
   gint channels;
   gint rate;
 };
 
 struct _GstALawEncClass {
-  GstElementClass parent_class;
+  GstAudioEncoderClass parent_class;
 };
 
 GType gst_alaw_enc_get_type(void);
diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c
index a4bd0a644b68ff83a082691cde2f973628b0491e..4d463bcde8052dfd2611da728db48455403fd0c9 100644
--- a/gst/law/mulaw-decode.c
+++ b/gst/law/mulaw-decode.c
@@ -169,4 +169,7 @@ static void
 gst_mulawdec_init (GstMuLawDec * mulawdec)
 {
   gst_audio_decoder_set_needs_format (GST_AUDIO_DECODER (mulawdec), TRUE);
+  gst_audio_decoder_set_use_default_pad_acceptcaps (GST_AUDIO_DECODER_CAST
+      (mulawdec), TRUE);
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_DECODER_SINK_PAD (mulawdec));
 }
diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c
index e92e5e6d17db5e8e1bb7a6e216277a98812868b3..2e0b14b967579c4047e76250c3e6aa2a8a84b41f 100644
--- a/gst/law/mulaw-encode.c
+++ b/gst/law/mulaw-encode.c
@@ -207,5 +207,5 @@ gst_mulawenc_class_init (GstMuLawEncClass * klass)
 static void
 gst_mulawenc_init (GstMuLawEnc * mulawenc)
 {
-
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_AUDIO_ENCODER_SINK_PAD (mulawenc));
 }
diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in
index 42d3aaaf0f0eb1fb51336555ff8127b0107ef342..8fb1f94124e1bab25827a1def704ac94402ff4bc 100644
--- a/gst/level/Makefile.in
+++ b/gst/level/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/level
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/level/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/level/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in
index 8d4847e240b42a4a6f48e1dff33d607cfd46c93c..b1dce4a686fd2c38eabb964433b4e4b7efbf69c2 100644
--- a/gst/matroska/Makefile.in
+++ b/gst/matroska/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/matroska
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -234,6 +244,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -619,7 +630,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/matroska/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/matroska/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1000,6 +1010,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index 76fd8b830e04613d8ab910ff8e92974a0ae67080..1d84abca6f6d8f26e29a8554f3ae99780bd34f59 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -239,7 +239,7 @@ gst_matroska_demux_class_init (GstMatroskaDemuxClass * klass)
   gst_element_class_set_static_metadata (gstelement_class, "Matroska demuxer",
       "Codec/Demuxer",
       "Demuxes Matroska/WebM streams into video/audio/subtitles",
-      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
+      "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 }
 
 static void
@@ -397,6 +397,7 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
   GstPadTemplate *templ = NULL;
   GstStreamFlags stream_flags;
   GstCaps *caps = NULL;
+  GstTagList *cached_taglist;
   gchar *padname = NULL;
   GstFlowReturn ret;
   guint32 id, riff_fourcc = 0;
@@ -1128,6 +1129,13 @@ gst_matroska_demux_add_stream (GstMatroskaDemux * demux, GstEbmlRead * ebml)
     return ret;
   }
 
+  /* check for a cached track taglist  */
+  cached_taglist =
+      (GstTagList *) g_hash_table_lookup (demux->common.cached_track_taglists,
+      GUINT_TO_POINTER (context->uid));
+  if (cached_taglist)
+    gst_tag_list_insert (context->tags, cached_taglist, GST_TAG_MERGE_APPEND);
+
   /* now create the GStreamer connectivity */
   switch (context->type) {
     case GST_MATROSKA_TRACK_TYPE_VIDEO:{
@@ -2986,25 +2994,16 @@ 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);
+  /* The subtitle buffer we push out should not include a NUL terminator as
+   * part of the data. */
+  if (map.data[map.size - 1] == '\0') {
+    gst_buffer_set_size (*buf, map.size - 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)) {
+    if (g_utf8_validate ((gchar *) map.data, map.size, NULL)) {
       goto next;
     }
     GST_WARNING_OBJECT (element, "subtitle stream %" G_GUINT64_FORMAT
@@ -4602,7 +4601,7 @@ pause:
       /* perform EOS logic */
 
       /* If we were in the headers, make sure we send no-more-pads.
-         This will ensure decodebin2 does not get stuck thinking
+         This will ensure decodebin does not get stuck thinking
          the chain is not complete yet, and waiting indefinitely. */
       if (G_UNLIKELY (demux->common.state == GST_MATROSKA_READ_STATE_HEADER)) {
         if (demux->common.src->len == 0) {
diff --git a/gst/matroska/matroska-demux.h b/gst/matroska/matroska-demux.h
index 624d17730419c92dde61368000ba65c82058c537..d8c2ffe27f27bc9c1dec0ce2ca6c21e34f034b27 100644
--- a/gst/matroska/matroska-demux.h
+++ b/gst/matroska/matroska-demux.h
@@ -63,7 +63,6 @@ typedef struct _GstMatroskaDemux {
 
   /* state */
   gboolean                 streaming;
-  guint                    level_up;
   guint64                  seek_block;
   gboolean                 seek_first;
 
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index f555f0df95ce88250ce8d115e9434e3547cae0d8..6c9301820f27bc70ffd374e72c193128d3c43e62 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -301,7 +301,7 @@ gst_matroska_mux_class_init (GstMatroskaMuxClass * klass)
   gst_element_class_set_static_metadata (gstelement_class, "Matroska muxer",
       "Codec/Muxer",
       "Muxes video/audio/subtitle streams into a matroska stream",
-      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
+      "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 
   GST_DEBUG_CATEGORY_INIT (matroskamux_debug, "matroskamux", 0,
       "Matroska muxer");
@@ -341,7 +341,7 @@ gst_matroska_mux_class_init (GstMatroskaMuxClass * klass)
   parent_class = g_type_class_peek_parent (klass);
 }
 
-/**
+/*
  * Start of pad option handler code
  */
 #define DEFAULT_PAD_FRAME_DURATION TRUE
@@ -2675,7 +2675,7 @@ gst_matroska_mux_start (GstMatroskaMux * mux)
       gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
       GST_INFO_OBJECT (mux, "downstream is %sseekable", seekable ? "" : "not ");
     } else {
-      /* have to assume seeking is supported if query not handled downstream */
+      /* assume seeking is not supported if query not handled downstream */
       GST_WARNING_OBJECT (mux, "downstream did not handle seeking query");
       seekable = FALSE;
     }
diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c
index 11de18b50336519c44b1fff28429aab3187bd469..2735b39f65d45d762a015f1ef82d5e1814136ba3 100644
--- a/gst/matroska/matroska-parse.c
+++ b/gst/matroska/matroska-parse.c
@@ -182,7 +182,7 @@ gst_matroska_parse_class_init (GstMatroskaParseClass * klass)
   gst_element_class_set_static_metadata (gstelement_class,
       "Matroska parser", "Codec/Parser",
       "Parses Matroska/WebM streams into video/audio/subtitles",
-      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
+      "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 }
 
 static void
diff --git a/gst/matroska/matroska-parse.h b/gst/matroska/matroska-parse.h
index 0d61ba521b325c5d18bfe5c890f6f98f7342e8ee..7d598f280616782edafb47893e9c8ec27203bbfd 100644
--- a/gst/matroska/matroska-parse.h
+++ b/gst/matroska/matroska-parse.h
@@ -62,7 +62,6 @@ typedef struct _GstMatroskaParse {
 
   /* state */
   //gboolean                 streaming;
-  guint                    level_up;
   guint64                  seek_block;
   gboolean                 seek_first;
 
diff --git a/gst/matroska/matroska-read-common.c b/gst/matroska/matroska-read-common.c
index 57180867869ae9b61eb34e7c92e00f89ea3aef2e..2639251eac6e7d35f2fb0890abc1925ed08cc3f1 100644
--- a/gst/matroska/matroska-read-common.c
+++ b/gst/matroska/matroska-read-common.c
@@ -2034,6 +2034,7 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
     key_val = g_strdup_printf ("%s=%s", name_with_parent, value);
     gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
         GST_TAG_EXTENDED_COMMENT, key_val, NULL);
+    g_free (key_val);
   } else if (tag && value && *value != '\0') {
     gboolean matched = FALSE;
     guint i;
@@ -2078,6 +2079,7 @@ gst_matroska_read_common_parse_metadata_id_simple_tag (GstMatroskaReadCommon *
       key_val = g_strdup_printf ("%s=%s", tag, value);
       gst_tag_list_add (*p_taglist, GST_TAG_MERGE_APPEND,
           GST_TAG_EXTENDED_COMMENT, key_val, NULL);
+      g_free (key_val);
     }
   }
 
@@ -2390,9 +2392,21 @@ gst_matroska_read_common_parse_metadata_id_tag (GstMatroskaReadCommon * common,
         }
       }
       if (!found) {
-        GST_FIXME_OBJECT (common->sinkpad,
+        /* Cache the track taglist: possibly belongs to a track that will be parsed
+           later in gst_matroska_demux.c:gst_matroska_demux_add_stream (...) */
+        gpointer track_uid = GUINT_TO_POINTER (tgt);
+        GstTagList *cached_taglist =
+            g_hash_table_lookup (common->cached_track_taglists, track_uid);
+        if (cached_taglist)
+          gst_tag_list_insert (cached_taglist, taglist, GST_TAG_MERGE_REPLACE);
+        else {
+          gst_tag_list_ref (taglist);
+          g_hash_table_insert (common->cached_track_taglists, track_uid,
+              taglist);
+        }
+        GST_DEBUG_OBJECT (common->sinkpad,
             "Found track-specific tag(s), but track %" G_GUINT64_FORMAT
-            " is not known (yet?)", tgt);
+            " is not known yet, caching", tgt);
       }
     }
   } else
@@ -2842,6 +2856,9 @@ gst_matroska_read_common_init (GstMatroskaReadCommon * ctx)
   ctx->index = NULL;
   ctx->global_tags = NULL;
   ctx->adapter = gst_adapter_new ();
+  ctx->cached_track_taglists =
+      g_hash_table_new_full (NULL, NULL, NULL,
+      (GDestroyNotify) gst_tag_list_unref);
 }
 
 void
@@ -2858,6 +2875,9 @@ gst_matroska_read_common_finalize (GstMatroskaReadCommon * ctx)
   }
 
   g_object_unref (ctx->adapter);
+  g_hash_table_remove_all (ctx->cached_track_taglists);
+  g_hash_table_unref (ctx->cached_track_taglists);
+
 }
 
 void
diff --git a/gst/matroska/matroska-read-common.h b/gst/matroska/matroska-read-common.h
index 3be95420894a97d62658db1d89db4f8466e4299b..ed01e1fad33fe96f24cb23f29f5596366ae54acd 100644
--- a/gst/matroska/matroska-read-common.h
+++ b/gst/matroska/matroska-read-common.h
@@ -102,6 +102,10 @@ typedef struct _GstMatroskaReadCommon {
 
   /* push based mode usual suspects */
   GstAdapter              *adapter;
+
+  /* cache for track tags that forward-reference their tracks */
+  GHashTable *cached_track_taglists ;
+ 
 } GstMatroskaReadCommon;
 
 GstFlowReturn gst_matroska_decode_content_encodings (GArray * encodings);
diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c
index 2b83b6c1b6e3aa606f881553a3f8c52282c99362..0ba330fd419e21f0f9bf3625dee34f1e3cae2615 100644
--- a/gst/matroska/webm-mux.c
+++ b/gst/matroska/webm-mux.c
@@ -90,7 +90,7 @@ gst_webm_mux_class_init (GstWebMMuxClass * klass)
   gst_element_class_set_static_metadata (gstelement_class, "WebM muxer",
       "Codec/Muxer",
       "Muxes video and audio streams into a WebM stream",
-      "GStreamer maintainers <gstreamer-devel@lists.sourceforge.net>");
+      "GStreamer maintainers <gstreamer-devel@lists.freedesktop.org>");
 }
 
 static void
diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in
index 098ce20ed1aea32119b666c1ddcdb30980d0ee5d..4bd58212431e8261016e9f20432615c45120b8ba 100644
--- a/gst/monoscope/Makefile.in
+++ b/gst/monoscope/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/monoscope
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -573,7 +584,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/monoscope/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/monoscope/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -898,6 +908,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in
index 7289eec8279bc3a556416d9797bb88878997c67b..7a9f2934f663c181fd5a8ab4bd2570b2191b6dc4 100644
--- a/gst/multifile/Makefile.in
+++ b/gst/multifile/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -17,7 +17,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = test-splitmux-part-reader$(EXEEXT)
 subdir = gst/multifile
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -255,6 +265,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -624,7 +635,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/multifile/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/multifile/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1085,6 +1095,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
 	uninstall-am uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c
index 01dae987a71bbc15b2566a5fd93191193e38d6f3..316c6e0e12a0b171ea8f5f114acc97b3bbdd7f96 100644
--- a/gst/multifile/gstmultifilesrc.c
+++ b/gst/multifile/gstmultifilesrc.c
@@ -299,7 +299,14 @@ gst_multi_file_src_set_property (GObject * object, guint prop_id,
       gst_multi_file_src_set_location (src, g_value_get_string (value));
       break;
     case PROP_INDEX:
-      src->index = g_value_get_int (value);
+      GST_OBJECT_LOCK (src);
+      /* index was really meant to be read-only, but for backwards-compatibility
+       * we set start_index to make it work as it used to */
+      if (!GST_OBJECT_FLAG_IS_SET (src, GST_BASE_SRC_FLAG_STARTED))
+        src->start_index = g_value_get_int (value);
+      else
+        src->index = g_value_get_int (value);
+      GST_OBJECT_UNLOCK (src);
       break;
     case PROP_START_INDEX:
       src->start_index = g_value_get_int (value);
diff --git a/gst/multifile/gstsplitmuxpartreader.c b/gst/multifile/gstsplitmuxpartreader.c
index 54bd6af9766a71f1fe86d455d0100e62a18ddb6a..a5cda02adf500f78e33408cc47618ee3c24d0621 100644
--- a/gst/multifile/gstsplitmuxpartreader.c
+++ b/gst/multifile/gstsplitmuxpartreader.c
@@ -34,6 +34,9 @@ GST_DEBUG_CATEGORY_STATIC (splitmux_part_debug);
 #define SPLITMUX_PART_WAIT(p) g_cond_wait (&(p)->inactive_cond, &(p)->lock)
 #define SPLITMUX_PART_BROADCAST(p) g_cond_broadcast (&(p)->inactive_cond)
 
+#define SPLITMUX_PART_TYPE_LOCK(p) g_mutex_lock(&(p)->type_lock)
+#define SPLITMUX_PART_TYPE_UNLOCK(p) g_mutex_unlock(&(p)->type_lock)
+
 enum
 {
   SIGNAL_PREPARED,
@@ -628,6 +631,7 @@ gst_splitmux_part_reader_init (GstSplitMuxPartReader * reader)
 
   g_cond_init (&reader->inactive_cond);
   g_mutex_init (&reader->lock);
+  g_mutex_init (&reader->type_lock);
 
   /* FIXME: Create elements on a state change */
   reader->src = gst_element_factory_make ("filesrc", NULL);
@@ -672,6 +676,9 @@ splitmux_part_reader_finalize (GObject * object)
 {
   GstSplitMuxPartReader *reader = (GstSplitMuxPartReader *) object;
 
+  g_mutex_clear (&reader->lock);
+  g_mutex_clear (&reader->type_lock);
+
   g_free (reader->path);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -1027,11 +1034,13 @@ gst_splitmux_part_reader_change_state (GstElement * element,
       break;
     }
     case GST_STATE_CHANGE_READY_TO_PAUSED:{
-      /* Hold the splitmux part lock until after the
+      /* Hold the splitmux type lock until after the
        * parent state change function has finished
-       * changing the states of things */
+       * changing the states of things, and type finding can continue */
       SPLITMUX_PART_LOCK (reader);
       g_object_set (reader->src, "location", reader->path, NULL);
+      SPLITMUX_PART_UNLOCK (reader);
+      SPLITMUX_PART_TYPE_LOCK (reader);
       break;
     }
     case GST_STATE_CHANGE_READY_TO_NULL:
@@ -1057,7 +1066,7 @@ gst_splitmux_part_reader_change_state (GstElement * element,
   if (ret == GST_STATE_CHANGE_FAILURE) {
     if (transition == GST_STATE_CHANGE_READY_TO_PAUSED) {
       /* Make sure to release the lock we took above */
-      SPLITMUX_PART_UNLOCK (reader);
+      SPLITMUX_PART_TYPE_UNLOCK (reader);
     }
     goto beach;
   }
@@ -1065,7 +1074,11 @@ gst_splitmux_part_reader_change_state (GstElement * element,
   switch (transition) {
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       /* Sleep and wait until all streams have been collected, then do the seeks
-       * to measure the stream lengths. This took the part lock above already... */
+       * to measure the stream lengths. This took the type lock above,
+       * but it's OK to release it now and let typefinding happen... */
+      SPLITMUX_PART_TYPE_UNLOCK (reader);
+
+      SPLITMUX_PART_LOCK (reader);
       reader->prep_state = PART_STATE_PREPARING_COLLECT_STREAMS;
       gst_splitmux_part_reader_set_flushing_locked (reader, FALSE);
       reader->running = TRUE;
diff --git a/gst/multifile/gstsplitmuxpartreader.h b/gst/multifile/gstsplitmuxpartreader.h
index b1778f271bee3b9c7bb500e2e433881a51a66323..593d8ae02911b47ef93a4cd087627509fafe47e7 100644
--- a/gst/multifile/gstsplitmuxpartreader.h
+++ b/gst/multifile/gstsplitmuxpartreader.h
@@ -77,6 +77,7 @@ struct _GstSplitMuxPartReader
 
   GCond inactive_cond;
   GMutex lock;
+  GMutex type_lock;
 
   GstSplitMuxPartReaderPadCb get_pad_cb;
   gpointer cb_data;
diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c
index 91d7fc4cd8710a86c2456a983db883236347d0c5..97b0186de6acdae15051da7b8ad9b242adfefbb7 100644
--- a/gst/multifile/gstsplitmuxsink.c
+++ b/gst/multifile/gstsplitmuxsink.c
@@ -80,6 +80,14 @@ enum
 #define DEFAULT_MUXER "mp4mux"
 #define DEFAULT_SINK "filesink"
 
+enum
+{
+  SIGNAL_FORMAT_LOCATION,
+  SIGNAL_LAST
+};
+
+static guint signals[SIGNAL_LAST];
+
 static GstStaticPadTemplate video_sink_template =
 GST_STATIC_PAD_TEMPLATE ("video",
     GST_PAD_SINK,
@@ -202,6 +210,17 @@ gst_splitmux_sink_class_init (GstSplitMuxSinkClass * klass)
       g_param_spec_object ("sink", "Sink",
           "The sink element (or element chain) to use (NULL = default filesink)",
           GST_TYPE_ELEMENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstSplitMuxSink::format-location:
+   * @splitmux: the #GstSplitMuxSink
+   * @fragment_id: the sequence number of the file to be created
+   *
+   * Returns: the location to be used for the next output file
+   */
+  signals[SIGNAL_FORMAT_LOCATION] =
+      g_signal_new ("format-location", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_STRING, 1, G_TYPE_UINT);
 }
 
 static void
@@ -813,6 +832,7 @@ check_completed_gop (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
 {
   GList *cur;
   gboolean ready = TRUE;
+  GstClockTime current_max_in_running_time;
 
   if (splitmux->state == SPLITMUX_STATE_WAITING_GOP_COMPLETE) {
     /* Iterate each pad, and check that the input running time is at least
@@ -846,9 +866,11 @@ check_completed_gop (GstSplitMuxSink * splitmux, MqStreamCtx * ctx)
 
   /* Some pad is not yet ready, or GOP is being pushed
    * either way, sleep and wait to get woken */
+  current_max_in_running_time = splitmux->max_in_running_time;
   while ((splitmux->state == SPLITMUX_STATE_WAITING_GOP_COMPLETE ||
           splitmux->state == SPLITMUX_STATE_START_NEXT_FRAGMENT) &&
-      !ctx->flushing) {
+      !ctx->flushing &&
+      (current_max_in_running_time == splitmux->max_in_running_time)) {
 
     GST_LOG_OBJECT (splitmux, "Sleeping for %s (ctx %p)",
         splitmux->state == SPLITMUX_STATE_WAITING_GOP_COMPLETE ?
@@ -922,7 +944,7 @@ handle_mq_input (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
   gboolean loop_again;
   gboolean keyframe = FALSE;
 
-  GST_LOG_OBJECT (pad, "Fired probe type 0x%x\n", info->type);
+  GST_LOG_OBJECT (pad, "Fired probe type 0x%x", info->type);
 
   /* FIXME: Handle buffer lists, until then make it clear they won't work */
   if (info->type & GST_PAD_PROBE_TYPE_BUFFER_LIST) {
@@ -1139,6 +1161,12 @@ gst_splitmux_sink_request_new_pad (GstElement * element,
           gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS
           (splitmux->muxer), templ->name_template);
     }
+    if (mux_template == NULL) {
+      /* Fallback to find sink pad templates named 'sink_%d' (mpegtsmux) */
+      mux_template =
+          gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS
+          (splitmux->muxer), "sink_%d");
+    }
   }
 
   res = gst_element_request_pad (splitmux->muxer, mux_template, name, caps);
@@ -1416,10 +1444,16 @@ fail:
 static void
 set_next_filename (GstSplitMuxSink * splitmux)
 {
-  if (splitmux->location) {
-    gchar *fname;
+  gchar *fname = NULL;
+
+  g_signal_emit (splitmux, signals[SIGNAL_FORMAT_LOCATION], 0,
+      splitmux->fragment_id, &fname);
+
+  if (!fname)
+    fname = splitmux->location ?
+        g_strdup_printf (splitmux->location, splitmux->fragment_id) : NULL;
 
-    fname = g_strdup_printf (splitmux->location, splitmux->fragment_id);
+  if (fname) {
     GST_INFO_OBJECT (splitmux, "Setting file to %s", fname);
     g_object_set (splitmux->sink, "location", fname, NULL);
     g_free (fname);
diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c
index b827f4362ca9aa235d3608e2d426851fb34b8605..e26c3d1f2160041285ab121996ae7372db6e00bb 100644
--- a/gst/multifile/gstsplitmuxsrc.c
+++ b/gst/multifile/gstsplitmuxsrc.c
@@ -339,23 +339,6 @@ gst_splitmux_part_create (GstSplitMuxSrc * splitmux, char *filename)
   return r;
 }
 
-static gboolean
-resend_sticky (GstPad * pad, GstEvent ** event, GstPad * target)
-{
-  switch (GST_EVENT_TYPE (*event)) {
-    case GST_EVENT_CAPS:
-      if (!gst_splitmux_check_new_caps (SPLITMUX_SRC_PAD (target), *event))
-        return TRUE;
-      return gst_pad_push_event (target, gst_event_ref (*event));
-    case GST_EVENT_STREAM_START:
-      return gst_pad_push_event (target, gst_event_ref (*event));
-    default:
-      return TRUE;
-  }
-
-  return TRUE;
-}
-
 static gboolean
 gst_splitmux_check_new_caps (SplitMuxSrcPad * splitpad, GstEvent * event)
 {
@@ -473,13 +456,6 @@ gst_splitmux_handle_event (GstSplitMuxSrc * splitmux,
       break;
   }
 
-  /* Make sure to send sticky events - from the part_pad directly */
-  if (splitpad->sent_caps == FALSE || splitpad->sent_stream_start == FALSE) {
-    gst_pad_sticky_events_foreach (GST_PAD_CAST (part_pad),
-        (GstPadStickyEventsForeachFunction) (resend_sticky), splitpad);
-    splitpad->sent_caps = splitpad->sent_stream_start = TRUE;
-  }
-
   gst_pad_push_event ((GstPad *) (splitpad), event);
   return;
 drop_event:
@@ -769,6 +745,30 @@ out:
   return ret;
 }
 
+typedef struct
+{
+  GstSplitMuxSrc *splitmux;
+  SplitMuxSrcPad *splitpad;
+} SplitMuxAndPad;
+
+static gboolean
+handle_sticky_events (GstPad * pad, GstEvent ** event, gpointer user_data)
+{
+  SplitMuxAndPad *splitmux_and_pad;
+  GstSplitMuxSrc *splitmux;
+  SplitMuxSrcPad *splitpad;
+
+  splitmux_and_pad = user_data;
+  splitmux = splitmux_and_pad->splitmux;
+  splitpad = splitmux_and_pad->splitpad;
+
+  GST_DEBUG_OBJECT (splitpad, "handle sticky event %" GST_PTR_FORMAT, *event);
+  gst_event_ref (*event);
+  gst_splitmux_handle_event (splitmux, splitpad, pad, *event);
+
+  return TRUE;
+}
+
 static GstPad *
 gst_splitmux_find_output_pad (GstSplitMuxPartReader * part, GstPad * pad,
     GstSplitMuxSrc * splitmux)
@@ -790,12 +790,19 @@ gst_splitmux_find_output_pad (GstSplitMuxPartReader * part, GstPad * pad,
   }
 
   if (target == NULL && !splitmux->pads_complete) {
+    SplitMuxAndPad splitmux_and_pad;
+
     /* No pad found, create one */
     target = g_object_new (SPLITMUX_TYPE_SRC_PAD,
         "name", pad_name, "direction", GST_PAD_SRC, NULL);
     splitmux->pads = g_list_prepend (splitmux->pads, target);
 
     gst_pad_set_active (target, TRUE);
+
+    splitmux_and_pad.splitmux = splitmux;
+    splitmux_and_pad.splitpad = (SplitMuxSrcPad *) target;
+    gst_pad_sticky_events_foreach (pad, handle_sticky_events,
+        &splitmux_and_pad);
     is_new_pad = TRUE;
   }
   SPLITMUX_SRC_PADS_UNLOCK (splitmux);
diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in
index e46539ad65daa94167a9e01e586236fd01093e13..580688b4edf7b88b2907917366eb3c2c0b8a49d7 100644
--- a/gst/multipart/Makefile.in
+++ b/gst/multipart/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/multipart
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -574,7 +585,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/multipart/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/multipart/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -899,6 +909,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in
index a0712664d2a07022fc74fd759d0b09efa8d08d82..37bf9e943355843fcbd276e946a7673a1da84378 100644
--- a/gst/replaygain/Makefile.in
+++ b/gst/replaygain/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/replaygain
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -230,6 +240,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -596,7 +607,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/replaygain/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/replaygain/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -937,6 +947,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am
index 441c52fbd4cfb535cbaf5c32cdc83f24b4973149..00a2e08b14868ed9276a440d4cf6960aec8bdb37 100644
--- a/gst/rtp/Makefile.am
+++ b/gst/rtp/Makefile.am
@@ -38,6 +38,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpgsmpay.c \
 	gstrtpamrdepay.c \
 	gstrtpamrpay.c \
+	gstrtph261pay.c \
+	gstrtph261depay.c \
 	gstrtph263pdepay.c \
 	gstrtph263ppay.c \
 	gstrtph263depay.c \
@@ -48,6 +50,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpj2kpay.c \
 	gstrtpjpegdepay.c \
 	gstrtpjpegpay.c \
+	gstrtpklvdepay.c \
+	gstrtpklvpay.c \
 	gstrtpL16depay.c \
 	gstrtpL16pay.c \
 	gstrtpL24depay.c \
@@ -80,7 +84,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpvrawdepay.c  \
 	gstrtpvrawpay.c \
 	gstrtpstreampay.c \
-	gstrtpstreamdepay.c
+	gstrtpstreamdepay.c \
+	gstrtputils.c
 
 libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \
@@ -139,6 +144,8 @@ noinst_HEADERS =			\
 	gstrtpmpapay.h \
 	gstrtpmpvdepay.h \
 	gstrtpmpvpay.h \
+	gstrtph261pay.h \
+	gstrtph261depay.h \
 	gstrtph263pdepay.h \
 	gstrtph263ppay.h \
 	gstrtph263depay.h \
@@ -149,6 +156,8 @@ noinst_HEADERS =			\
 	gstrtpj2kpay.h \
 	gstrtpjpegdepay.h \
 	gstrtpjpegpay.h \
+	gstrtpklvdepay.h \
+	gstrtpklvpay.h \
 	gstrtpmp1sdepay.h \
 	gstrtpmp2tdepay.h \
 	gstrtpmp2tpay.h \
@@ -177,6 +186,7 @@ noinst_HEADERS =			\
 	gstrtpvrawdepay.h \
 	gstrtpvrawpay.h \
 	gstrtpstreampay.h \
-	gstrtpstreamdepay.h
+	gstrtpstreamdepay.h \
+	gstrtputils.h
 
 EXTRA_DIST = dboolhuff.LICENSE
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index 06bc305580153810f0ce11642b6a1ccaa2afb021..829073d2694bbdb91342a979a90847802cf2b028 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtp
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README TODO
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -175,12 +185,15 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \
 	libgstrtp_la-gstrtpg726depay.lo libgstrtp_la-gstrtpg729pay.lo \
 	libgstrtp_la-gstrtpg729depay.lo libgstrtp_la-gstrtpgsmdepay.lo \
 	libgstrtp_la-gstrtpgsmpay.lo libgstrtp_la-gstrtpamrdepay.lo \
-	libgstrtp_la-gstrtpamrpay.lo libgstrtp_la-gstrtph263pdepay.lo \
+	libgstrtp_la-gstrtpamrpay.lo libgstrtp_la-gstrtph261pay.lo \
+	libgstrtp_la-gstrtph261depay.lo \
+	libgstrtp_la-gstrtph263pdepay.lo \
 	libgstrtp_la-gstrtph263ppay.lo libgstrtp_la-gstrtph263depay.lo \
 	libgstrtp_la-gstrtph263pay.lo libgstrtp_la-gstrtph264depay.lo \
 	libgstrtp_la-gstrtph264pay.lo libgstrtp_la-gstrtpj2kdepay.lo \
 	libgstrtp_la-gstrtpj2kpay.lo libgstrtp_la-gstrtpjpegdepay.lo \
-	libgstrtp_la-gstrtpjpegpay.lo libgstrtp_la-gstrtpL16depay.lo \
+	libgstrtp_la-gstrtpjpegpay.lo libgstrtp_la-gstrtpklvdepay.lo \
+	libgstrtp_la-gstrtpklvpay.lo libgstrtp_la-gstrtpL16depay.lo \
 	libgstrtp_la-gstrtpL16pay.lo libgstrtp_la-gstrtpL24depay.lo \
 	libgstrtp_la-gstrtpL24pay.lo libgstrtp_la-gstasteriskh263.lo \
 	libgstrtp_la-gstrtpmp1sdepay.lo \
@@ -200,7 +213,7 @@ am_libgstrtp_la_OBJECTS = libgstrtp_la-dboolhuff.lo \
 	libgstrtp_la-gstrtpvorbispay.lo libgstrtp_la-gstrtpvp8depay.lo \
 	libgstrtp_la-gstrtpvp8pay.lo libgstrtp_la-gstrtpvrawdepay.lo \
 	libgstrtp_la-gstrtpvrawpay.lo libgstrtp_la-gstrtpstreampay.lo \
-	libgstrtp_la-gstrtpstreamdepay.lo
+	libgstrtp_la-gstrtpstreamdepay.lo libgstrtp_la-gstrtputils.lo
 libgstrtp_la_OBJECTS = $(am_libgstrtp_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -271,6 +284,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README \
+	TODO
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -634,6 +649,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpgsmpay.c \
 	gstrtpamrdepay.c \
 	gstrtpamrpay.c \
+	gstrtph261pay.c \
+	gstrtph261depay.c \
 	gstrtph263pdepay.c \
 	gstrtph263ppay.c \
 	gstrtph263depay.c \
@@ -644,6 +661,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpj2kpay.c \
 	gstrtpjpegdepay.c \
 	gstrtpjpegpay.c \
+	gstrtpklvdepay.c \
+	gstrtpklvpay.c \
 	gstrtpL16depay.c \
 	gstrtpL16pay.c \
 	gstrtpL24depay.c \
@@ -676,7 +695,8 @@ libgstrtp_la_SOURCES = \
 	gstrtpvrawdepay.c  \
 	gstrtpvrawpay.c \
 	gstrtpstreampay.c \
-	gstrtpstreamdepay.c
+	gstrtpstreamdepay.c \
+	gstrtputils.c
 
 libgstrtp_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) -Dvp8_norm=gst_rtpvp8_vp8_norm \
@@ -735,6 +755,8 @@ noinst_HEADERS = \
 	gstrtpmpapay.h \
 	gstrtpmpvdepay.h \
 	gstrtpmpvpay.h \
+	gstrtph261pay.h \
+	gstrtph261depay.h \
 	gstrtph263pdepay.h \
 	gstrtph263ppay.h \
 	gstrtph263depay.h \
@@ -745,6 +767,8 @@ noinst_HEADERS = \
 	gstrtpj2kpay.h \
 	gstrtpjpegdepay.h \
 	gstrtpjpegpay.h \
+	gstrtpklvdepay.h \
+	gstrtpklvpay.h \
 	gstrtpmp1sdepay.h \
 	gstrtpmp2tdepay.h \
 	gstrtpmp2tpay.h \
@@ -773,7 +797,8 @@ noinst_HEADERS = \
 	gstrtpvrawdepay.h \
 	gstrtpvrawpay.h \
 	gstrtpstreampay.h \
-	gstrtpstreamdepay.h
+	gstrtpstreamdepay.h \
+	gstrtputils.h
 
 EXTRA_DIST = dboolhuff.LICENSE
 all: all-am
@@ -792,7 +817,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/rtp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/rtp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -886,6 +910,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpgsmpay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpgstdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpgstpay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtph261depay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtph261pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtph263depay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtph263pay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Plo@am__quote@
@@ -898,6 +924,8 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpj2kpay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpjpegdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpjpegpay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpklvpay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpmp1sdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpmp2tdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpmp2tpay.Plo@am__quote@
@@ -929,6 +957,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpsv3vdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheoradepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtptheorapay.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtputils.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbisdepay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvorbispay.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstrtp_la-gstrtpvp8depay.Plo@am__quote@
@@ -1219,6 +1248,20 @@ libgstrtp_la-gstrtpamrpay.lo: gstrtpamrpay.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpamrpay.lo `test -f 'gstrtpamrpay.c' || echo '$(srcdir)/'`gstrtpamrpay.c
 
+libgstrtp_la-gstrtph261pay.lo: gstrtph261pay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph261pay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261pay.Tpo -c -o libgstrtp_la-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph261pay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph261pay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph261pay.c' object='libgstrtp_la-gstrtph261pay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph261pay.lo `test -f 'gstrtph261pay.c' || echo '$(srcdir)/'`gstrtph261pay.c
+
+libgstrtp_la-gstrtph261depay.lo: gstrtph261depay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph261depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph261depay.Tpo -c -o libgstrtp_la-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph261depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph261depay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtph261depay.c' object='libgstrtp_la-gstrtph261depay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtph261depay.lo `test -f 'gstrtph261depay.c' || echo '$(srcdir)/'`gstrtph261depay.c
+
 libgstrtp_la-gstrtph263pdepay.lo: gstrtph263pdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtph263pdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo -c -o libgstrtp_la-gstrtph263pdepay.lo `test -f 'gstrtph263pdepay.c' || echo '$(srcdir)/'`gstrtph263pdepay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtph263pdepay.Plo
@@ -1289,6 +1332,20 @@ libgstrtp_la-gstrtpjpegpay.lo: gstrtpjpegpay.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpjpegpay.lo `test -f 'gstrtpjpegpay.c' || echo '$(srcdir)/'`gstrtpjpegpay.c
 
+libgstrtp_la-gstrtpklvdepay.lo: gstrtpklvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpklvdepay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Tpo -c -o libgstrtp_la-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpklvdepay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpklvdepay.c' object='libgstrtp_la-gstrtpklvdepay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpklvdepay.lo `test -f 'gstrtpklvdepay.c' || echo '$(srcdir)/'`gstrtpklvdepay.c
+
+libgstrtp_la-gstrtpklvpay.lo: gstrtpklvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpklvpay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Tpo -c -o libgstrtp_la-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpklvpay.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtpklvpay.c' object='libgstrtp_la-gstrtpklvpay.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpklvpay.lo `test -f 'gstrtpklvpay.c' || echo '$(srcdir)/'`gstrtpklvpay.c
+
 libgstrtp_la-gstrtpL16depay.lo: gstrtpL16depay.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtpL16depay.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo -c -o libgstrtp_la-gstrtpL16depay.lo `test -f 'gstrtpL16depay.c' || echo '$(srcdir)/'`gstrtpL16depay.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Tpo $(DEPDIR)/libgstrtp_la-gstrtpL16depay.Plo
@@ -1520,6 +1577,13 @@ libgstrtp_la-gstrtpstreamdepay.lo: gstrtpstreamdepay.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtpstreamdepay.lo `test -f 'gstrtpstreamdepay.c' || echo '$(srcdir)/'`gstrtpstreamdepay.c
 
+libgstrtp_la-gstrtputils.lo: gstrtputils.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -MT libgstrtp_la-gstrtputils.lo -MD -MP -MF $(DEPDIR)/libgstrtp_la-gstrtputils.Tpo -c -o libgstrtp_la-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstrtp_la-gstrtputils.Tpo $(DEPDIR)/libgstrtp_la-gstrtputils.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstrtputils.c' object='libgstrtp_la-gstrtputils.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstrtp_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstrtp_la_CFLAGS) $(CFLAGS) -c -o libgstrtp_la-gstrtputils.lo `test -f 'gstrtputils.c' || echo '$(srcdir)/'`gstrtputils.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
@@ -1733,6 +1797,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtp/gstrtp.c b/gst/rtp/gstrtp.c
index a3cbccd0cc69fffee0ad80e825471f3af5e91ea0..6c85517f6f3d083d5efdd3c403b6b6469aae2820 100644
--- a/gst/rtp/gstrtp.c
+++ b/gst/rtp/gstrtp.c
@@ -56,6 +56,8 @@
 #include "gstrtpmparobustdepay.h"
 #include "gstrtpmpvdepay.h"
 #include "gstrtpmpvpay.h"
+#include "gstrtph261pay.h"
+#include "gstrtph261depay.h"
 #include "gstrtph263pdepay.h"
 #include "gstrtph263ppay.h"
 #include "gstrtph263depay.h"
@@ -66,6 +68,8 @@
 #include "gstrtpj2kpay.h"
 #include "gstrtpjpegdepay.h"
 #include "gstrtpjpegpay.h"
+#include "gstrtpklvdepay.h"
+#include "gstrtpklvpay.h"
 #include "gstrtpL16depay.h"
 #include "gstrtpL16pay.h"
 #include "gstrtpL24depay.h"
@@ -204,6 +208,12 @@ plugin_init (GstPlugin * plugin)
   if (!gst_rtp_mpv_pay_plugin_init (plugin))
     return FALSE;
 
+  if (!gst_rtp_h261_pay_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_h261_depay_plugin_init (plugin))
+    return FALSE;
+
   if (!gst_rtp_h263p_pay_plugin_init (plugin))
     return FALSE;
 
@@ -234,6 +244,12 @@ plugin_init (GstPlugin * plugin)
   if (!gst_rtp_jpeg_pay_plugin_init (plugin))
     return FALSE;
 
+  if (!gst_rtp_klv_depay_plugin_init (plugin))
+    return FALSE;
+
+  if (!gst_rtp_klv_pay_plugin_init (plugin))
+    return FALSE;
+
   if (!gst_rtp_L16_pay_plugin_init (plugin))
     return FALSE;
 
diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c
index 667a64a6ce2b3bdcaa95b7bde086d86b55c2625a..41a8fff4273a3c3385b31b869959c3ed34c1d5c8 100644
--- a/gst/rtp/gstrtpL16depay.c
+++ b/gst/rtp/gstrtpL16depay.c
@@ -44,6 +44,7 @@
 
 #include "gstrtpL16depay.h"
 #include "gstrtpchannels.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpL16depay_debug);
 #define GST_CAT_DEFAULT (rtpL16depay_debug)
@@ -84,7 +85,7 @@ G_DEFINE_TYPE (GstRtpL16Depay, gst_rtp_L16_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
 static gboolean gst_rtp_L16_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_L16_depay_class_init (GstRtpL16DepayClass * klass)
@@ -96,7 +97,7 @@ gst_rtp_L16_depay_class_init (GstRtpL16DepayClass * klass)
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_L16_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_L16_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_L16_depay_process;
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_rtp_L16_depay_src_template));
@@ -225,26 +226,24 @@ no_clockrate:
 }
 
 static GstBuffer *
-gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpL16Depay *rtpL16depay;
   GstBuffer *outbuf;
   gint payload_len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   rtpL16depay = GST_RTP_L16_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len <= 0)
     goto empty_packet;
 
   GST_DEBUG_OBJECT (rtpL16depay, "got payload of %d bytes", payload_len);
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     /* mark talk spurt with RESYNC */
@@ -259,7 +258,8 @@ gst_rtp_L16_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     goto reorder_failed;
   }
 
-  gst_rtp_buffer_unmap (&rtp);
+  gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL16depay), outbuf,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
 
   return outbuf;
 
@@ -268,14 +268,12 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpL16depay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 reorder_failed:
   {
     GST_ELEMENT_ERROR (rtpL16depay, STREAM, DECODE,
         ("Channel reordering failed."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c
index a8ed36fd2e9c9c8698800b531ab13f2f0c124ca3..db1c7de19278f4e73ed74a81c669d2b86fdd8f34 100644
--- a/gst/rtp/gstrtpL16pay.c
+++ b/gst/rtp/gstrtpL16pay.c
@@ -208,16 +208,16 @@ gst_rtp_L16_pay_getcaps (GstRTPBasePayload * rtppayload, GstPad * pad,
       if (gst_structure_get_int (structure, "channels", &channels)) {
         gst_caps_set_simple (caps, "channels", G_TYPE_INT, channels, NULL);
       } else if (gst_structure_get_int (structure, "payload", &pt)) {
-        if (pt == 10)
+        if (pt == GST_RTP_PAYLOAD_L16_STEREO)
           gst_caps_set_simple (caps, "channels", G_TYPE_INT, 2, NULL);
-        else if (pt == 11)
+        else if (pt == GST_RTP_PAYLOAD_L16_MONO)
           gst_caps_set_simple (caps, "channels", G_TYPE_INT, 1, NULL);
       }
 
       if (gst_structure_get_int (structure, "clock-rate", &rate)) {
         gst_caps_set_simple (caps, "rate", G_TYPE_INT, rate, NULL);
       } else if (gst_structure_get_int (structure, "payload", &pt)) {
-        if (pt == 10 || pt == 11)
+        if (pt == GST_RTP_PAYLOAD_L16_STEREO || pt == GST_RTP_PAYLOAD_L16_MONO)
           gst_caps_set_simple (caps, "rate", G_TYPE_INT, 44100, NULL);
       }
 
diff --git a/gst/rtp/gstrtpL24depay.c b/gst/rtp/gstrtpL24depay.c
index 7b5ef0c8bcda010f07ef0f895a1c8a6497aa1aeb..dc7a338823ab577b2fad9e13d9e2f796f27fcdd9 100644
--- a/gst/rtp/gstrtpL24depay.c
+++ b/gst/rtp/gstrtpL24depay.c
@@ -44,6 +44,7 @@
 
 #include "gstrtpL24depay.h"
 #include "gstrtpchannels.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpL24depay_debug);
 #define GST_CAT_DEFAULT (rtpL24depay_debug)
@@ -73,7 +74,7 @@ G_DEFINE_TYPE (GstRtpL24Depay, gst_rtp_L24_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
 static gboolean gst_rtp_L24_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_L24_depay_class_init (GstRtpL24DepayClass * klass)
@@ -85,7 +86,7 @@ gst_rtp_L24_depay_class_init (GstRtpL24DepayClass * klass)
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_L24_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_L24_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_L24_depay_process;
 
   gst_element_class_add_pad_template (gstelement_class,
       gst_static_pad_template_get (&gst_rtp_L24_depay_src_template));
@@ -203,26 +204,24 @@ no_clockrate:
 }
 
 static GstBuffer *
-gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpL24Depay *rtpL24depay;
   GstBuffer *outbuf;
   gint payload_len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   rtpL24depay = GST_RTP_L24_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len <= 0)
     goto empty_packet;
 
   GST_DEBUG_OBJECT (rtpL24depay, "got payload of %d bytes", payload_len);
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     /* mark talk spurt with RESYNC */
@@ -230,6 +229,10 @@ gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   }
 
   outbuf = gst_buffer_make_writable (outbuf);
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpL24depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
   if (rtpL24depay->order &&
       !gst_audio_buffer_reorder_channels (outbuf,
           rtpL24depay->info.finfo->format, rtpL24depay->info.channels,
@@ -237,8 +240,6 @@ gst_rtp_L24_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     goto reorder_failed;
   }
 
-  gst_rtp_buffer_unmap (&rtp);
-
   return outbuf;
 
   /* ERRORS */
@@ -246,14 +247,12 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpL24depay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 reorder_failed:
   {
     GST_ELEMENT_ERROR (rtpL24depay, STREAM, DECODE,
         ("Channel reordering failed."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c
index e8a05c932ee4c5def02043b0cc04b0acd8f2daf1..b9df488e5349727a47792b9f4bd5ca079b5d5a07 100644
--- a/gst/rtp/gstrtpac3depay.c
+++ b/gst/rtp/gstrtpac3depay.c
@@ -38,9 +38,11 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <string.h>
 #include "gstrtpac3depay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpac3depay_debug);
 #define GST_CAT_DEFAULT (rtpac3depay_debug)
@@ -67,7 +69,7 @@ G_DEFINE_TYPE (GstRtpAC3Depay, gst_rtp_ac3_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
 static gboolean gst_rtp_ac3_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_ac3_depay_class_init (GstRtpAC3DepayClass * klass)
@@ -89,7 +91,7 @@ gst_rtp_ac3_depay_class_init (GstRtpAC3DepayClass * klass)
       "Wim Taymans <wim.taymans@gmail.com>");
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_ac3_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_ac3_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_ac3_depay_process;
 
   GST_DEBUG_CATEGORY_INIT (rtpac3depay_debug, "rtpac3depay", 0,
       "AC3 Audio RTP Depayloader");
@@ -123,22 +125,19 @@ gst_rtp_ac3_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpAC3Depay *rtpac3depay;
   GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL, };
   guint8 *payload;
   guint16 FT, NF;
 
   rtpac3depay = GST_RTP_AC3_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  if (gst_rtp_buffer_get_payload_len (&rtp) < 2)
+  if (gst_rtp_buffer_get_payload_len (rtp) < 2)
     goto empty_packet;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
   /* strip off header
    *
@@ -154,13 +153,14 @@ gst_rtp_ac3_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   GST_DEBUG_OBJECT (rtpac3depay, "FT: %d, NF: %d", FT, NF);
 
   /* We don't bother with fragmented packets yet */
-  outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 2, -1);
-
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 2, -1);
 
-  if (outbuf)
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpac3depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
     GST_DEBUG_OBJECT (rtpac3depay, "pushing buffer of size %" G_GSIZE_FORMAT,
         gst_buffer_get_size (outbuf));
+  }
 
   return outbuf;
 
@@ -169,7 +169,6 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpac3depay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c
index c63d734a266c9bbe6aed6475c2cb6bbcff5ccf1c..986589494ccd270141a5a2ef8135850d1451a7b4 100644
--- a/gst/rtp/gstrtpac3pay.c
+++ b/gst/rtp/gstrtpac3pay.c
@@ -40,8 +40,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpac3pay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpac3pay_debug);
 #define GST_CAT_DEFAULT (rtpac3pay_debug)
@@ -260,6 +262,7 @@ gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay)
     guint payload_len;
     guint packet_len;
     GstRTPBuffer rtp = { NULL, };
+    GstBuffer *payload_buffer;
 
     /* this will be the total length of the packet */
     packet_len = gst_rtp_buffer_calc_packet_len (2 + avail, 0, 0);
@@ -271,7 +274,7 @@ gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay)
     payload_len = gst_rtp_buffer_calc_payload_len (towrite, 0, 0);
 
     /* create buffer to hold the payload */
-    outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+    outbuf = gst_rtp_buffer_new_allocate (2, 0, 0);
 
     if (FT == 0) {
       /* check if it all fits */
@@ -314,14 +317,19 @@ gst_rtp_ac3_pay_flush (GstRtpAC3Pay * rtpac3pay)
     payload[1] = NF;
     payload_len -= 2;
 
-    gst_adapter_copy (rtpac3pay->adapter, &payload[2], 0, payload_len);
-    gst_adapter_flush (rtpac3pay->adapter, payload_len);
-
-    avail -= payload_len;
-    if (avail == 0)
+    if (avail == payload_len)
       gst_rtp_buffer_set_marker (&rtp, TRUE);
     gst_rtp_buffer_unmap (&rtp);
 
+    payload_buffer =
+        gst_adapter_take_buffer_fast (rtpac3pay->adapter, payload_len);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpac3pay), outbuf, payload_buffer,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
+    outbuf = gst_buffer_append (outbuf, payload_buffer);
+
+    avail -= payload_len;
+
     GST_BUFFER_PTS (outbuf) = rtpac3pay->first_ts;
     GST_BUFFER_DURATION (outbuf) = rtpac3pay->duration;
 
diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c
index 4b53843ae15d6ba1ea16b5c43ee11e695b1765cb..3c55341382f973f5012c22cfb1bd3c0d90525885 100644
--- a/gst/rtp/gstrtpamrdepay.c
+++ b/gst/rtp/gstrtpamrdepay.c
@@ -44,10 +44,12 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <stdlib.h>
 #include <string.h>
 #include "gstrtpamrdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpamrdepay_debug);
 #define GST_CAT_DEFAULT (rtpamrdepay_debug)
@@ -124,7 +126,7 @@ static GstStaticPadTemplate gst_rtp_amr_depay_src_template =
 static gboolean gst_rtp_amr_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 #define gst_rtp_amr_depay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpAMRDepay, gst_rtp_amr_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
@@ -148,7 +150,7 @@ gst_rtp_amr_depay_class_init (GstRtpAMRDepayClass * klass)
       "Extracts AMR or AMR-WB audio from RTP packets (RFC 3267)",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_amr_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_amr_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_amr_depay_setcaps;
 
   GST_DEBUG_CATEGORY_INIT (rtpamrdepay_debug, "rtpamrdepay", 0,
@@ -281,13 +283,12 @@ static const gint wb_frame_size[16] = {
 };
 
 static GstBuffer *
-gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpAMRDepay *rtpamrdepay;
   const gint *frame_size;
   GstBuffer *outbuf = NULL;
   gint payload_len;
-  GstRTPBuffer rtp = { NULL };
   GstMapInfo map;
 
   rtpamrdepay = GST_RTP_AMR_DEPAY (depayload);
@@ -298,8 +299,6 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   else
     frame_size = wb_frame_size;
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
   /* when we get here, 1 channel, 8000/16000 Hz, octet aligned, no CRC,
    * no robust sorting, no interleaving data is to be depayloaded */
   {
@@ -307,14 +306,15 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     gint i, num_packets, num_nonempty_packets;
     gint amr_len;
     gint ILL, ILP;
+    GstBuffer *buf;
 
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
     /* need at least 2 bytes for the header */
     if (payload_len < 2)
       goto too_small;
 
-    payload = gst_rtp_buffer_get_payload (&rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
 
     /* depay CMR. The CMR is used by the sender to request
      * a new encoding mode.
@@ -419,7 +419,7 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     /* we can set the duration because each packet is 20 milliseconds */
     GST_BUFFER_DURATION (outbuf) = num_packets * 20 * GST_MSECOND;
 
-    if (gst_rtp_buffer_get_marker (&rtp)) {
+    if (gst_rtp_buffer_get_marker (rtp)) {
       /* marker bit marks a buffer after a talkspurt. */
       GST_DEBUG_OBJECT (depayload, "marker bit was set");
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
@@ -427,9 +427,13 @@ gst_rtp_amr_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
     GST_DEBUG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
         gst_buffer_get_size (outbuf));
+
+    buf = gst_rtp_buffer_get_payload_buffer (rtp);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrdepay), outbuf, buf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_buffer_unref (buf);
   }
 
-  gst_rtp_buffer_unmap (&rtp);
   return outbuf;
 
   /* ERRORS */
@@ -466,7 +470,6 @@ wrong_length_2:
 bad_packet:
   {
     /* no fatal error */
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c
index 0f56c4cd89394f40b1064a9e7c5e77a4c990d144..f4849a8c69747eeba93848c2863a57d92133cfae 100644
--- a/gst/rtp/gstrtpamrpay.c
+++ b/gst/rtp/gstrtpamrpay.c
@@ -53,8 +53,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpamrpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpamrpay_debug);
 #define GST_CAT_DEFAULT (rtpamrpay_debug)
@@ -388,10 +390,13 @@ gst_rtp_amr_pay_handle_buffer (GstRTPBasePayload * basepayload,
   }
 
   gst_buffer_unmap (buffer, &map);
-  gst_buffer_unref (buffer);
-
   gst_rtp_buffer_unmap (&rtp);
 
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpamrpay), outbuf, buffer,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
+  gst_buffer_unref (buffer);
+
   ret = gst_rtp_base_payload_push (basepayload, outbuf);
 
   return ret;
diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c
index 13efebb2aa0de75dc20e5efae52c59e410c6acb4..6b7bb18b5b55ca8ed8c75df1d04b0ab17bf9c6d1 100644
--- a/gst/rtp/gstrtpbvdepay.c
+++ b/gst/rtp/gstrtpbvdepay.c
@@ -33,7 +33,9 @@
 #include <stdlib.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpbvdepay.h"
+#include "gstrtputils.h"
 
 static GstStaticPadTemplate gst_rtp_bv_depay_sink_template =
     GST_STATIC_PAD_TEMPLATE ("sink",
@@ -56,7 +58,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_bv_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -82,7 +84,7 @@ gst_rtp_bv_depay_class_init (GstRTPBVDepayClass * klass)
       "Extracts BroadcomVoice audio from RTP packets (RFC 4298)",
       "Wim Taymans <wim.taymans@collabora.co.uk>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_bv_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_bv_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_bv_depay_setcaps;
 }
 
@@ -155,28 +157,29 @@ wrong_rate:
 }
 
 static GstBuffer *
-gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_bv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL, };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (marker && outbuf) {
     /* mark start of talkspurt with RESYNC */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
+
   return outbuf;
 }
 
diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c
index bb6e42c0090d1b45c3471344e6fb209fcfbd7f18..ed5b3ae94b50ad22159adc0abce33b9a34aed02a 100644
--- a/gst/rtp/gstrtpceltdepay.c
+++ b/gst/rtp/gstrtpceltdepay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpceltdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpceltdepay_debug);
 #define GST_CAT_DEFAULT (rtpceltdepay_debug)
@@ -65,7 +67,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_celt_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -95,7 +97,7 @@ gst_rtp_celt_depay_class_init (GstRtpCELTDepayClass * klass)
       "Extracts CELT audio from RTP packets",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_celt_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_celt_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_celt_depay_setcaps;
 }
 
@@ -193,7 +195,7 @@ no_clockrate:
 }
 
 static GstBuffer *
-gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf = NULL;
   guint8 *payload;
@@ -203,28 +205,25 @@ gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   GstClockTime framesize_ns = 0, timestamp;
   guint n = 0;
   GstRtpCELTDepay *rtpceltdepay;
-  GstRTPBuffer rtp = { NULL, };
 
   rtpceltdepay = GST_RTP_CELT_DEPAY (depayload);
   clock_rate = depayload->clock_rate;
   frame_size = rtpceltdepay->frame_size;
   framesize_ns = gst_util_uint64_scale_int (frame_size, GST_SECOND, clock_rate);
 
-  timestamp = GST_BUFFER_PTS (buf);
-
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+  timestamp = GST_BUFFER_PTS (rtp->buffer);
 
   GST_LOG_OBJECT (depayload,
       "got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), gst_rtp_buffer_get_marker (&rtp),
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer), gst_rtp_buffer_get_marker (rtp),
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
   GST_LOG_OBJECT (depayload, "got clock-rate=%d, frame_size=%d, "
       "_ns=%" GST_TIME_FORMAT ", timestamp=%" GST_TIME_FORMAT, clock_rate,
       frame_size, GST_TIME_ARGS (framesize_ns), GST_TIME_ARGS (timestamp));
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   /* first count how many bytes are consumed by the size headers and make offset
    * point to the first data byte */
@@ -249,7 +248,7 @@ gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       total_size += s + 1;
     } while (s == 0xff);
 
-    outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, offset, size);
+    outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, offset, size);
     offset += size;
 
     if (frame_size != -1 && clock_rate != -1) {
@@ -261,9 +260,11 @@ gst_rtp_celt_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)),
         GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)));
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
     gst_rtp_base_depayload_push (depayload, outbuf);
   }
-  gst_rtp_buffer_unmap (&rtp);
 
   return NULL;
 }
diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c
index 3e701d75fc61b5cd37de71d8b5d92b2fb189a7d4..6f16ba20296548396db86bb51c990ed5f77ff5f5 100644
--- a/gst/rtp/gstrtpceltpay.c
+++ b/gst/rtp/gstrtpceltpay.c
@@ -24,8 +24,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpceltpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpceltpay_debug);
 #define GST_CAT_DEFAULT (rtpceltpay_debug)
@@ -350,6 +352,9 @@ gst_rtp_celt_pay_flush_queued (GstRtpCELTPay * rtpceltpay)
     gst_buffer_extract (buf, 0, payload, size);
     payload += size;
 
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpceltpay), outbuf, buf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
     gst_buffer_unref (buf);
   }
   gst_rtp_buffer_unmap (&rtp);
diff --git a/gst/rtp/gstrtpdvdepay.c b/gst/rtp/gstrtpdvdepay.c
index f13b696f475281f2108ed3e56b6ff81f874750dd..16898a98c9ceb5fc9055123200260680869736b3 100644
--- a/gst/rtp/gstrtpdvdepay.c
+++ b/gst/rtp/gstrtpdvdepay.c
@@ -33,6 +33,7 @@
 #include <gst/gst.h>
 
 #include "gstrtpdvdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY (rtpdvdepay_debug);
 #define GST_CAT_DEFAULT (rtpdvdepay_debug)
@@ -75,7 +76,7 @@ static GstStateChangeReturn
 gst_rtp_dv_depay_change_state (GstElement * element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_dv_depay_process (GstRTPBaseDepayload * base,
-    GstBuffer * in);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_dv_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -106,7 +107,7 @@ gst_rtp_dv_depay_class_init (GstRTPDVDepayClass * klass)
       "Depayloads DV from RTP packets (RFC 3189)",
       "Marcel Moreaux <marcelm@spacelabs.nl>, Wim Taymans <wim.taymans@gmail.com>");
 
-  gstrtpbasedepayload_class->process =
+  gstrtpbasedepayload_class->process_rtp_packet =
       GST_DEBUG_FUNCPTR (gst_rtp_dv_depay_process);
   gstrtpbasedepayload_class->set_caps =
       GST_DEBUG_FUNCPTR (gst_rtp_dv_depay_setcaps);
@@ -280,29 +281,35 @@ calculate_difblock_location (guint8 * block)
   return location;
 }
 
+static gboolean
+foreach_metadata_drop (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  *meta = NULL;
+  return TRUE;
+}
+
 /* Process one RTP packet. Accumulate RTP payload in the proper place in a DV
  * frame, and return that frame if we detect a new frame, or NULL otherwise.
  * We assume a DV frame is 144000 bytes. That should accomodate PAL as well as
  * NTSC.
  */
 static GstBuffer *
-gst_rtp_dv_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
+gst_rtp_dv_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
 {
   GstBuffer *out = NULL;
+  GstBuffer *payload_buf;
   guint8 *payload;
   guint32 rtp_ts;
   guint payload_len, location;
   GstRTPDVDepay *dvdepay = GST_RTP_DV_DEPAY (base);
   gboolean marker;
-  GstRTPBuffer rtp = { NULL, };
-
-  gst_rtp_buffer_map (in, GST_MAP_READ, &rtp);
+  GstMapInfo map;
 
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   /* Check if the received packet contains (the start of) a new frame, we do
    * this by checking the RTP timestamp. */
-  rtp_ts = gst_rtp_buffer_get_timestamp (&rtp);
+  rtp_ts = gst_rtp_buffer_get_timestamp (rtp);
 
   /* we cannot copy the packet yet if the marker is set, we will do that below
    * after taking out the data */
@@ -313,13 +320,16 @@ gst_rtp_dv_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
 
     /* return copy of accumulator. */
     out = gst_buffer_copy (dvdepay->acc);
+    gst_buffer_foreach_meta (dvdepay->acc, foreach_metadata_drop, NULL);
   }
 
   /* Extract the payload */
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_buf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   /* copy all DIF chunks in their place. */
+  gst_buffer_map (dvdepay->acc, &map, GST_MAP_READWRITE);
   while (payload_len >= 80) {
     guint offset;
 
@@ -340,14 +350,18 @@ gst_rtp_dv_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
       offset = location * 80;
 
       /* And copy it in, provided the location is sane. */
-      if (offset <= dvdepay->frame_size - 80)
-        gst_buffer_fill (dvdepay->acc, offset, payload, 80);
+      if (offset <= dvdepay->frame_size - 80) {
+        memcpy (map.data + offset, payload, 80);
+        gst_rtp_copy_meta (GST_ELEMENT_CAST (dvdepay), dvdepay->acc,
+            payload_buf, 0);
+      }
     }
 
     payload += 80;
     payload_len -= 80;
   }
-  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unmap (dvdepay->acc, &map);
+  gst_buffer_unref (payload_buf);
 
   if (marker) {
     GST_DEBUG_OBJECT (dvdepay, "marker bit complete frame %u", rtp_ts);
@@ -357,6 +371,7 @@ gst_rtp_dv_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
        * will change the timestamp but we won't copy the accumulator again because
        * we set the prev_ts to -1. */
       out = gst_buffer_copy (dvdepay->acc);
+      gst_buffer_foreach_meta (dvdepay->acc, foreach_metadata_drop, NULL);
     } else {
       GST_WARNING_OBJECT (dvdepay, "waiting for frame headers %02x",
           dvdepay->header_mask);
diff --git a/gst/rtp/gstrtpdvpay.c b/gst/rtp/gstrtpdvpay.c
index ef93bc1d25e34ded09ff0d663cf9b018c5590e75..ddda67e689e90aa0e9455b50403283abf25a05df 100644
--- a/gst/rtp/gstrtpdvpay.c
+++ b/gst/rtp/gstrtpdvpay.c
@@ -27,6 +27,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 
 #include "gstrtpdvpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY (rtpdvpay_debug);
 #define GST_CAT_DEFAULT (rtpdvpay_debug)
@@ -372,6 +373,7 @@ gst_rtp_dv_pay_handle_buffer (GstRTPBasePayload * basepayload,
 
       /* Push out the created piece, and check for errors. */
       gst_rtp_buffer_unmap (&rtp);
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buffer, 0);
       ret = gst_rtp_base_payload_push (basepayload, outbuf);
       if (ret != GST_FLOW_OK)
         break;
diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c
index c77fb95138cb01683cc6d7920acbcd91595476d2..31c6ab4f3125beae4caad009beec5d3897668ff6 100644
--- a/gst/rtp/gstrtpg722depay.c
+++ b/gst/rtp/gstrtpg722depay.c
@@ -28,6 +28,7 @@
 
 #include "gstrtpg722depay.h"
 #include "gstrtpchannels.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpg722depay_debug);
 #define GST_CAT_DEFAULT (rtpg722depay_debug)
@@ -66,7 +67,7 @@ G_DEFINE_TYPE (GstRtpG722Depay, gst_rtp_g722_depay,
 static gboolean gst_rtp_g722_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_g722_depay_class_init (GstRtpG722DepayClass * klass)
@@ -91,7 +92,7 @@ gst_rtp_g722_depay_class_init (GstRtpG722DepayClass * klass)
       "Wim Taymans <wim.taymans@gmail.com>");
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_g722_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_g722_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_g722_depay_process;
 }
 
 static void
@@ -214,34 +215,35 @@ no_clockrate:
 }
 
 static GstBuffer *
-gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_g722_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpG722Depay *rtpg722depay;
   GstBuffer *outbuf;
   gint payload_len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   rtpg722depay = GST_RTP_G722_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len <= 0)
     goto empty_packet;
 
   GST_DEBUG_OBJECT (rtpg722depay, "got payload of %d bytes", payload_len);
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker && outbuf) {
     /* mark talk spurt with RESYNC */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpg722depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
+
   return outbuf;
 
   /* ERRORS */
@@ -249,7 +251,6 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpg722depay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c
index e9e625a6e9edf4ae05408976f0476240f9daf05d..79194c0e7ffe02609bce15f4a03e29b457bf304d 100644
--- a/gst/rtp/gstrtpg722pay.c
+++ b/gst/rtp/gstrtpg722pay.c
@@ -40,13 +40,18 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     );
 
 static GstStaticPadTemplate gst_rtp_g722_pay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
+    GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
         "encoding-name = (string) \"G722\", "
         "payload = (int) " GST_RTP_PAYLOAD_G722_STRING ", "
+        "clock-rate = (int) 8000; "
+        "application/x-rtp, "
+        "media = (string) \"audio\", "
+        "encoding-name = (string) \"G722\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 8000")
     );
 
@@ -92,6 +97,8 @@ gst_rtp_g722_pay_init (GstRtpG722Pay * rtpg722pay)
 
   rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (rtpg722pay);
 
+  GST_RTP_BASE_PAYLOAD (rtpg722pay)->pt = GST_RTP_PAYLOAD_G722;
+
   /* tell rtpbaseaudiopayload that this is a sample based codec */
   gst_rtp_base_audio_payload_set_sample_based (rtpbaseaudiopayload);
 }
@@ -136,8 +143,8 @@ gst_rtp_g722_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
    * RFC 3551 although the sampling rate is 16000 Hz */
   clock_rate = 8000;
 
-  gst_rtp_base_payload_set_options (basepayload, "audio", TRUE, "G722",
-      clock_rate);
+  gst_rtp_base_payload_set_options (basepayload, "audio",
+      basepayload->pt != GST_RTP_PAYLOAD_G722, "G722", clock_rate);
   params = g_strdup_printf ("%d", channels);
 
 #if 0
diff --git a/gst/rtp/gstrtpg723depay.c b/gst/rtp/gstrtpg723depay.c
index fb726f202f12ce935454b1ad8741176630341725..c66473c5c81a348eeab445568f5bfbc027415ec7 100644
--- a/gst/rtp/gstrtpg723depay.c
+++ b/gst/rtp/gstrtpg723depay.c
@@ -75,7 +75,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
 static gboolean gst_rtp_g723_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 #define gst_rtp_g723_depay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpG723Depay, gst_rtp_g723_depay,
@@ -103,7 +103,7 @@ gst_rtp_g723_depay_class_init (GstRtpG723DepayClass * klass)
       "Extracts G.723 audio from RTP packets (RFC 3551)",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_g723_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_g723_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_g723_depay_setcaps;
 }
 
@@ -171,19 +171,16 @@ wrong_clock_rate:
 
 
 static GstBuffer *
-gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpG723Depay *rtpg723depay;
   GstBuffer *outbuf = NULL;
   gint payload_len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   rtpg723depay = GST_RTP_G723_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   /* At least 4 bytes */
   if (payload_len < 4)
@@ -191,9 +188,8 @@ gst_rtp_g723_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   GST_LOG_OBJECT (rtpg723depay, "payload len %d", payload_len);
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     /* marker bit starts talkspurt */
@@ -215,7 +211,6 @@ too_small:
 bad_packet:
   {
     /* no fatal error */
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c
index e791fc4006dc9f17880e80448c6a1779d5bbe8fb..0937c854ae98431f97d359c71c57a320f39abfb3 100644
--- a/gst/rtp/gstrtpg723pay.c
+++ b/gst/rtp/gstrtpg723pay.c
@@ -26,11 +26,10 @@
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/base/gstadapter.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpg723pay.h"
-
-#define GST_RTP_PAYLOAD_G723 4
-#define GST_RTP_PAYLOAD_G723_STRING "4"
+#include "gstrtputils.h"
 
 #define G723_FRAME_DURATION (30 * GST_MSECOND)
 
@@ -107,7 +106,6 @@ gst_rtp_g723_pay_init (GstRTPG723Pay * pay)
   pay->adapter = gst_adapter_new ();
 
   payload->pt = GST_RTP_PAYLOAD_G723;
-  gst_rtp_base_payload_set_options (payload, "audio", FALSE, "G723", 8000);
 }
 
 static void
@@ -128,16 +126,9 @@ static gboolean
 gst_rtp_g723_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
-  GstStructure *structure;
-  gint pt;
-
-  structure = gst_caps_get_structure (caps, 0);
-  if (!gst_structure_get_int (structure, "payload", &pt))
-    pt = GST_RTP_PAYLOAD_G723;
-
-  payload->pt = pt;
-  payload->dynamic = pt != GST_RTP_PAYLOAD_G723;
 
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_G723, "G723", 8000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
@@ -146,27 +137,23 @@ gst_rtp_g723_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
 static GstFlowReturn
 gst_rtp_g723_pay_flush (GstRTPG723Pay * pay)
 {
-  GstBuffer *outbuf;
+  GstBuffer *outbuf, *payload_buf;
   GstFlowReturn ret;
-  guint8 *payload;
   guint avail;
   GstRTPBuffer rtp = { NULL };
 
   avail = gst_adapter_available (pay->adapter);
 
-  outbuf = gst_rtp_buffer_new_allocate (avail, 0, 0);
+  outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
 
   gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
-  payload = gst_rtp_buffer_get_payload (&rtp);
 
   GST_BUFFER_PTS (outbuf) = pay->timestamp;
   GST_BUFFER_DURATION (outbuf) = pay->duration;
 
   /* copy G723 data as payload */
-  gst_adapter_copy (pay->adapter, payload, 0, avail);
+  payload_buf = gst_adapter_take_buffer_fast (pay->adapter, avail);
 
-  /* flush bytes from adapter */
-  gst_adapter_flush (pay->adapter, avail);
   pay->timestamp = GST_CLOCK_TIME_NONE;
   pay->duration = 0;
 
@@ -177,6 +164,10 @@ gst_rtp_g723_pay_flush (GstRTPG723Pay * pay)
     pay->discont = FALSE;
   }
   gst_rtp_buffer_unmap (&rtp);
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, payload_buf,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
+  outbuf = gst_buffer_append (outbuf, payload_buf);
 
   ret = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (pay), outbuf);
 
diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c
index a6175eb4173dddcc34de3cf2ca9f6f9bf73b2103..efaadea5f53277889c3718fed5dc06002d50c34d 100644
--- a/gst/rtp/gstrtpg726depay.c
+++ b/gst/rtp/gstrtpg726depay.c
@@ -28,8 +28,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpg726depay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpg726depay_debug);
 #define GST_CAT_DEFAULT (rtpg726depay_debug)
@@ -82,7 +84,7 @@ static void gst_rtp_g726_depay_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 
 static GstBuffer *gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_g726_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -122,7 +124,7 @@ gst_rtp_g726_depay_class_init (GstRtpG726DepayClass * klass)
       "Extracts G.726 audio from RTP packets",
       "Axis Communications <dev-gstreamer@axis.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_g726_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_g726_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_g726_depay_setcaps;
 }
 
@@ -207,41 +209,43 @@ unknown_encoding:
 
 
 static GstBuffer *
-gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpG726Depay *depay;
   GstBuffer *outbuf = NULL;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   depay = GST_RTP_G726_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
   if (depay->aal2 || depay->force_aal2) {
     /* AAL2, we can just copy the bytes */
-    outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+    outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
     if (!outbuf)
       goto bad_len;
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
   } else {
     guint8 *in, *out, tmp;
     guint len;
     GstMapInfo map;
 
-    in = gst_rtp_buffer_get_payload (&rtp);
-    len = gst_rtp_buffer_get_payload_len (&rtp);
+    in = gst_rtp_buffer_get_payload (rtp);
+    len = gst_rtp_buffer_get_payload_len (rtp);
 
-    outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+    outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
     if (!outbuf)
       goto bad_len;
     outbuf = gst_buffer_make_writable (outbuf);
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
     gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
     out = map.data;
 
@@ -334,8 +338,6 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     gst_buffer_unmap (outbuf, &map);
   }
 
-  gst_rtp_buffer_unmap (&rtp);
-
   if (marker) {
     /* mark start of talkspurt with RESYNC */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
@@ -345,10 +347,8 @@ gst_rtp_g726_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
 bad_len:
   {
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
-
 }
 
 static void
diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c
index 9910add1a98bd0ace1b252e14f47995517c13a26..56f921a0dde31c5bde2f30659640ece720d52f80 100644
--- a/gst/rtp/gstrtpg729depay.c
+++ b/gst/rtp/gstrtpg729depay.c
@@ -21,10 +21,12 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <stdlib.h>
 #include <string.h>
 #include "gstrtpg729depay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpg729depay_debug);
 #define GST_CAT_DEFAULT (rtpg729depay_debug)
@@ -73,7 +75,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
 static gboolean gst_rtp_g729_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 #define gst_rtp_g729_depay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpG729Depay, gst_rtp_g729_depay,
@@ -101,7 +103,7 @@ gst_rtp_g729_depay_class_init (GstRtpG729DepayClass * klass)
       "Extracts G.729 audio from RTP packets (RFC 3551)",
       "Laurent Glayal <spglegle@yahoo.fr>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_g729_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_g729_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_g729_depay_setcaps;
 }
 
@@ -168,19 +170,16 @@ wrong_clock_rate:
 }
 
 static GstBuffer *
-gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpG729Depay *rtpg729depay;
   GstBuffer *outbuf = NULL;
   gint payload_len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
   rtpg729depay = GST_RTP_G729_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   /* At least 2 bytes (CNG from G729 Annex B) */
   if (payload_len < 2) {
@@ -195,16 +194,17 @@ gst_rtp_g729_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     GST_LOG_OBJECT (rtpg729depay, "G729 payload contains CNG frame");
   }
 
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
-
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     /* marker bit starts talkspurt */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
+  gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
   GST_LOG_OBJECT (depayload, "pushing buffer of size %" G_GSIZE_FORMAT,
       gst_buffer_get_size (outbuf));
 
diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c
index e899d42f4aa69c7ccf4e344e6bc05134a420ba4e..ad89734a0239df9c14cd42599db5cb39a938405f 100644
--- a/gst/rtp/gstrtpg729pay.c
+++ b/gst/rtp/gstrtpg729pay.c
@@ -32,8 +32,10 @@
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/base/gstadapter.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpg729pay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpg729pay_debug);
 #define GST_CAT_DEFAULT (rtpg729pay_debug)
@@ -121,7 +123,6 @@ gst_rtp_g729_pay_init (GstRTPG729Pay * pay)
   GstRTPBasePayload *payload = GST_RTP_BASE_PAYLOAD (pay);
 
   payload->pt = GST_RTP_PAYLOAD_G729;
-  gst_rtp_base_payload_set_options (payload, "audio", FALSE, "G729", 8000);
 
   pay->adapter = gst_adapter_new ();
 }
@@ -140,15 +141,9 @@ static gboolean
 gst_rtp_g729_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
-  GstStructure *structure;
-  gint pt;
 
-  structure = gst_caps_get_structure (caps, 0);
-  if (!gst_structure_get_int (structure, "payload", &pt))
-    pt = GST_RTP_PAYLOAD_G729;
-
-  payload->pt = pt;
-  payload->dynamic = pt != GST_RTP_PAYLOAD_G729;
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_G729, "G729", 8000);
 
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
@@ -156,16 +151,15 @@ gst_rtp_g729_pay_set_caps (GstRTPBasePayload * payload, GstCaps * caps)
 }
 
 static GstFlowReturn
-gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay,
-    const guint8 * data, guint payload_len)
+gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay, GstBuffer * buf)
 {
   GstRTPBasePayload *basepayload;
   GstClockTime duration;
   guint frames;
   GstBuffer *outbuf;
-  guint8 *payload;
   GstFlowReturn ret;
   GstRTPBuffer rtp = { NULL };
+  guint payload_len = gst_buffer_get_size (buf);
 
   basepayload = GST_RTP_BASE_PAYLOAD (rtpg729pay);
 
@@ -173,14 +167,10 @@ gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay,
       payload_len, GST_TIME_ARGS (rtpg729pay->next_ts));
 
   /* create buffer to hold the payload */
-  outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+  outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
 
   gst_rtp_buffer_map (outbuf, GST_MAP_READWRITE, &rtp);
 
-  /* copy payload */
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  memcpy (payload, data, payload_len);
-
   /* set metadata */
   frames =
       (payload_len / G729_FRAME_SIZE) + ((payload_len % G729_FRAME_SIZE) >> 1);
@@ -199,19 +189,13 @@ gst_rtp_g729_pay_push (GstRTPG729Pay * rtpg729pay,
   }
   gst_rtp_buffer_unmap (&rtp);
 
-  ret = gst_rtp_base_payload_push (basepayload, outbuf);
-
-  return ret;
-}
+  /* append payload */
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buf,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  outbuf = gst_buffer_append (outbuf, buf);
 
-static GstFlowReturn
-gst_rtp_g729_pay_push_and_free (GstRTPG729Pay * rtpg729pay,
-    guint8 * data, guint payload_len)
-{
-  GstFlowReturn ret;
+  ret = gst_rtp_base_payload_push (basepayload, outbuf);
 
-  ret = gst_rtp_g729_pay_push (rtpg729pay, data, payload_len);
-  g_free (data);
   return ret;
 }
 
@@ -320,8 +304,8 @@ gst_rtp_g729_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buf)
   if (GST_BUFFER_IS_DISCONT (buf)) {
     /* flush remainder */
     if (available > 0) {
-      gst_rtp_g729_pay_push_and_free (rtpg729pay,
-          gst_adapter_take (adapter, available), available);
+      gst_rtp_g729_pay_push (rtpg729pay,
+          gst_adapter_take_buffer_fast (adapter, available));
       available = 0;
     }
     rtpg729pay->discont = TRUE;
@@ -341,12 +325,7 @@ gst_rtp_g729_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buf)
     rtpg729pay->next_ts = timestamp;
 
   if (available == 0 && size >= min_payload_len && size <= max_payload_len) {
-    GstMapInfo map;
-
-    gst_buffer_map (buf, &map, GST_MAP_READ);
-    ret = gst_rtp_g729_pay_push (rtpg729pay, map.data, map.size);
-    gst_buffer_unmap (buf, &map);
-    gst_buffer_unref (buf);
+    ret = gst_rtp_g729_pay_push (rtpg729pay, buf);
     return ret;
   }
 
@@ -365,8 +344,8 @@ gst_rtp_g729_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buf)
           (available / G729_FRAME_SIZE) * G729_FRAME_SIZE);
     }
 
-    ret = gst_rtp_g729_pay_push_and_free (rtpg729pay,
-        gst_adapter_take (adapter, payload_len), payload_len);
+    ret = gst_rtp_g729_pay_push (rtpg729pay,
+        gst_adapter_take_buffer_fast (adapter, payload_len));
     available -= payload_len;
   }
 
diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c
index 96b30cfe85439687746aefdedd35a9f6a67c0444..7b781e26cd43884c857b86915f1f001c74d9e691 100644
--- a/gst/rtp/gstrtpgsmdepay.c
+++ b/gst/rtp/gstrtpgsmdepay.c
@@ -24,7 +24,9 @@
 
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpgsmdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpgsmdepay_debug);
 #define GST_CAT_DEFAULT (rtpgsmdepay_debug)
@@ -57,7 +59,7 @@ static GstStaticPadTemplate gst_rtp_gsm_depay_sink_template =
     );
 
 static GstBuffer *gst_rtp_gsm_depay_process (GstRTPBaseDepayload * _depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_gsm_depay_setcaps (GstRTPBaseDepayload * _depayload,
     GstCaps * caps);
 
@@ -82,7 +84,7 @@ gst_rtp_gsm_depay_class_init (GstRTPGSMDepayClass * klass)
       "RTP GSM depayloader", "Codec/Depayloader/Network/RTP",
       "Extracts GSM audio from RTP packets", "Zeeshan Ali <zeenix@gmail.com>");
 
-  gstrtpbase_depayload_class->process = gst_rtp_gsm_depay_process;
+  gstrtpbase_depayload_class->process_rtp_packet = gst_rtp_gsm_depay_process;
   gstrtpbase_depayload_class->set_caps = gst_rtp_gsm_depay_setcaps;
 
   GST_DEBUG_CATEGORY_INIT (rtpgsmdepay_debug, "rtpgsmdepay", 0,
@@ -117,29 +119,29 @@ gst_rtp_gsm_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_gsm_depay_process (GstRTPBaseDepayload * _depayload, GstBuffer * buf)
+gst_rtp_gsm_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf = NULL;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
-
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (marker && outbuf) {
     /* mark start of talkspurt with RESYNC */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
+
   return outbuf;
 }
 
diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c
index 41f9b1361f8fd87383f7d938ea25362cbd158881..56c72b6aeaef593f7c8f86dc4735779015cf3758 100644
--- a/gst/rtp/gstrtpgsmpay.c
+++ b/gst/rtp/gstrtpgsmpay.c
@@ -25,8 +25,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpgsmpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpgsmpay_debug);
 #define GST_CAT_DEFAULT (rtpgsmpay_debug)
@@ -107,7 +109,8 @@ gst_rtp_gsm_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
   if (strcmp ("audio/x-gsm", stname))
     goto invalid_type;
 
-  gst_rtp_base_payload_set_options (payload, "audio", FALSE, "GSM", 8000);
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_GSM, "GSM", 8000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
@@ -127,21 +130,16 @@ gst_rtp_gsm_pay_handle_buffer (GstRTPBasePayload * basepayload,
   GstRTPGSMPay *rtpgsmpay;
   guint payload_len;
   GstBuffer *outbuf;
-  GstMapInfo map;
-  guint8 *payload;
   GstClockTime timestamp, duration;
   GstFlowReturn ret;
-  GstRTPBuffer rtp = { NULL };
 
   rtpgsmpay = GST_RTP_GSM_PAY (basepayload);
 
-  gst_buffer_map (buffer, &map, GST_MAP_READ);
-
   timestamp = GST_BUFFER_PTS (buffer);
   duration = GST_BUFFER_DURATION (buffer);
 
   /* FIXME, only one GSM frame per RTP packet for now */
-  payload_len = map.size;
+  payload_len = gst_buffer_get_size (buffer);
 
   /* FIXME, just error out for now */
   if (payload_len > GST_RTP_BASE_PAYLOAD_MTU (rtpgsmpay))
@@ -153,17 +151,11 @@ gst_rtp_gsm_pay_handle_buffer (GstRTPBasePayload * basepayload,
   GST_BUFFER_PTS (outbuf) = timestamp;
   GST_BUFFER_DURATION (outbuf) = duration;
 
-  /* get payload */
-  gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
-
-  /* copy data in payload */
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  memcpy (payload, map.data, map.size);
-
-  gst_rtp_buffer_unmap (&rtp);
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpgsmpay), outbuf, buffer,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
 
-  gst_buffer_unmap (buffer, &map);
-  gst_buffer_unref (buffer);
+  /* append payload */
+  outbuf = gst_buffer_append (outbuf, buffer);
 
   GST_DEBUG ("gst_rtp_gsm_pay_chain: pushing buffer of size %" G_GSIZE_FORMAT,
       gst_buffer_get_size (outbuf));
@@ -178,7 +170,6 @@ too_big:
     GST_ELEMENT_ERROR (rtpgsmpay, STREAM, ENCODE, (NULL),
         ("payload_len %u > mtu %u", payload_len,
             GST_RTP_BASE_PAYLOAD_MTU (rtpgsmpay)));
-    gst_buffer_unmap (buffer, &map);
     return GST_FLOW_ERROR;
   }
 }
diff --git a/gst/rtp/gstrtpgstdepay.c b/gst/rtp/gstrtpgstdepay.c
index 621aa4758c956871e41a6dd965c02c8f186d9a20..aaea3d472fda012f4e346638851109fb157b4bf1 100644
--- a/gst/rtp/gstrtpgstdepay.c
+++ b/gst/rtp/gstrtpgstdepay.c
@@ -25,6 +25,7 @@
 #include <stdlib.h>
 
 #include "gstrtpgstdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpgstdepay_debug);
 #define GST_CAT_DEFAULT (rtpgstdepay_debug)
@@ -59,7 +60,7 @@ static void gst_rtp_gst_depay_reset (GstRtpGSTDepay * rtpgstdepay, gboolean
 static gboolean gst_rtp_gst_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_gst_depay_class_init (GstRtpGSTDepayClass * klass)
@@ -91,7 +92,7 @@ gst_rtp_gst_depay_class_init (GstRtpGSTDepayClass * klass)
 
   gstrtpbasedepayload_class->handle_event = gst_rtp_gst_depay_handle_event;
   gstrtpbasedepayload_class->set_caps = gst_rtp_gst_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_gst_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_gst_depay_process;
 }
 
 static void
@@ -397,30 +398,27 @@ store_event (GstRtpGSTDepay * rtpgstdepay, GstEvent * event)
 }
 
 static GstBuffer *
-gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpGSTDepay *rtpgstdepay;
   GstBuffer *subbuf, *outbuf = NULL;
   gint payload_len;
   guint8 *payload;
   guint CV, frag_offset, avail, offset;
-  GstRTPBuffer rtp = { NULL };
 
   rtpgstdepay = GST_RTP_GST_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len <= 8)
     goto empty_packet;
 
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     GST_WARNING_OBJECT (rtpgstdepay, "DISCONT, clear adapter");
     gst_adapter_clear (rtpgstdepay->adapter);
   }
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
   /* strip off header
    *
@@ -440,11 +438,11 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     goto wrong_frag;
 
   /* subbuffer skipping the 8 header bytes */
-  subbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 8, -1);
+  subbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 8, -1);
   gst_adapter_push (rtpgstdepay->adapter, subbuf);
 
   offset = 0;
-  if (gst_rtp_buffer_get_marker (&rtp)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     guint avail;
     GstCaps *outcaps;
 
@@ -525,7 +523,10 @@ gst_rtp_gst_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       outbuf = NULL;
     }
   }
-  gst_rtp_buffer_unmap (&rtp);
+
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpgstdepay), outbuf, 0);
+  }
 
   return outbuf;
 
@@ -534,13 +535,11 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 wrong_frag:
   {
     gst_adapter_clear (rtpgstdepay->adapter);
-    gst_rtp_buffer_unmap (&rtp);
     GST_LOG_OBJECT (rtpgstdepay, "wrong fragment, skipping");
     return NULL;
   }
@@ -548,14 +547,12 @@ no_caps:
   {
     GST_WARNING_OBJECT (rtpgstdepay, "failed to parse caps");
     gst_buffer_unref (outbuf);
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 no_event:
   {
     GST_WARNING_OBJECT (rtpgstdepay, "failed to parse event");
     gst_buffer_unref (outbuf);
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 missing_caps:
@@ -563,7 +560,6 @@ missing_caps:
     GST_ELEMENT_WARNING (rtpgstdepay, STREAM, DECODE,
         ("Missing caps %u.", CV), (NULL));
     gst_buffer_unref (outbuf);
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c
index 82669c8eba321b3b4ee4509129fb4b0b7502554f..8d50b6cd5a63a3ec8d3b07185ec8845514b4a97c 100644
--- a/gst/rtp/gstrtpgstpay.c
+++ b/gst/rtp/gstrtpgstpay.c
@@ -26,6 +26,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 
 #include "gstrtpgstpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_rtp_pay_debug);
 #define GST_CAT_DEFAULT gst_rtp_pay_debug
@@ -336,7 +337,8 @@ gst_rtp_gst_pay_create_from_adapter (GstRtpGSTPay * rtpgstpay,
     paybuf = gst_adapter_take_buffer_fast (rtpgstpay->adapter, payload_len);
 
     /* create a new group to hold the rtp header and the payload */
-    gst_buffer_append (outbuf, paybuf);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpgstpay), outbuf, paybuf, 0);
+    outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = timestamp;
 
diff --git a/gst/rtp/gstrtph261depay.c b/gst/rtp/gstrtph261depay.c
new file mode 100644
index 0000000000000000000000000000000000000000..d50ff1c2cfd2ed0107503f15f3f658cb525da49e
--- /dev/null
+++ b/gst/rtp/gstrtph261depay.c
@@ -0,0 +1,295 @@
+/* GStreamer
+ *
+ * Copyright (C) <2014> Stian Selnes <stian@pexip.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+/**
+ * SECTION:element-rtph261depay
+ * @see_also: rtph261pay
+ *
+ * Extract encoded H.261 video frames from RTP packets according to RFC 4587.
+ * For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt
+ *
+ * The depayloader takes an RTP packet and extracts its H.261 stream. It
+ * aggregates the extracted stream until a complete frame is received before
+ * it pushes it downstream.
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 udpsrc caps='application/x-rtp, payload=31' ! rtph261depay ! avdec_h261 ! autovideosink
+ * ]| This example pipeline will depayload and decode an RTP H.261 video stream.
+ * Refer to the rtph261pay example to create the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include <string.h>
+
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
+#include "gstrtph261depay.h"
+#include "gstrtph261pay.h"      /* GstRtpH261PayHeader */
+#include "gstrtputils.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtph261depay_debug);
+#define GST_CAT_DEFAULT (rtph261depay_debug)
+
+static const guint8 NO_LEFTOVER = 0xFF;
+
+static GstStaticPadTemplate gst_rtp_h261_depay_src_template =
+GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-h261")
+    );
+
+static GstStaticPadTemplate gst_rtp_h261_depay_sink_template =
+    GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"video\", "
+        "payload = (int) " GST_RTP_PAYLOAD_H261_STRING ", "
+        "clock-rate = (int) 90000, " "encoding-name = (string) \"H261\"; "
+        "application/x-rtp, "
+        "media = (string) \"video\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) 90000, " "encoding-name = (string) \"H261\"")
+    );
+
+G_DEFINE_TYPE (GstRtpH261Depay, gst_rtp_h261_depay,
+    GST_TYPE_RTP_BASE_DEPAYLOAD);
+#define parent_class gst_rtp_h261_depay_parent_class
+
+static GstBuffer *
+gst_rtp_h261_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
+{
+  GstRtpH261Depay *depay;
+  GstBuffer *outbuf = NULL;
+  gint payload_len;
+  guint8 *payload;
+  const guint header_len = GST_RTP_H261_PAYLOAD_HEADER_LEN;
+  gboolean marker;
+  GstRtpH261PayHeader *header;
+
+  depay = GST_RTP_H261_DEPAY (depayload);
+
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
+    GST_DEBUG_OBJECT (depay, "Discont buffer, flushing adapter");
+    gst_adapter_clear (depay->adapter);
+    depay->leftover = NO_LEFTOVER;
+    depay->start = FALSE;
+  }
+
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+
+  marker = gst_rtp_buffer_get_marker (rtp);
+
+  if (payload_len < 4) {
+    GST_WARNING_OBJECT (depay,
+        "Dropping packet with payload length invalid length");
+    return NULL;
+  }
+
+  header = (GstRtpH261PayHeader *) payload;
+
+  GST_DEBUG_OBJECT (depay,
+      "payload_len: %d, header_len: %d, sbit: %d, ebit: %d, marker %d",
+      payload_len, header_len, header->sbit, header->ebit, marker);
+
+  payload += header_len;
+  payload_len -= header_len;
+
+  if (!depay->start) {
+    /* Check for picture start code */
+    guint32 bits = GST_READ_UINT32_BE (payload) << header->sbit;
+    if (payload_len > 4 && bits >> 12 == 0x10) {
+      GST_DEBUG_OBJECT (depay, "Found picture start code");
+      depay->start = TRUE;
+    } else {
+      GST_DEBUG_OBJECT (depay, "No picture start code yet, skipping payload");
+      goto skip;
+    }
+  }
+
+  if (header->sbit != 0) {
+    /* Take the leftover from previous packet and merge it at the beginning */
+    payload[0] &= 0xFF >> header->sbit;
+    if (depay->leftover != NO_LEFTOVER) {
+      /* Happens if sbit is set for first packet in frame. Then previous byte
+       * has already been flushed. */
+      payload[0] |= depay->leftover;
+    }
+    depay->leftover = NO_LEFTOVER;
+  }
+
+  if (header->ebit == 0) {
+    /* H.261 stream ends on byte boundary, take entire packet */
+    gst_adapter_push (depay->adapter,
+        gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len));
+  } else {
+    /* Take the entire buffer except for the last byte, which will be kept to
+     * merge with next packet */
+    gst_adapter_push (depay->adapter,
+        gst_rtp_buffer_get_payload_subbuffer (rtp, header_len,
+            payload_len - 1));
+    depay->leftover = payload[payload_len - 1] & (0xFF << header->ebit);
+  }
+
+skip:
+  if (marker) {
+    if (depay->start) {
+      guint avail;
+
+      if (depay->leftover != NO_LEFTOVER) {
+        GstBuffer *buf = gst_buffer_new_and_alloc (1);
+        gst_buffer_memset (buf, 0, depay->leftover, 1);
+        gst_adapter_push (depay->adapter, buf);
+        depay->leftover = NO_LEFTOVER;
+      }
+
+      avail = gst_adapter_available (depay->adapter);
+      outbuf = gst_adapter_take_buffer (depay->adapter, avail);
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
+      /* Note that the I flag does not mean intra frame, but that the entire
+       * stream is intra coded. */
+      if (header->i)
+        GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+      else
+        GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
+      GST_DEBUG_OBJECT (depay, "Pushing out a buffer of %u bytes", avail);
+      depay->start = FALSE;
+    } else {
+      depay->start = TRUE;
+    }
+  }
+
+  return outbuf;
+}
+
+static gboolean
+gst_rtp_h261_depay_setcaps (GstRTPBaseDepayload * filter, GstCaps * caps)
+{
+  GstCaps *srccaps;
+
+  srccaps = gst_caps_new_empty_simple ("video/x-h261");
+  gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (filter), srccaps);
+  gst_caps_unref (srccaps);
+
+  return TRUE;
+}
+
+static GstStateChangeReturn
+gst_rtp_h261_depay_change_state (GstElement * element,
+    GstStateChange transition)
+{
+  GstRtpH261Depay *depay;
+  GstStateChangeReturn ret;
+
+  depay = GST_RTP_H261_DEPAY (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_NULL_TO_READY:
+      break;
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      gst_adapter_clear (depay->adapter);
+      depay->start = FALSE;
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_NULL:
+      break;
+    default:
+      break;
+  }
+  return ret;
+}
+
+static void
+gst_rtp_h261_depay_dispose (GObject * object)
+{
+  GstRtpH261Depay *depay;
+
+  depay = GST_RTP_H261_DEPAY (object);
+
+  if (depay->adapter) {
+    gst_object_unref (depay->adapter);
+    depay->adapter = NULL;
+  }
+
+  G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+
+static void
+gst_rtp_h261_depay_class_init (GstRtpH261DepayClass * klass)
+{
+  GObjectClass *gobject_class;
+  GstElementClass *gstelement_class;
+  GstRTPBaseDepayloadClass *gstrtpbasedepayload_class;
+
+  gobject_class = G_OBJECT_CLASS (klass);
+  gstelement_class = GST_ELEMENT_CLASS (klass);
+  gstrtpbasedepayload_class = GST_RTP_BASE_DEPAYLOAD_CLASS (klass);
+
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_h261_depay_src_template));
+  gst_element_class_add_pad_template (gstelement_class,
+      gst_static_pad_template_get (&gst_rtp_h261_depay_sink_template));
+
+  gst_element_class_set_static_metadata (gstelement_class,
+      "RTP H261 depayloader", "Codec/Depayloader/Network/RTP",
+      "Extracts H261 video from RTP packets (RFC 4587)",
+      "Stian Selnes <stian@pexip.com>");
+
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_h261_depay_process;
+  gstrtpbasedepayload_class->set_caps = gst_rtp_h261_depay_setcaps;
+
+  gobject_class->dispose = gst_rtp_h261_depay_dispose;
+
+  gstelement_class->change_state = gst_rtp_h261_depay_change_state;
+
+  GST_DEBUG_CATEGORY_INIT (rtph261depay_debug, "rtph261depay", 0,
+      "H261 Video RTP Depayloader");
+}
+
+static void
+gst_rtp_h261_depay_init (GstRtpH261Depay * depay)
+{
+  depay->adapter = gst_adapter_new ();
+  depay->leftover = NO_LEFTOVER;
+}
+
+gboolean
+gst_rtp_h261_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtph261depay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_H261_DEPAY);
+}
diff --git a/gst/rtp/gstrtph261depay.h b/gst/rtp/gstrtph261depay.h
new file mode 100644
index 0000000000000000000000000000000000000000..f87f81773c5120dd09ed439d6506945307d7eda1
--- /dev/null
+++ b/gst/rtp/gstrtph261depay.h
@@ -0,0 +1,60 @@
+/* GStreamer
+ * Copyright (C) <2014> Stian Selnes <stian@pexip.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GST_RTP_H261_DEPAY_H__
+#define __GST_RTP_H261_DEPAY_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_H261_DEPAY \
+  (gst_rtp_h261_depay_get_type())
+#define GST_RTP_H261_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_H261_DEPAY,GstRtpH261Depay))
+#define GST_RTP_H261_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_H261_DEPAY,GstRtpH261DepayClass))
+#define GST_IS_RTP_H261_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_H261_DEPAY))
+#define GST_IS_RTP_H261_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_H261_DEPAY))
+typedef struct _GstRtpH261Depay GstRtpH261Depay;
+typedef struct _GstRtpH261DepayClass GstRtpH261DepayClass;
+
+struct _GstRtpH261Depay
+{
+  GstRTPBaseDepayload depayload;
+
+  GstAdapter *adapter;
+  gboolean start;
+  guint8 leftover;
+};
+
+struct _GstRtpH261DepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+GType gst_rtp_h261_depay_get_type (void);
+
+gboolean gst_rtp_h261_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_RTP_H261_DEPAY_H__ */
diff --git a/gst/rtp/gstrtph261pay.c b/gst/rtp/gstrtph261pay.c
new file mode 100644
index 0000000000000000000000000000000000000000..7cdd323929a24ac3095d82a41fa4961db27a54cc
--- /dev/null
+++ b/gst/rtp/gstrtph261pay.c
@@ -0,0 +1,1072 @@
+/* GStreamer
+ * Copyright (C) <2014> Stian Selnes <stian@pexip.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ */
+
+/**
+ * SECTION:element-rtph261pay
+ * @see_also: rtph261depay
+ *
+ * Payload encoded H.261 video frames into RTP packets according to RFC 4587.
+ * For detailed information see: https://www.rfc-editor.org/rfc/rfc4587.txt
+ *
+ * The payloader takes a H.261 frame, parses it and splits it into fragments
+ * on MB boundaries in order to match configured MTU size. For each fragment
+ * an RTP packet is constructed with an RTP packet header followed by the
+ * fragment. In addition the payloader will make sure the packetized H.261
+ * stream appears as a continuous bit-stream after depacketization by shifting
+ * the encoded bit-stream of a frame to align with the last significant bit of
+ * the previous frame. This helps interoperability in the case where the
+ * encoder does not produce a continuous bit-stream but the decoder requires
+ * it.
+ *
+ * <refsect2>
+ * <title>Example launch line</title>
+ * |[
+ * gst-launch-1.0 videotestsrc ! avenc_h261 ! rtph261pay ! udpsink
+ * ]| This will encode a test video and payload it. Refer to the rtph261depay
+ * example to depayload and play the RTP stream.
+ * </refsect2>
+ */
+
+#ifdef HAVE_CONFIG_H
+#  include "config.h"
+#endif
+
+#include "gstrtph261pay.h"
+#include "gstrtputils.h"
+#include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
+#include <gst/base/gstbitreader.h>
+#include <string.h>
+
+GST_DEBUG_CATEGORY_STATIC (rtph261pay_debug);
+#define GST_CAT_DEFAULT (rtph261pay_debug)
+
+#define GST_RTP_HEADER_LEN 12
+#define GST_RTP_H261_PAYLOAD_HEADER_LEN 4
+
+static GstStaticPadTemplate gst_rtp_h261_pay_sink_template =
+GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("video/x-h261")
+    );
+
+static GstStaticPadTemplate gst_rtp_h261_pay_src_template =
+    GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) \"video\", "
+        "payload = (int) " GST_RTP_PAYLOAD_H261_STRING ", "
+        "clock-rate = (int) 90000, " "encoding-name = (string) \"H261\"; "
+        "application/x-rtp, "
+        "media = (string) \"video\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
+        "clock-rate = (int) 90000, " "encoding-name = (string) \"H261\"")
+    );
+
+G_DEFINE_TYPE (GstRtpH261Pay, gst_rtp_h261_pay, GST_TYPE_RTP_BASE_PAYLOAD);
+#define parent_class gst_rtp_h261_pay_parent_class
+
+typedef struct
+{
+  guint32 mba;
+  guint32 mtype;
+  guint32 quant;
+  gint mvx;
+  gint mvy;
+  guint endpos;
+  gint gobn;
+} Macroblock;
+
+typedef struct
+{
+  Macroblock last;
+  guint startpos;
+  guint endpos;
+  guint32 gn;
+  guint32 gquant;
+} Gob;
+
+#define PSC_LEN 20
+#define TR_LEN 5
+#define PTYPE_LEN 6
+#define GBSC_LEN 16
+#define GN_LEN 4
+#define GQUANT_LEN 5
+#define GEI_LEN 1
+#define GSPARE_LEN 8
+#define MQUANT_LEN 5
+#define MAX_NUM_GOB 12
+
+typedef enum
+{
+  PARSE_END_OF_BUFFER = -2,
+  PARSE_ERROR = -1,
+  PARSE_OK = 0,
+  PARSE_END_OF_FRAME,
+  PARSE_END_OF_GOB,
+} ParseReturn;
+
+
+#define SKIP_BITS(br,nbits) G_STMT_START {      \
+    if (!gst_bit_reader_skip (br, nbits))       \
+      return PARSE_END_OF_BUFFER;               \
+  } G_STMT_END
+
+#define GET_BITS(br,val,nbits) G_STMT_START {             \
+    if (!gst_bit_reader_get_bits_uint32 (br, val, nbits)) \
+      return PARSE_END_OF_BUFFER;                         \
+  } G_STMT_END
+
+/* Unchecked since we peek outside the buffer. Ok because of padding. */
+#define PEEK_BITS(br,val,nbits) G_STMT_START {                    \
+    *val = gst_bit_reader_peek_bits_uint16_unchecked (br, nbits); \
+  } G_STMT_END
+
+
+#define MBA_STUFFING 34
+#define MBA_START_CODE 35
+#define MBA_LEN 35
+#define MBA_WID 4
+/* [code, mask, nbits, mba] */
+static const guint16 mba_table[MBA_LEN][MBA_WID] = {
+  {0x8000, 0x8000, 1, 1},
+  {0x6000, 0xe000, 3, 2},
+  {0x4000, 0xe000, 3, 3},
+  {0x3000, 0xf000, 4, 4},
+  {0x2000, 0xf000, 4, 5},
+  {0x1800, 0xf800, 5, 6},
+  {0x1000, 0xf800, 5, 7},
+  {0x0e00, 0xfe00, 7, 8},
+  {0x0c00, 0xfe00, 7, 9},
+  {0x0b00, 0xff00, 8, 10},
+  {0x0a00, 0xff00, 8, 11},
+  {0x0900, 0xff00, 8, 12},
+  {0x0800, 0xff00, 8, 13},
+  {0x0700, 0xff00, 8, 14},
+  {0x0600, 0xff00, 8, 15},
+  {0x05c0, 0xffc0, 10, 16},
+  {0x0580, 0xffc0, 10, 17},
+  {0x0540, 0xffc0, 10, 18},
+  {0x0500, 0xffc0, 10, 19},
+  {0x04c0, 0xffc0, 10, 20},
+  {0x0480, 0xffc0, 10, 21},
+  {0x0460, 0xffe0, 11, 22},
+  {0x0440, 0xffe0, 11, 23},
+  {0x0420, 0xffe0, 11, 24},
+  {0x0400, 0xffe0, 11, 25},
+  {0x03e0, 0xffe0, 11, 26},
+  {0x03c0, 0xffe0, 11, 27},
+  {0x03a0, 0xffe0, 11, 28},
+  {0x0380, 0xffe0, 11, 29},
+  {0x0360, 0xffe0, 11, 30},
+  {0x0340, 0xffe0, 11, 31},
+  {0x0320, 0xffe0, 11, 32},
+  {0x0300, 0xffe0, 11, 33},
+  {0x01e0, 0xffe0, 11, MBA_STUFFING},
+  {0x0001, 0xffff, 16, MBA_START_CODE},
+};
+
+#define MTYPE_INTRA    (1 << 0)
+#define MTYPE_INTER    (1 << 1)
+#define MTYPE_MC       (1 << 2)
+#define MTYPE_FIL      (1 << 3)
+#define MTYPE_MQUANT   (1 << 4)
+#define MTYPE_MVD      (1 << 5)
+#define MTYPE_CBP      (1 << 6)
+#define MTYPE_TCOEFF   (1 << 7)
+#define MTYPE_LEN 10
+#define MTYPE_WID 4
+/* [code, mask, nbits, flags] */
+static const guint16 mtype_table[MTYPE_LEN][MTYPE_WID] = {
+  {0x8000, 0x8000, 1, MTYPE_INTER | MTYPE_CBP | MTYPE_TCOEFF},
+  {0x4000, 0xc000, 2,
+      MTYPE_INTER | MTYPE_MC | MTYPE_FIL | MTYPE_MVD | MTYPE_CBP |
+        MTYPE_TCOEFF},
+  {0x2000, 0xe000, 3, MTYPE_INTER | MTYPE_MC | MTYPE_FIL | MTYPE_MVD},
+  {0x1000, 0xf000, 4, MTYPE_INTRA | MTYPE_TCOEFF},
+  {0x0800, 0xf800, 5, MTYPE_INTER | MTYPE_MQUANT | MTYPE_CBP | MTYPE_TCOEFF},
+  {0x0400, 0xfc00, 6,
+      MTYPE_INTER | MTYPE_MC | MTYPE_FIL | MTYPE_MQUANT | MTYPE_MVD |
+        MTYPE_CBP | MTYPE_TCOEFF},
+  {0x0200, 0xfe00, 7, MTYPE_INTRA | MTYPE_MQUANT | MTYPE_TCOEFF},
+  {0x0100, 0xff00, 8,
+      MTYPE_INTER | MTYPE_MC | MTYPE_MVD | MTYPE_CBP | MTYPE_TCOEFF},
+  {0x0080, 0xff80, 9, MTYPE_INTER | MTYPE_MC | MTYPE_MVD},
+  {0x0040, 0xffc0, 10,
+      MTYPE_INTER | MTYPE_MC | MTYPE_MQUANT | MTYPE_MVD | MTYPE_CBP |
+        MTYPE_TCOEFF},
+};
+
+#define MVD_LEN 32
+#define MVD_WID 5
+/* [code, mask, nbits, mvd1, mvd2] */
+static const guint16 mvd_table[MVD_LEN][MVD_WID] = {
+  {0x8000, 0x8000, 1, 0, 0},
+  {0x6000, 0xe000, 3, -1, -1},
+  {0x4000, 0xe000, 3, 1, 1},
+  {0x3000, 0xf000, 4, -2, 30},
+  {0x2000, 0xf000, 4, 2, -30},
+  {0x1800, 0xf800, 5, -3, 29},
+  {0x1000, 0xf800, 5, 3, -29},
+  {0x0e00, 0xfe00, 7, -4, 28},
+  {0x0c00, 0xfe00, 7, 4, -28},
+  {0x0700, 0xff00, 8, -7, 25},
+  {0x0900, 0xff00, 8, -6, 26},
+  {0x0b00, 0xff00, 8, -5, 27},
+  {0x0a00, 0xff00, 8, 5, -27},
+  {0x0800, 0xff00, 8, 6, -26},
+  {0x0600, 0xff00, 8, 7, -25},
+  {0x04c0, 0xffc0, 10, -10, 22},
+  {0x0540, 0xffc0, 10, -9, 23},
+  {0x05c0, 0xffc0, 10, -8, 24},
+  {0x0580, 0xffc0, 10, 8, -24},
+  {0x0500, 0xffc0, 10, 9, -23},
+  {0x0480, 0xffc0, 10, 10, -22},
+  {0x0320, 0xffe0, 11, -16, 16},
+  {0x0360, 0xffe0, 11, -15, 17},
+  {0x03a0, 0xffe0, 11, -14, 18},
+  {0x03e0, 0xffe0, 11, -13, 19},
+  {0x0420, 0xffe0, 11, -12, 20},
+  {0x0460, 0xffe0, 11, -11, 21},
+  {0x0440, 0xffe0, 11, 11, -21},
+  {0x0400, 0xffe0, 11, 12, -20},
+  {0x03c0, 0xffe0, 11, 13, -19},
+  {0x0380, 0xffe0, 11, 14, -18},
+  {0x0340, 0xffe0, 11, 15, -17},
+};
+
+#define CBP_LEN 63
+/* [code, mask, nbits, cbp] */
+static const guint16 cbp_table[CBP_LEN][4] = {
+  {0xe000, 0xe000, 3, 60},
+  {0xd000, 0xf000, 4, 4},
+  {0xc000, 0xf000, 4, 8},
+  {0xb000, 0xf000, 4, 16},
+  {0xa000, 0xf000, 4, 32},
+  {0x9800, 0xf800, 5, 12},
+  {0x9000, 0xf800, 5, 48},
+  {0x8800, 0xf800, 5, 20},
+  {0x8000, 0xf800, 5, 40},
+  {0x7800, 0xf800, 5, 28},
+  {0x7000, 0xf800, 5, 44},
+  {0x6800, 0xf800, 5, 52},
+  {0x6000, 0xf800, 5, 56},
+  {0x5800, 0xf800, 5, 1},
+  {0x5000, 0xf800, 5, 61},
+  {0x4800, 0xf800, 5, 2},
+  {0x4000, 0xf800, 5, 62},
+  {0x3c00, 0xfc00, 6, 24},
+  {0x3800, 0xfc00, 6, 36},
+  {0x3400, 0xfc00, 6, 3},
+  {0x3000, 0xfc00, 6, 63},
+  {0x2e00, 0xfe00, 7, 5},
+  {0x2c00, 0xfe00, 7, 9},
+  {0x2a00, 0xfe00, 7, 17},
+  {0x2800, 0xfe00, 7, 33},
+  {0x2600, 0xfe00, 7, 6},
+  {0x2400, 0xfe00, 7, 10},
+  {0x2200, 0xfe00, 7, 18},
+  {0x2000, 0xfe00, 7, 34},
+  {0x1f00, 0xff00, 8, 7},
+  {0x1e00, 0xff00, 8, 11},
+  {0x1d00, 0xff00, 8, 19},
+  {0x1c00, 0xff00, 8, 35},
+  {0x1b00, 0xff00, 8, 13},
+  {0x1a00, 0xff00, 8, 49},
+  {0x1900, 0xff00, 8, 21},
+  {0x1800, 0xff00, 8, 41},
+  {0x1700, 0xff00, 8, 14},
+  {0x1600, 0xff00, 8, 50},
+  {0x1500, 0xff00, 8, 22},
+  {0x1400, 0xff00, 8, 42},
+  {0x1300, 0xff00, 8, 15},
+  {0x1200, 0xff00, 8, 51},
+  {0x1100, 0xff00, 8, 23},
+  {0x1000, 0xff00, 8, 43},
+  {0x0f00, 0xff00, 8, 25},
+  {0x0e00, 0xff00, 8, 37},
+  {0x0d00, 0xff00, 8, 26},
+  {0x0c00, 0xff00, 8, 38},
+  {0x0b00, 0xff00, 8, 29},
+  {0x0a00, 0xff00, 8, 45},
+  {0x0900, 0xff00, 8, 53},
+  {0x0800, 0xff00, 8, 57},
+  {0x0700, 0xff00, 8, 30},
+  {0x0600, 0xff00, 8, 46},
+  {0x0500, 0xff00, 8, 54},
+  {0x0400, 0xff00, 8, 58},
+  {0x0380, 0xff80, 9, 31},
+  {0x0300, 0xff80, 9, 47},
+  {0x0280, 0xff80, 9, 55},
+  {0x0200, 0xff80, 9, 59},
+  {0x0180, 0xff80, 9, 27},
+  {0x0100, 0xff80, 9, 39},
+};
+
+#define TCOEFF_EOB 0xffff
+#define TCOEFF_ESC 0xfffe
+#define TCOEFF_LEN 65
+/* [code, mask, nbits, run, level] */
+static const guint16 tcoeff_table[TCOEFF_LEN][5] = {
+  {0x8000, 0xc000, 2, TCOEFF_EOB, 0},   /* Not available for first coeff */
+  /* {0x8000, 0x8000,  2,  0,  1}, *//* Available only for first Inter coeff */
+  {0xc000, 0xc000, 3, 0, 1},    /* Not available for first coeff */
+  {0x6000, 0xe000, 4, 1, 1},
+  {0x4000, 0xf000, 5, 0, 2},
+  {0x5000, 0xf000, 5, 2, 1},
+  {0x2800, 0xf800, 6, 0, 3},
+  {0x3800, 0xf800, 6, 3, 1},
+  {0x3000, 0xf800, 6, 4, 1},
+  {0x0400, 0xfc00, 6, TCOEFF_ESC, 0},
+  {0x1800, 0xfc00, 7, 1, 2},
+  {0x1c00, 0xfc00, 7, 5, 1},
+  {0x1400, 0xfc00, 7, 6, 1},
+  {0x1000, 0xfc00, 7, 7, 1},
+  {0x0c00, 0xfe00, 8, 0, 4},
+  {0x0800, 0xfe00, 8, 2, 2},
+  {0x0e00, 0xfe00, 8, 8, 1},
+  {0x0a00, 0xfe00, 8, 9, 1},
+  {0x2600, 0xff00, 9, 0, 5},
+  {0x2100, 0xff00, 9, 0, 6},
+  {0x2500, 0xff00, 9, 1, 3},
+  {0x2400, 0xff00, 9, 3, 2},
+  {0x2700, 0xff00, 9, 10, 1},
+  {0x2300, 0xff00, 9, 11, 1},
+  {0x2200, 0xff00, 9, 12, 1},
+  {0x2000, 0xff00, 9, 13, 1},
+  {0x0280, 0xffc0, 11, 0, 7},
+  {0x0300, 0xffc0, 11, 1, 4},
+  {0x02c0, 0xffc0, 11, 2, 3},
+  {0x03c0, 0xffc0, 11, 4, 2},
+  {0x0240, 0xffc0, 11, 5, 2},
+  {0x0380, 0xffc0, 11, 14, 1},
+  {0x0340, 0xffc0, 11, 15, 1},
+  {0x0200, 0xffc0, 11, 16, 1},
+  {0x01d0, 0xfff0, 13, 0, 8},
+  {0x0180, 0xfff0, 13, 0, 9},
+  {0x0130, 0xfff0, 13, 0, 10},
+  {0x0100, 0xfff0, 13, 0, 11},
+  {0x01b0, 0xfff0, 13, 1, 5},
+  {0x0140, 0xfff0, 13, 2, 4},
+  {0x01c0, 0xfff0, 13, 3, 3},
+  {0x0120, 0xfff0, 13, 4, 3},
+  {0x01e0, 0xfff0, 13, 6, 2},
+  {0x0150, 0xfff0, 13, 7, 2},
+  {0x0110, 0xfff0, 13, 8, 2},
+  {0x01f0, 0xfff0, 13, 17, 1},
+  {0x01a0, 0xfff0, 13, 18, 1},
+  {0x0190, 0xfff0, 13, 19, 1},
+  {0x0170, 0xfff0, 13, 20, 1},
+  {0x0160, 0xfff0, 13, 21, 1},
+  {0x00d0, 0xfff8, 14, 0, 12},
+  {0x00c8, 0xfff8, 14, 0, 13},
+  {0x00c0, 0xfff8, 14, 0, 14},
+  {0x00b8, 0xfff8, 14, 0, 15},
+  {0x00b0, 0xfff8, 14, 1, 6},
+  {0x00a8, 0xfff8, 14, 1, 7},
+  {0x00a0, 0xfff8, 14, 2, 5},
+  {0x0098, 0xfff8, 14, 3, 4},
+  {0x0090, 0xfff8, 14, 5, 3},
+  {0x0088, 0xfff8, 14, 9, 2},
+  {0x0080, 0xfff8, 14, 10, 2},
+  {0x00f8, 0xfff8, 14, 22, 1},
+  {0x00f0, 0xfff8, 14, 23, 1},
+  {0x00e8, 0xfff8, 14, 24, 1},
+  {0x00e0, 0xfff8, 14, 25, 1},
+  {0x00d8, 0xfff8, 14, 26, 1},
+};
+
+static ParseReturn
+decode_mba (GstBitReader * br, gint * mba)
+{
+  gint i;
+  guint16 code;
+
+  *mba = -1;
+  do {
+    PEEK_BITS (br, &code, 16);
+    for (i = 0; i < MBA_LEN; i++) {
+      if ((code & mba_table[i][1]) == mba_table[i][0]) {
+        *mba = mba_table[i][3];
+
+        if (*mba == MBA_START_CODE)
+          return PARSE_END_OF_GOB;
+        SKIP_BITS (br, mba_table[i][2]);
+        if (*mba != MBA_STUFFING)
+          return PARSE_OK;
+      }
+    }
+  } while (*mba == MBA_STUFFING);
+
+  /* 0x0 indicates end of frame since we appended 0-bytes */
+  if (code == 0x0)
+    return PARSE_END_OF_FRAME;
+
+  return PARSE_ERROR;
+}
+
+static ParseReturn
+decode_mtype (GstBitReader * br, guint * mtype)
+{
+  gint i;
+  guint16 code;
+
+  PEEK_BITS (br, &code, 16);
+  for (i = 0; i < MTYPE_LEN; i++) {
+    if ((code & mtype_table[i][1]) == mtype_table[i][0]) {
+      SKIP_BITS (br, mtype_table[i][2]);
+      *mtype = mtype_table[i][3];
+      return PARSE_OK;
+    }
+  }
+
+  return PARSE_ERROR;
+}
+
+static ParseReturn
+decode_mvd (GstBitReader * br, gint * mvd1, gint * mvd2)
+{
+  gint i;
+  guint16 code;
+
+  PEEK_BITS (br, &code, 16);
+  for (i = 0; i < MVD_LEN; i++) {
+    if ((code & mvd_table[i][1]) == mvd_table[i][0]) {
+      SKIP_BITS (br, mvd_table[i][2]);
+      *mvd1 = (gint16) mvd_table[i][3];
+      *mvd2 = (gint16) mvd_table[i][4];
+      return PARSE_OK;
+    }
+  }
+
+  return PARSE_ERROR;
+}
+
+static ParseReturn
+decode_cbp (GstBitReader * br, guint * cbp)
+{
+  gint i;
+  guint16 code;
+
+  PEEK_BITS (br, &code, 16);
+  for (i = 0; i < CBP_LEN; i++) {
+    if ((code & cbp_table[i][1]) == cbp_table[i][0]) {
+      SKIP_BITS (br, cbp_table[i][2]);
+      *cbp = cbp_table[i][3];
+      return PARSE_OK;
+    }
+  }
+
+  return PARSE_ERROR;
+}
+
+static ParseReturn
+decode_tcoeff (GstBitReader * br, guint mtype)
+{
+  gint i;
+  guint16 code;
+  gboolean eob;
+
+  /* Special handling of first coeff */
+  if (mtype & MTYPE_INTER) {
+    /* Inter, different vlc since EOB is not allowed */
+    PEEK_BITS (br, &code, 16);
+    if (code & 0x8000) {
+      SKIP_BITS (br, 2);
+      GST_TRACE ("tcoeff first inter special");
+    } else {
+      /* Fallthrough. Let the first coeff be handled like other coeffs since
+       * the vlc is the same as long as the first bit is not set. */
+    }
+  } else {
+    /* Intra, first coeff is fixed 8-bit */
+    GST_TRACE ("tcoeff first intra special");
+    SKIP_BITS (br, 8);
+  }
+
+  /* Block must end with EOB. */
+  eob = FALSE;
+  while (!eob) {
+    PEEK_BITS (br, &code, 16);
+    for (i = 0; i < TCOEFF_LEN; i++) {
+      if ((code & tcoeff_table[i][1]) == tcoeff_table[i][0]) {
+        GST_TRACE ("tcoeff vlc[%d], run=%d, level=%d", i, tcoeff_table[i][3],
+            tcoeff_table[i][4]);
+        SKIP_BITS (br, tcoeff_table[i][2]);
+        if (tcoeff_table[i][3] == TCOEFF_EOB) {
+          eob = TRUE;
+        } else if (tcoeff_table[i][3] == TCOEFF_ESC) {
+#if 0
+          guint16 val;
+          val = gst_bit_reader_peek_bits_uint16_unchecked (br, 6 + 8);
+          GST_TRACE ("esc run=%d, level=%d", val >> 8, (gint8) (val & 0xff));
+#endif
+          SKIP_BITS (br, 6 + 8);
+        }
+        break;
+      }
+    }
+    if (i == TCOEFF_LEN)
+      /* No matching VLC */
+      return PARSE_ERROR;
+  }
+
+  return PARSE_OK;
+}
+
+static gint
+find_picture_header_offset (const guint8 * data, gsize size)
+{
+  gint i;
+  guint32 val;
+
+  if (size < 4)
+    return -1;
+
+  val = GST_READ_UINT32_BE (data);
+  for (i = 0; i < 8; i++) {
+    if ((val >> (12 - i)) == 0x10)
+      return i;
+  }
+
+  return -1;
+}
+
+static ParseReturn
+parse_picture_header (GstRtpH261Pay * pay, GstBitReader * br, gint * num_gob)
+{
+  guint32 val;
+
+  GET_BITS (br, &val, PSC_LEN);
+  if (val != 0x10)
+    return PARSE_ERROR;
+  SKIP_BITS (br, TR_LEN);
+  GET_BITS (br, &val, PTYPE_LEN);
+  *num_gob = (val & 0x04) == 0 ? 3 : 12;
+
+  return PARSE_OK;
+}
+
+static ParseReturn
+parse_gob_header (GstRtpH261Pay * pay, GstBitReader * br, Gob * gob)
+{
+  guint32 val;
+
+  GET_BITS (br, &val, GBSC_LEN);
+  if (val != 0x01)
+    return PARSE_ERROR;
+  GET_BITS (br, &gob->gn, GN_LEN);
+  GST_TRACE_OBJECT (pay, "Parsing GOB %d", gob->gn);
+
+  GET_BITS (br, &gob->gquant, GQUANT_LEN);
+  GST_TRACE_OBJECT (pay, "GQUANT %d", gob->gquant);
+  GET_BITS (br, &val, GEI_LEN);
+  while (val != 0) {
+    SKIP_BITS (br, GSPARE_LEN);
+    GET_BITS (br, &val, GEI_LEN);
+  }
+
+  return PARSE_OK;
+}
+
+static ParseReturn
+parse_mb (GstRtpH261Pay * pay, GstBitReader * br, const Macroblock * prev,
+    Macroblock * mb)
+{
+  gint mba_diff;
+  guint cbp;
+  ParseReturn ret;
+
+  cbp = 0x3f;
+  mb->quant = prev->quant;
+
+  if ((ret = decode_mba (br, &mba_diff)) != PARSE_OK)
+    return ret;
+  mb->mba = prev->mba == 0 ? mba_diff : prev->mba + mba_diff;
+  GST_TRACE_OBJECT (pay, "Parse MBA %d (mba_diff %d)", mb->mba, mba_diff);
+
+  if ((ret = decode_mtype (br, &mb->mtype)) != PARSE_OK)
+    return ret;
+  GST_TRACE_OBJECT (pay,
+      "MTYPE: inter %d, mc %d, fil %d, mquant %d, mvd %d, cbp %d, tcoeff %d",
+      (mb->mtype & MTYPE_INTER) != 0, (mb->mtype & MTYPE_MC) != 0,
+      (mb->mtype & MTYPE_FIL) != 0, (mb->mtype & MTYPE_MQUANT) != 0,
+      (mb->mtype & MTYPE_MVD) != 0, (mb->mtype & MTYPE_CBP) != 0,
+      (mb->mtype & MTYPE_TCOEFF) != 0);
+
+  if (mb->mtype & MTYPE_MQUANT) {
+    GET_BITS (br, &mb->quant, MQUANT_LEN);
+    GST_TRACE_OBJECT (pay, "MQUANT: %d", mb->quant);
+  }
+
+  if (mb->mtype & MTYPE_MVD) {
+    gint i, pmv[2], mv[2];
+
+    if (mb->mba == 1 || mb->mba == 12 || mb->mba == 23 || mba_diff != 1 ||
+        (prev->mtype & MTYPE_INTER) == 0) {
+      pmv[0] = 0;
+      pmv[1] = 0;
+    } else {
+      pmv[0] = prev->mvx;
+      pmv[1] = prev->mvy;
+    }
+    for (i = 0; i < 2; i++) {
+      gint mvd1, mvd2;
+      if ((ret = decode_mvd (br, &mvd1, &mvd2)) != PARSE_OK)
+        return ret;
+      if (ABS (pmv[i] + mvd1) <= 15)
+        mv[i] = pmv[i] + mvd1;
+      else
+        mv[i] = pmv[i] + mvd2;
+    }
+    mb->mvx = mv[0];
+    mb->mvy = mv[1];
+  } else {
+    mb->mvx = 0;
+    mb->mvy = 0;
+  }
+
+  if (mb->mtype & MTYPE_CBP) {
+    if ((ret = decode_cbp (br, &cbp)) != PARSE_OK)
+      return ret;
+  }
+
+  /* Block layer */
+  if (mb->mtype & MTYPE_TCOEFF) {
+    gint block;
+    for (block = 0; block < 6; block++) {
+      if (cbp & (1 << (5 - block))) {
+        GST_TRACE_OBJECT (pay, "Decode TCOEFF for block %d", block);
+        if ((ret = decode_tcoeff (br, mb->mtype)) != PARSE_OK)
+          return ret;
+      }
+    }
+  }
+
+  mb->endpos = gst_bit_reader_get_pos (br);
+
+  return ret;
+}
+
+/* Parse macroblocks until the next MB that exceeds maxpos. At least one MB is
+ * included even if it exceeds maxpos. Returns endpos of last included MB. */
+static ParseReturn
+parse_mb_until_pos (GstRtpH261Pay * pay, GstBitReader * br, Gob * gob,
+    guint * endpos)
+{
+  ParseReturn ret;
+  gint count = 0;
+  gboolean stop = FALSE;
+  guint maxpos = *endpos;
+  Macroblock mb;
+
+  GST_LOG_OBJECT (pay, "Parse until pos %u, start at pos %u, gobn %d, mba %d",
+      maxpos, gst_bit_reader_get_pos (br), gob->gn, gob->last.mba);
+
+  while (!stop) {
+    ret = parse_mb (pay, br, &gob->last, &mb);
+
+    switch (ret) {
+      case PARSE_OK:
+        if (mb.endpos > maxpos && count > 0) {
+          /* Don't include current MB */
+          stop = TRUE;
+        } else {
+          /* Update to include current MB */
+          *endpos = mb.endpos;
+          gob->last = mb;
+          count++;
+        }
+        break;
+
+      case PARSE_END_OF_FRAME:
+        *endpos = gst_bit_reader_get_pos (br);
+        GST_DEBUG_OBJECT (pay, "End of frame at pos %u (last GOBN %d MBA %d)",
+            *endpos, gob->gn, gob->last.mba);
+        stop = TRUE;
+        break;
+
+      case PARSE_END_OF_GOB:
+        /* Note that a GOB can contain nothing, so we may get here on the first
+         * iteration. */
+        *endpos = gob->last.mba == 0 ?
+            gob->startpos : gst_bit_reader_get_pos (br);
+        GST_DEBUG_OBJECT (pay, "End of gob at pos %u (last GOBN %d MBA %d)",
+            *endpos, gob->gn, gob->last.mba);
+        stop = TRUE;
+        break;
+
+      case PARSE_END_OF_BUFFER:
+      case PARSE_ERROR:
+        GST_WARNING_OBJECT (pay, "Failed to parse stream (reason %d)", ret);
+        return ret;
+        break;
+
+      default:
+        g_assert_not_reached ();
+        break;
+    }
+  }
+  gob->last.gobn = gob->gn;
+
+  if (ret == PARSE_OK) {
+    GST_DEBUG_OBJECT (pay,
+        "Split GOBN %d after MBA %d (endpos %u, maxpos %u, nextpos %u)",
+        gob->gn, gob->last.mba, *endpos, maxpos, mb.endpos);
+    gst_bit_reader_set_pos (br, *endpos);
+  }
+
+  return ret;
+}
+
+static guint
+bitrange_to_bytes (guint first, guint last)
+{
+  return (GST_ROUND_UP_8 (last) - GST_ROUND_DOWN_8 (first)) / 8;
+}
+
+/* Find next 16-bit GOB start code (0x0001), which may not be byte aligned.
+ * Returns the bit offset of the first bit of GBSC. */
+static gssize
+find_gob (GstRtpH261Pay * pay, const guint8 * data, guint size, guint pos)
+{
+  gssize ret = -1;
+  guint offset;
+
+  GST_LOG_OBJECT (pay, "Search for GOB from pos %u", pos);
+
+  for (offset = pos / 8; offset < size - 1; offset++) {
+    if (data[offset] == 0x0) {
+      gint msb = g_bit_nth_msf (data[offset + 1], 8);
+      gint lsb = offset > 0 ? g_bit_nth_lsf (data[offset - 1], -1) : 0;
+      if (lsb == -1)
+        lsb = 8;
+      if (msb >= 0 && lsb >= msb) {
+        ret = offset * 8 - msb;
+        GST_LOG_OBJECT (pay, "Found GOB start code at bitpos %"
+            G_GSSIZE_FORMAT " (%02x %02x %02x)", ret,
+            offset > 0 ? data[offset - 1] : 0, data[offset], data[offset + 1]);
+        break;
+      }
+    }
+  }
+
+  return ret;
+}
+
+/* Scans after all GOB start codes and initalizes the GOB structure with start
+ * and end positions. */
+static ParseReturn
+gst_rtp_h261_pay_init_gobs (GstRtpH261Pay * pay, Gob * gobs, gint num_gobs,
+    const guint8 * bits, gint len, guint pos)
+{
+  gint i;
+
+  for (i = 0; i < num_gobs; i++) {
+    gssize gobpos = find_gob (pay, bits, len, pos);
+    if (gobpos == -1) {
+      GST_WARNING_OBJECT (pay, "Found only %d of %d GOBs", i, num_gobs);
+      return PARSE_ERROR;
+    }
+    GST_LOG_OBJECT (pay, "Found GOB %d at pos %" G_GSSIZE_FORMAT, i, gobpos);
+    pos = gobpos + GBSC_LEN;
+
+    gobs[i].startpos = gobpos;
+    if (i > 0)
+      gobs[i - 1].endpos = gobpos;
+  }
+  gobs[num_gobs - 1].endpos = len * 8;
+
+  return PARSE_OK;
+}
+
+static GstFlowReturn
+gst_rtp_h261_pay_fragment_push (GstRtpH261Pay * pay, GstBuffer * buffer,
+    const guint8 * bits, guint start, guint end,
+    const Macroblock * last_mb_in_previous_packet, gboolean marker)
+{
+  GstBuffer *outbuf;
+  guint8 *payload;
+  GstRtpH261PayHeader *header;
+  gint nbytes;
+  const Macroblock *last = last_mb_in_previous_packet;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+  nbytes = bitrange_to_bytes (start, end);
+
+  outbuf = gst_rtp_buffer_new_allocate (nbytes +
+      GST_RTP_H261_PAYLOAD_HEADER_LEN, 0, 0);
+  gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
+  payload = gst_rtp_buffer_get_payload (&rtp);
+  header = (GstRtpH261PayHeader *) payload;
+
+  memset (header, 0, GST_RTP_H261_PAYLOAD_HEADER_LEN);
+  header->v = 1;
+  header->sbit = start & 7;
+  header->ebit = (8 - (end & 7)) & 7;
+
+  if (last != NULL && last->mba != 0 && last->mba != 33) {
+    /* NOTE: MVD assumes that we're running on 2's complement architecture */
+    guint mbap = last->mba - 1;
+    header->gobn = last->gobn;
+    header->mbap1 = mbap >> 1;
+    header->mbap2 = mbap & 1;
+    header->quant = last->quant;
+    header->hmvd1 = last->mvx >> 3;
+    header->hmvd2 = last->mvx & 7;
+    header->vmvd = last->mvy;
+  }
+
+  memcpy (payload + GST_RTP_H261_PAYLOAD_HEADER_LEN,
+      bits + GST_ROUND_DOWN_8 (start) / 8, nbytes);
+
+  GST_BUFFER_TIMESTAMP (outbuf) = pay->timestamp;
+  gst_rtp_buffer_set_marker (&rtp, marker);
+  pay->offset = end & 7;
+
+  GST_DEBUG_OBJECT (pay,
+      "Push fragment, bytes %d, sbit %d, ebit %d, gobn %d, mbap %d, marker %d",
+      nbytes, header->sbit, header->ebit, last != NULL ? last->gobn : 0,
+      last != NULL ? MAX (last->mba - 1, 0) : 0, marker);
+
+  gst_rtp_buffer_unmap (&rtp);
+
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, buffer,
+      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
+  return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD_CAST (pay), outbuf);
+}
+
+static GstFlowReturn
+gst_rtp_h261_packetize_and_push (GstRtpH261Pay * pay, GstBuffer * buffer,
+    const guint8 * bits, gsize len)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstBitReader br_;
+  GstBitReader *br = &br_;
+  guint max_payload_size =
+      gst_rtp_buffer_calc_payload_len (GST_RTP_BASE_PAYLOAD_MTU (pay) -
+      GST_RTP_H261_PAYLOAD_HEADER_LEN, 0, 0);
+  guint startpos;
+  gint num_gobs;
+  Gob gobs[MAX_NUM_GOB];
+  Gob *gob;
+  Macroblock last_mb_in_previous_packet = { 0 };
+  gboolean marker;
+  ParseReturn result;
+
+  gst_bit_reader_init (br, bits, len);
+  gst_bit_reader_set_pos (br, pay->offset);
+  startpos = pay->offset;
+
+  if (parse_picture_header (pay, br, &num_gobs) < PARSE_OK) {
+    GST_WARNING_OBJECT (pay, "Failed to parse picture header");
+    goto beach;
+  }
+
+  if (gst_rtp_h261_pay_init_gobs (pay, gobs, num_gobs, bits, len,
+          gst_bit_reader_get_pos (br)) < PARSE_OK)
+    goto beach;
+
+  /* Split, create and push packets */
+  gob = gobs;
+  marker = FALSE;
+  while (marker == FALSE && ret == GST_FLOW_OK) {
+    guint endpos;
+
+    /* Check if there is wrap around because of extremely high MTU */
+    endpos = GST_ROUND_DOWN_8 (startpos) + max_payload_size * 8;
+    if (endpos < startpos)
+      endpos = G_MAXUINT;
+
+    GST_LOG_OBJECT (pay, "Next packet startpos %u maxpos %u", startpos, endpos);
+
+    /* Find the last GOB that does not completely fit in packet */
+    for (; gob < &gobs[num_gobs - 1]; gob++) {
+      if (bitrange_to_bytes (startpos, gob->endpos) > max_payload_size) {
+        GST_LOG_OBJECT (pay, "Split gob (start %u, end %u)",
+            gob->startpos, gob->endpos);
+        break;
+      }
+    }
+
+    if (startpos <= gob->startpos) {
+      /* Fast-forward until start of GOB */
+      gst_bit_reader_set_pos (br, gob->startpos);
+      if (parse_gob_header (pay, br, gob) < PARSE_OK) {
+        GST_WARNING_OBJECT (pay, "Failed to parse GOB header");
+        goto beach;
+      }
+      gob->last.mba = 0;
+      gob->last.gobn = gob->gn;
+      gob->last.quant = gob->gquant;
+    }
+
+    /* Parse MBs to find position where to split. Can only be done on after MB
+     * or at GOB boundary. */
+    result = parse_mb_until_pos (pay, br, gob, &endpos);
+    if (result < PARSE_OK)
+      goto beach;
+
+    marker = result == PARSE_END_OF_FRAME;
+    ret = gst_rtp_h261_pay_fragment_push (pay, buffer, bits, startpos, endpos,
+        &last_mb_in_previous_packet, marker);
+
+    last_mb_in_previous_packet = gob->last;
+    if (endpos == gob->endpos)
+      gob++;
+    startpos = endpos;
+  }
+
+beach:
+  return ret;
+}
+
+/* Shift buffer to packetize a continuous stream of bits (not bytes). Some
+ * payloaders/decoders are very picky about correct sbit/ebit for frames. */
+static guint8 *
+gst_rtp_h261_pay_shift_buffer (GstRtpH261Pay * pay, const guint8 * data,
+    gsize size, gint offset, gsize * newsize)
+{
+  /* In order to read variable length codes at the very end of the buffer
+   * wihout peeking into possibly unallocated data, we pad with extra 0's
+   * which will generate an invalid code at the end of the buffer. */
+  guint pad = 4;
+  gsize allocsize = size + pad;
+  guint8 *bits = g_malloc (allocsize);
+  gint i;
+
+  if (offset == 0) {
+    memcpy (bits, data, size);
+    *newsize = size;
+  } else if (offset > 0) {
+    bits[0] = 0;
+    for (i = 0; i < size; i++) {
+      bits[i] |= data[i] >> offset;
+      bits[i + 1] = data[i] << (8 - offset);
+    }
+    *newsize = size + 1;
+  } else {
+    gint shift = -offset;
+    for (i = 0; i < size - 1; i++)
+      bits[i] = (data[i] << shift) | (data[i + 1] >> (8 - shift));
+    bits[i] = data[i] << shift;
+    *newsize = size;
+  }
+  for (i = *newsize; i < allocsize; i++)
+    bits[i] = 0;
+
+  return bits;
+}
+
+static GstFlowReturn
+gst_rtp_h261_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstRtpH261Pay *pay = GST_RTP_H261_PAY (payload);
+  gsize len;
+  guint8 *bits;
+  gint psc_offset, shift;
+  GstMapInfo map;
+
+  GST_DEBUG_OBJECT (pay, "Handle buffer of size %" G_GSIZE_FORMAT,
+      gst_buffer_get_size (buffer));
+
+  pay->timestamp = GST_BUFFER_TIMESTAMP (buffer);
+
+  if (!gst_buffer_map (buffer, &map, GST_MAP_READ) || !map.data) {
+    GST_WARNING_OBJECT (pay, "Failed to map buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  psc_offset = find_picture_header_offset (map.data, map.size);
+  if (psc_offset < 0) {
+    GST_WARNING_OBJECT (pay, "Failed to find picture header offset");
+    goto beach;
+  } else {
+    GST_DEBUG_OBJECT (pay, "Picture header offset: %d", psc_offset);
+  }
+
+  shift = pay->offset - psc_offset;
+  bits = gst_rtp_h261_pay_shift_buffer (pay, map.data, map.size, shift, &len);
+  ret = gst_rtp_h261_packetize_and_push (pay, buffer, bits, len);
+  g_free (bits);
+
+beach:
+  gst_buffer_unmap (buffer, &map);
+  gst_buffer_unref (buffer);
+  return ret;
+}
+
+
+static gboolean
+gst_rtp_h261_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
+{
+  gboolean res;
+
+  gst_rtp_base_payload_set_options (payload, "video",
+      payload->pt != GST_RTP_PAYLOAD_H261, "H261", 90000);
+  res = gst_rtp_base_payload_set_outcaps (payload, NULL);
+
+  return res;
+}
+
+static void
+gst_rtp_h261_pay_init (GstRtpH261Pay * pay)
+{
+  GstRTPBasePayload *payload = GST_RTP_BASE_PAYLOAD (pay);
+  payload->pt = GST_RTP_PAYLOAD_H261;
+  pay->offset = 0;
+}
+
+static void
+gst_rtp_h261_pay_class_init (GstRtpH261PayClass * klass)
+{
+  GstElementClass *element_class;
+  GstRTPBasePayloadClass *gstrtpbasepayload_class;
+
+  element_class = GST_ELEMENT_CLASS (klass);
+  gstrtpbasepayload_class = GST_RTP_BASE_PAYLOAD_CLASS (klass);
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_h261_pay_src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&gst_rtp_h261_pay_sink_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "RTP H261 packet payloader", "Codec/Payloader/Network/RTP",
+      "Payload-encodes H261 video in RTP packets (RFC 4587)",
+      "Stian Selnes <stian@pexip.com>");
+
+  gstrtpbasepayload_class->set_caps = gst_rtp_h261_pay_setcaps;
+  gstrtpbasepayload_class->handle_buffer = gst_rtp_h261_pay_handle_buffer;
+
+  GST_DEBUG_CATEGORY_INIT (rtph261pay_debug, "rtph261pay", 0,
+      "H261 RTP Payloader");
+}
+
+gboolean
+gst_rtp_h261_pay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtph261pay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_H261_PAY);
+}
diff --git a/gst/rtp/gstrtph261pay.h b/gst/rtp/gstrtph261pay.h
new file mode 100644
index 0000000000000000000000000000000000000000..eae4bf2db5e02917981ecaef29b06bf1fb73f462
--- /dev/null
+++ b/gst/rtp/gstrtph261pay.h
@@ -0,0 +1,100 @@
+/* GStreamer
+ * Copyright (C) <2014> Stian Selnes <stian@pexip.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ *
+ * Author: Dejan Sakelsak sahel@kiberpipa.org
+ */
+
+#ifndef __GST_RTP_H261_PAY_H__
+#define __GST_RTP_H261_PAY_H__
+
+#include <gst/gst.h>
+#include <gst/rtp/gstrtpbasepayload.h>
+#include <gst/base/gstadapter.h>
+
+G_BEGIN_DECLS
+#define GST_TYPE_RTP_H261_PAY                   \
+  (gst_rtp_h261_pay_get_type())
+#define GST_RTP_H261_PAY(obj)                                           \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_H261_PAY,GstRtpH261Pay))
+#define GST_RTP_H261_PAY_CLASS(klass)                                   \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_H261_PAY,GstRtpH261PayClass))
+#define GST_IS_RTP_H261_PAY(obj)                            \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_H261_PAY))
+#define GST_IS_RTP_H261_PAY_CLASS(klass)                    \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_H261_PAY))
+typedef struct _GstRtpH261PayClass GstRtpH261PayClass;
+typedef struct _GstRtpH261Pay GstRtpH261Pay;
+
+struct _GstRtpH261Pay
+{
+  GstRTPBasePayload payload;
+
+  GstAdapter *adapter;
+  gint offset;
+  GstClockTime timestamp;
+};
+
+struct _GstRtpH261PayClass
+{
+  GstRTPBasePayloadClass parent_class;
+};
+
+typedef struct _GstRtpH261PayHeader
+{
+#if G_BYTE_ORDER == G_LITTLE_ENDIAN
+  unsigned int v:1;             /* Motion vector flag */
+  unsigned int i:1;             /* Intra encoded data */
+  unsigned int ebit:3;          /* End position */
+  unsigned int sbit:3;          /* Start position */
+
+  unsigned int mbap1:4;         /* MB address predictor - part1 */
+  unsigned int gobn:4;          /* GOB number */
+
+  unsigned int hmvd1:2;         /* Horizontal motion vector data - part1 */
+  unsigned int quant:5;         /* Quantizer */
+  unsigned int mbap2:1;         /* MB address predictor - part2 */
+
+  unsigned int vmvd:5;          /* Horizontal motion vector data - part1 */
+  unsigned int hmvd2:3;         /* Vertical motion vector data */
+#elif G_BYTE_ORDER == G_BIG_ENDIAN
+  unsigned int sbit:3;          /* Start position */
+  unsigned int ebit:3;          /* End position */
+  unsigned int i:1;             /* Intra encoded data */
+  unsigned int v:1;             /* Motion vector flag */
+
+  unsigned int gobn:4;          /* GOB number */
+  unsigned int mbap1:4;         /* MB address predictor - part1 */
+
+  unsigned int mbap2:1;         /* MB address predictor - part2 */
+  unsigned int quant:5;         /* Quantizer */
+  unsigned int hmvd1:2;         /* Horizontal motion vector data - part1 */
+
+  unsigned int hmvd2:3;         /* Vertical motion vector data */
+  unsigned int vmvd:5;          /* Horizontal motion vector data - part1 */
+#else
+#error "G_BYTE_ORDER should be big or little endian."
+#endif
+} GstRtpH261PayHeader;
+#define GST_RTP_H261_PAYLOAD_HEADER_LEN 4
+
+GType gst_rtp_h261_pay_get_type (void);
+
+gboolean gst_rtp_h261_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+#endif /* __GST_RTP_H261_PAY_H__ */
diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c
index a63b0b13a3b57f81ede182ed50fced7f15a5e130..4b31b9e62e51927544052938555fe6f7f435089a 100644
--- a/gst/rtp/gstrtph263depay.c
+++ b/gst/rtp/gstrtph263depay.c
@@ -30,7 +30,9 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 #include "gstrtph263depay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtph263depay_debug);
 #define GST_CAT_DEFAULT (rtph263depay_debug)
@@ -77,7 +79,7 @@ static GstStateChangeReturn gst_rtp_h263_depay_change_state (GstElement *
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 gboolean gst_rtp_h263_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 
@@ -110,7 +112,7 @@ gst_rtp_h263_depay_class_init (GstRtpH263DepayClass * klass)
       "Philippe Kalaf <philippe.kalaf@collabora.co.uk>, "
       "Edward Hervey <bilboed@bilboed.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_h263_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_h263_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_h263_depay_setcaps;
 }
 
@@ -204,7 +206,7 @@ gst_rtp_h263_depay_setcaps (GstRTPBaseDepayload * filter, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpH263Depay *rtph263depay;
   GstBuffer *outbuf;
@@ -214,12 +216,11 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   guint SBIT, EBIT;
   gboolean F, P, M;
   gboolean I;
-  GstRTPBuffer rtp = { NULL };
 
   rtph263depay = GST_RTP_H263_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     GST_LOG_OBJECT (depayload, "Discont buffer, flushing adapter");
     gst_adapter_clear (rtph263depay->adapter);
     rtph263depay->offset = 0;
@@ -227,12 +228,13 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     rtph263depay->start = FALSE;
   }
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  M = gst_rtp_buffer_get_marker (rtp);
 
-  M = gst_rtp_buffer_get_marker (&rtp);
+  if (payload_len < 1)
+    goto too_small;
 
   /* Let's see what mode we are using */
   F = (payload[0] & 0x80) == 0x80;
@@ -255,6 +257,8 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
      * |F|P|SBIT |EBIT | SRC |I|U|S|A|R      |DBQ| TRB |    TR         |
      * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      */
+    if (payload_len <= header_len)
+      goto too_small;
     I = (payload[1] & 0x10) == 0x10;
   } else {
     if (P == 0) {
@@ -271,6 +275,8 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
        * |I|U|S|A| HMV1        | VMV1        | HMV2        | VMV2        |
        * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        */
+      if (payload_len <= header_len)
+        goto too_small;
       I = (payload[4] & 0x80) == 0x80;
     } else {
       /* F == 1 and P == 1
@@ -288,6 +294,8 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
        * | RR                                  |DBQ| TRB |    TR         |
        * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        */
+      if (payload_len <= header_len)
+        goto too_small;
       I = (payload[4] & 0x80) == 0x80;
     }
   }
@@ -337,13 +345,13 @@ gst_rtp_h263_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     GstBuffer *tmp;
 
     /* Take the entire buffer */
-    tmp = gst_rtp_buffer_get_payload_subbuffer (&rtp, header_len, payload_len);
+    tmp = gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len);
     gst_adapter_push (rtph263depay->adapter, tmp);
   } else {
     GstBuffer *tmp;
 
     /* Take the entire buffer except for the last byte */
-    tmp = gst_rtp_buffer_get_payload_subbuffer (&rtp, header_len,
+    tmp = gst_rtp_buffer_get_payload_subbuffer (rtp, header_len,
         payload_len - 1);
     gst_adapter_push (rtph263depay->adapter, tmp);
 
@@ -378,6 +386,9 @@ skip:
 
       GST_DEBUG ("Pushing out a buffer of %d bytes", avail);
 
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263depay), outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
       gst_rtp_base_depayload_push (depayload, outbuf);
       rtph263depay->offset = 0;
       rtph263depay->leftover = 0;
@@ -386,9 +397,15 @@ skip:
       rtph263depay->start = TRUE;
     }
   }
-  gst_rtp_buffer_unmap (&rtp);
 
   return NULL;
+
+too_small:
+  {
+    GST_ELEMENT_WARNING (rtph263depay, STREAM, DECODE,
+        ("Packet payload was too small"), (NULL));
+    return NULL;
+  }
 }
 
 static GstStateChangeReturn
diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c
index 152093a35bf00560bb784881d36c6b41ff163ffc..f60721a557644dfef692475f7ed01fdee9752fe3 100644
--- a/gst/rtp/gstrtph263pay.c
+++ b/gst/rtp/gstrtph263pay.c
@@ -27,8 +27,10 @@
 #include <string.h>
 #include <math.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtph263pay.h"
+#include "gstrtputils.h"
 
 typedef enum
 {
@@ -440,8 +442,7 @@ gst_rtp_h263_pay_class_init (GstRtpH263PayClass * klass)
 static void
 gst_rtp_h263_pay_init (GstRtpH263Pay * rtph263pay)
 {
-  rtph263pay->adapter = gst_adapter_new ();
-
+  GST_RTP_BASE_PAYLOAD_PT (rtph263pay) = GST_RTP_PAYLOAD_H263;
   rtph263pay->prop_payload_mode = DEFAULT_MODE_A;
 }
 
@@ -452,8 +453,7 @@ gst_rtp_h263_pay_finalize (GObject * object)
 
   rtph263pay = GST_RTP_H263_PAY (object);
 
-  g_object_unref (rtph263pay->adapter);
-  rtph263pay->adapter = NULL;
+  gst_buffer_replace (&rtph263pay->current_buffer, NULL);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
@@ -479,8 +479,8 @@ gst_rtp_h263_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
     framesize = g_strdup_printf ("%d-%d", width, height);
   }
 
-  payload->pt = GST_RTP_PAYLOAD_H263;
-  gst_rtp_base_payload_set_options (payload, "video", TRUE, "H263", 90000);
+  gst_rtp_base_payload_set_options (payload, "video",
+      payload->pt != GST_RTP_PAYLOAD_H263, "H263", 90000);
 
   if (framesize != NULL) {
     res = gst_rtp_base_payload_set_outcaps (payload,
@@ -1268,14 +1268,12 @@ gst_rtp_h263_pay_push (GstRtpH263Pay * rtph263pay,
    * Splat the payload header values
    */
   guint8 *header;
-  guint8 *payload;
   GstFlowReturn ret;
   GstRTPBuffer rtp = { NULL };
 
   gst_rtp_buffer_map (package->outbuf, GST_MAP_WRITE, &rtp);
 
   header = gst_rtp_buffer_get_payload (&rtp);
-  payload = header + package->mode;
 
   switch (package->mode) {
     case GST_RTP_H263_PAYLOAD_HEADER_MODE_A:
@@ -1293,13 +1291,6 @@ gst_rtp_h263_pay_push (GstRtpH263Pay * rtph263pay,
       return GST_FLOW_ERROR;
   }
 
-
-  /*
-   * Copy the payload data in the buffer
-   */
-  GST_DEBUG ("Copying memory");
-  memcpy (payload, (guint8 *) package->payload_start, package->payload_len);
-
   /*
    * timestamp the buffer
    */
@@ -1311,6 +1302,17 @@ gst_rtp_h263_pay_push (GstRtpH263Pay * rtph263pay,
 
   gst_rtp_buffer_unmap (&rtp);
 
+  /*
+   * Copy the payload data in the buffer
+   */
+  GST_DEBUG ("Copying memory");
+  gst_buffer_copy_into (package->outbuf, rtph263pay->current_buffer,
+      GST_BUFFER_COPY_MEMORY, package->payload_start - rtph263pay->map.data,
+      package->payload_len);
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263pay), package->outbuf,
+      rtph263pay->current_buffer,
+      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
   ret =
       gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtph263pay),
       package->outbuf);
@@ -1343,8 +1345,7 @@ gst_rtp_h263_pay_A_fragment_push (GstRtpH263Pay * rtph263pay,
 
   pack->gobn = context->gobs[first]->gobn;
   pack->mode = GST_RTP_H263_PAYLOAD_HEADER_MODE_A;
-  pack->outbuf =
-      gst_rtp_buffer_new_allocate (pack->payload_len + pack->mode, 0, 0);
+  pack->outbuf = gst_rtp_buffer_new_allocate (pack->mode, 0, 0);
 
   GST_DEBUG ("Sending len:%d data to push function", pack->payload_len);
 
@@ -1400,8 +1401,7 @@ gst_rtp_h263_pay_B_fragment_push (GstRtpH263Pay * rtph263pay,
   }
 
   pack->payload_len = pack->payload_end - pack->payload_start + 1;
-  pack->outbuf =
-      gst_rtp_buffer_new_allocate (pack->payload_len + pack->mode, 0, 0);
+  pack->outbuf = gst_rtp_buffer_new_allocate (pack->mode, 0, 0);
 
   return gst_rtp_h263_pay_push (rtph263pay, context, pack);
 }
@@ -1441,7 +1441,6 @@ gst_rtp_h263_pay_mode_B_fragment (GstRtpH263Pay * rtph263pay,
           &boundry.end, &gob->end) != 0) {
     GST_ERROR
         ("The rest of the bits should be 0, exiting, because something bad happend");
-    gst_adapter_flush (rtph263pay->adapter, rtph263pay->available_data);
     goto decode_error;
   }
   //The first GOB of a frame "has no" actual header - PICTURE header is his header
@@ -1613,8 +1612,7 @@ gst_rtp_h263_send_entire_frame (GstRtpH263Pay * rtph263pay,
   GST_DEBUG ("Available data: %d", rtph263pay->available_data);
 
   pack->outbuf =
-      gst_rtp_buffer_new_allocate (pack->payload_len +
-      GST_RTP_H263_PAYLOAD_HEADER_MODE_A, 0, 0);
+      gst_rtp_buffer_new_allocate (GST_RTP_H263_PAYLOAD_HEADER_MODE_A, 0, 0);
 
   return gst_rtp_h263_pay_push (rtph263pay, context, pack);
 }
@@ -1639,16 +1637,15 @@ gst_rtp_h263_pay_flush (GstRtpH263Pay * rtph263pay)
       GST_RTP_H263_PAYLOAD_HEADER_MODE_C);
 
   GST_DEBUG ("MTU: %d", context->mtu);
-  rtph263pay->available_data = gst_adapter_available (rtph263pay->adapter);
+  rtph263pay->available_data = gst_buffer_get_size (rtph263pay->current_buffer);
   if (rtph263pay->available_data == 0) {
     ret = GST_FLOW_OK;
     goto end;
   }
 
   /* Get a pointer to all the data for the frame */
-  rtph263pay->data =
-      (guint8 *) gst_adapter_map (rtph263pay->adapter,
-      rtph263pay->available_data);
+  gst_buffer_map (rtph263pay->current_buffer, &rtph263pay->map, GST_MAP_READ);
+  rtph263pay->data = (guint8 *) rtph263pay->map.data;
 
   /* Picture header */
   context->piclayer = (GstRtpH263PayPic *) rtph263pay->data;
@@ -1804,8 +1801,8 @@ gst_rtp_h263_pay_flush (GstRtpH263Pay * rtph263pay)
 end:
   gst_rtp_h263_pay_context_destroy (context,
       context->piclayer->ptype_srcformat);
-  gst_adapter_unmap (rtph263pay->adapter);
-  gst_adapter_flush (rtph263pay->adapter, rtph263pay->available_data);
+  gst_buffer_unmap (rtph263pay->current_buffer, &rtph263pay->map);
+  gst_buffer_replace (&rtph263pay->current_buffer, NULL);
 
   return ret;
 }
@@ -1822,8 +1819,10 @@ gst_rtp_h263_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
 
   rtph263pay->first_ts = GST_BUFFER_PTS (buffer);
 
+  gst_buffer_replace (&rtph263pay->current_buffer, buffer);
+  gst_buffer_unref (buffer);
+
   /* we always encode and flush a full picture */
-  gst_adapter_push (rtph263pay->adapter, buffer);
   ret = gst_rtp_h263_pay_flush (rtph263pay);
   GST_DEBUG ("-------------------- END FRAME ---------------");
 
diff --git a/gst/rtp/gstrtph263pay.h b/gst/rtp/gstrtph263pay.h
index d41c3edafd1782a73a2e6ebdd4dffeb15dbf189c..2abfc871e9b1b37a8cf615a8591e666df6b5bf5a 100644
--- a/gst/rtp/gstrtph263pay.h
+++ b/gst/rtp/gstrtph263pay.h
@@ -24,7 +24,6 @@
 
 #include <gst/gst.h>
 #include <gst/rtp/gstrtpbasepayload.h>
-#include <gst/base/gstadapter.h>
 
 G_BEGIN_DECLS
 #define GST_TYPE_RTP_H263_PAY \
@@ -63,7 +62,9 @@ struct _GstRtpH263Pay
 {
   GstRTPBasePayload payload;
 
-  GstAdapter *adapter;
+  GstBuffer *current_buffer;
+  GstMapInfo map;
+
   GstClockTime first_ts;
   gboolean prop_payload_mode;
   guint8 *data;
diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c
index e788e2f6e851bb4de5d9f02b2573a2b123392e29..6aea8e1a174cc547480a4186282608c4966609e5 100644
--- a/gst/rtp/gstrtph263pdepay.c
+++ b/gst/rtp/gstrtph263pdepay.c
@@ -24,7 +24,12 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 #include "gstrtph263pdepay.h"
+#include "gstrtputils.h"
+
+GST_DEBUG_CATEGORY_STATIC (rtph263pdepay_debug);
+#define GST_CAT_DEFAULT (rtph263pdepay_debug)
 
 static GstStaticPadTemplate gst_rtp_h263p_depay_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
@@ -86,7 +91,7 @@ static GstStateChangeReturn gst_rtp_h263p_depay_change_state (GstElement *
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 gboolean gst_rtp_h263p_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 
@@ -115,8 +120,11 @@ gst_rtp_h263p_depay_class_init (GstRtpH263PDepayClass * klass)
       "Extracts H263/+/++ video from RTP packets (RFC 4629)",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_h263p_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_h263p_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_h263p_depay_setcaps;
+
+  GST_DEBUG_CATEGORY_INIT (rtph263pdepay_debug, "rtph263pdepay", 0,
+      "H263+ Video RTP Depayloader");
 }
 
 static void
@@ -224,7 +232,8 @@ no_caps:
 }
 
 static GstBuffer *
-gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstRtpH263PDepay *rtph263pdepay;
   GstBuffer *outbuf;
@@ -233,28 +242,25 @@ gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   gboolean P, V, M;
   guint header_len;
   guint8 PLEN, PEBIT;
-  GstRTPBuffer rtp = { NULL };
 
   rtph263pdepay = GST_RTP_H263P_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     GST_LOG_OBJECT (depayload, "DISCONT, flushing adapter");
     gst_adapter_clear (rtph263pdepay->adapter);
     rtph263pdepay->wait_start = TRUE;
   }
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
   header_len = 2;
 
   if (payload_len < header_len)
     goto too_small;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
-  M = gst_rtp_buffer_get_marker (&rtp);
+  M = gst_rtp_buffer_get_marker (rtp);
 
   /*  0                   1
    *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
@@ -305,39 +311,37 @@ gst_rtp_h263p_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     /* frame is completed: append to previous, push it out */
     guint len, padlen;
     guint avail;
-    GstMapInfo map;
+    GstBuffer *padbuf;
 
     GST_LOG_OBJECT (depayload, "Frame complete");
 
+    outbuf =
+        gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len);
+    gst_adapter_push (rtph263pdepay->adapter, outbuf);
+    outbuf = NULL;
+
     avail = gst_adapter_available (rtph263pdepay->adapter);
     len = avail + payload_len;
     padlen = (len % 4) + 4;
 
-    outbuf = gst_buffer_new_and_alloc (len + padlen);
-
-    gst_buffer_map (outbuf, &map, GST_MAP_WRITE);
-    memset (map.data + len, 0, padlen);
-
-    /* prepend previous data */
-    if (avail > 0) {
-      gst_adapter_copy (rtph263pdepay->adapter, map.data, 0, avail);
-      gst_adapter_flush (rtph263pdepay->adapter, avail);
+    outbuf = gst_adapter_take_buffer (rtph263pdepay->adapter, avail);
+    if (padlen) {
+      padbuf = gst_buffer_new_and_alloc (padlen);
+      gst_buffer_memset (padbuf, 0, 0, padlen);
+      outbuf = gst_buffer_append (outbuf, padbuf);
     }
-    memcpy (map.data + avail, payload, payload_len);
-    gst_buffer_unmap (outbuf, &map);
-    gst_rtp_buffer_unmap (&rtp);
 
-    return outbuf;
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph263pdepay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
 
+    return outbuf;
   } else {
     /* frame not completed: store in adapter */
-    outbuf = gst_buffer_new_and_alloc (payload_len);
-
     GST_LOG_OBJECT (depayload, "Frame incomplete, storing %d", payload_len);
-    gst_buffer_fill (outbuf, 0, payload, payload_len);
 
+    outbuf =
+        gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len);
     gst_adapter_push (rtph263pdepay->adapter, outbuf);
-    gst_rtp_buffer_unmap (&rtp);
   }
   return NULL;
 
@@ -345,13 +349,11 @@ too_small:
   {
     GST_ELEMENT_WARNING (rtph263pdepay, STREAM, DECODE,
         ("Packet payload was too small"), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 waiting_start:
   {
     GST_DEBUG_OBJECT (rtph263pdepay, "waiting for picture start");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c
index b342c9ac6fda057daf40d32f85f41bc573bc89fa..9c09ad0b657a59bc326386575a2fface967b3aaa 100644
--- a/gst/rtp/gstrtph263ppay.c
+++ b/gst/rtp/gstrtph263ppay.c
@@ -26,8 +26,10 @@
 #include <stdio.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtph263ppay.h"
+#include "gstrtputils.h"
 
 #define DEFAULT_FRAGMENTATION_MODE   GST_FRAGMENTATION_MODE_NORMAL
 
@@ -643,9 +645,10 @@ static GstFlowReturn
 gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
 {
   guint avail;
-  GstBuffer *outbuf;
+  GstBufferList *list = NULL;
+  GstBuffer *outbuf = NULL;
   GstFlowReturn ret;
-  gboolean fragmented;
+  gboolean fragmented = FALSE;
 
   avail = gst_adapter_available (rtph263ppay->adapter);
   if (avail == 0)
@@ -666,45 +669,44 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
   while (avail > 0) {
     guint towrite;
     guint8 *payload;
-    guint payload_len;
     gint header_len;
     guint next_gop = 0;
     gboolean found_gob = FALSE;
     GstRTPBuffer rtp = { NULL };
+    GstBuffer *payload_buf;
 
     if (rtph263ppay->fragmentation_mode == GST_FRAGMENTATION_MODE_SYNC) {
       /* start after 1st gop possible */
-      guint parsed_len = 3;
-      const guint8 *parse_data = NULL;
-
-      parse_data = gst_adapter_map (rtph263ppay->adapter, avail);
 
       /* Check if we have a gob or eos , eossbs */
       /* FIXME EOS and EOSSBS packets should never contain any gobs and vice-versa */
-      if (avail >= 3 && *parse_data == 0 && *(parse_data + 1) == 0
-          && *(parse_data + 2) >= 0x80) {
+      next_gop =
+          gst_adapter_masked_scan_uint32 (rtph263ppay->adapter, 0xffff8000,
+          0x00008000, 0, avail);
+      if (next_gop == 0) {
         GST_DEBUG_OBJECT (rtph263ppay, " Found GOB header");
         found_gob = TRUE;
       }
+
       /* Find next and cut the packet accordingly */
       /* TODO we should get as many gobs as possible until MTU is reached, this
        * code seems to just get one GOB per packet */
-      while (parsed_len + 2 < avail) {
-        if (parse_data[parsed_len] == 0 && parse_data[parsed_len + 1] == 0
-            && parse_data[parsed_len + 2] >= 0x80) {
-          next_gop = parsed_len;
-          GST_DEBUG_OBJECT (rtph263ppay, " Next GOB Detected at :  %d",
-              next_gop);
-          break;
-        }
-        parsed_len++;
-      }
-      gst_adapter_unmap (rtph263ppay->adapter);
+      if (next_gop == 0 && avail > 3)
+        next_gop =
+            gst_adapter_masked_scan_uint32 (rtph263ppay->adapter, 0xffff8000,
+            0x00008000, 3, avail - 3);
+      GST_DEBUG_OBJECT (rtph263ppay, " Next GOB Detected at :  %d", next_gop);
+      if (next_gop == -1)
+        next_gop = 0;
     }
 
     /* for picture start frames (non-fragmented), we need to remove the first
      * two 0x00 bytes and set P=1 */
-    header_len = (fragmented && !found_gob) ? 2 : 0;
+    if (!fragmented || found_gob) {
+      gst_adapter_flush (rtph263ppay->adapter, 2);
+      avail -= 2;
+    }
+    header_len = 2;
 
     towrite = MIN (avail, gst_rtp_buffer_calc_payload_len
         (GST_RTP_BASE_PAYLOAD_MTU (rtph263ppay) - header_len, 0, 0));
@@ -712,9 +714,7 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
     if (next_gop > 0)
       towrite = MIN (next_gop, towrite);
 
-    payload_len = header_len + towrite;
-
-    outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+    outbuf = gst_rtp_buffer_new_allocate (header_len, 0, 0);
 
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
     /* last fragment gets the marker bit set */
@@ -722,8 +722,6 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
 
     payload = gst_rtp_buffer_get_payload (&rtp);
 
-    gst_adapter_copy (rtph263ppay->adapter, &payload[header_len], 0, towrite);
-
     /*  0                   1
      *  0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
      * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@@ -738,13 +736,37 @@ gst_rtp_h263p_pay_flush (GstRtpH263PPay * rtph263ppay)
     GST_BUFFER_DURATION (outbuf) = rtph263ppay->first_duration;
     gst_rtp_buffer_unmap (&rtp);
 
-    gst_adapter_flush (rtph263ppay->adapter, towrite);
+    payload_buf = gst_adapter_take_buffer_fast (rtph263ppay->adapter, towrite);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph263ppay), outbuf, payload_buf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    outbuf = gst_buffer_append (outbuf, payload_buf);
+    avail -= towrite;
 
+    /* If more data is available and this is our first iteration,
+     * we create a buffer list and remember that we're fragmented.
+     *
+     * If we're fragmented already, add buffers to the previously
+     * created buffer list.
+     *
+     * Otherwise fragmented will be FALSE and we just push the single output
+     * buffer, and no list is allocated.
+     */
+    if (avail && !fragmented) {
+      fragmented = TRUE;
+      list = gst_buffer_list_new ();
+      gst_buffer_list_add (list, outbuf);
+    } else if (fragmented) {
+      gst_buffer_list_add (list, outbuf);
+    }
+  }
+
+  if (fragmented) {
+    ret =
+        gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtph263ppay),
+        list);
+  } else {
     ret =
         gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtph263ppay), outbuf);
-
-    avail -= towrite;
-    fragmented = TRUE;
   }
 
   return ret;
diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c
index b45a7206a4a02880990e39f16fe089474ab6c9a1..cd05e62051867079b169ea80ba73b3a87f884f48 100644
--- a/gst/rtp/gstrtph264depay.c
+++ b/gst/rtp/gstrtph264depay.c
@@ -26,7 +26,10 @@
 
 #include <gst/base/gstbitreader.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/pbutils/pbutils.h>
+#include <gst/video/video.h>
 #include "gstrtph264depay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtph264depay_debug);
 #define GST_CAT_DEFAULT (rtph264depay_debug)
@@ -85,7 +88,7 @@ static GstStateChangeReturn gst_rtp_h264_depay_change_state (GstElement *
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_h264_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 static gboolean gst_rtp_h264_depay_handle_event (GstRTPBaseDepayload * depay,
@@ -115,7 +118,7 @@ gst_rtp_h264_depay_class_init (GstRtpH264DepayClass * klass)
       "Wim Taymans <wim.taymans@gmail.com>");
   gstelement_class->change_state = gst_rtp_h264_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_h264_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_h264_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_h264_depay_setcaps;
   gstrtpbasedepayload_class->handle_event = gst_rtp_h264_depay_handle_event;
 }
@@ -289,8 +292,6 @@ gst_rtp_h264_set_src_caps (GstRtpH264Depay * rtph264depay)
 {
   gboolean res;
   GstCaps *srccaps;
-  guchar level = 0;
-  guchar profile_compat = G_MAXUINT8;
 
   if (!rtph264depay->byte_stream &&
       (!rtph264depay->new_codec_data ||
@@ -310,6 +311,8 @@ gst_rtp_h264_set_src_caps (GstRtpH264Depay * rtph264depay)
     guint len;
     guint new_size;
     guint i;
+    guchar level = 0;
+    guchar profile_compat = G_MAXUINT8;
 
     /* start with 7 bytes header */
     len = 7;
@@ -386,16 +389,131 @@ gst_rtp_h264_set_src_caps (GstRtpH264Depay * rtph264depay)
     gst_buffer_unmap (codec_data, &map);
     gst_buffer_set_size (codec_data, new_size);
 
-
     gst_caps_set_simple (srccaps,
         "codec_data", GST_TYPE_BUFFER, codec_data, NULL);
     gst_buffer_unref (codec_data);
   }
 
-  res = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
-      srccaps);
+  /* Set profile a level from SPS */
+  {
+    gint i;
+    GstBuffer *max_level_sps = NULL;
+    gint level = 0;
+    GstMapInfo nalmap;
+
+    /* Get the SPS with the highest level. We assume
+     * all SPS have the same profile */
+    for (i = 0; i < rtph264depay->sps->len; i++) {
+      gst_buffer_map (g_ptr_array_index (rtph264depay->sps, i), &nalmap,
+          GST_MAP_READ);
+      if (level == 0 || level < nalmap.data[3]) {
+        max_level_sps = g_ptr_array_index (rtph264depay->sps, i);
+        level = nalmap.data[3];
+      }
+      gst_buffer_unmap (g_ptr_array_index (rtph264depay->sps, i), &nalmap);
+    }
+
+    if (max_level_sps) {
+      gst_buffer_map (max_level_sps, &nalmap, GST_MAP_READ);
+      gst_codec_utils_h264_caps_set_level_and_profile (srccaps, nalmap.data + 1,
+          nalmap.size - 1);
+      gst_buffer_unmap (max_level_sps, &nalmap);
+    }
+  }
+
+
+  if (gst_pad_has_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay))) {
+    GstCaps *old_caps =
+        gst_pad_get_current_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay));
+
+    /* Only update the caps if they are not equal. For
+     * AVC we don't update caps if only the codec_data
+     * changes. This is the same behaviour as in h264parse
+     */
+    if (rtph264depay->byte_stream) {
+      if (!gst_caps_is_equal (srccaps, old_caps))
+        res =
+            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
+            srccaps);
+      else
+        res = TRUE;
+    } else {
+      GstCaps *tmp_caps = gst_caps_copy (srccaps);
+      GstStructure *old_s, *tmp_s;
+
+      old_s = gst_caps_get_structure (old_caps, 0);
+      tmp_s = gst_caps_get_structure (tmp_caps, 0);
+      if (gst_structure_has_field (old_s, "codec_data"))
+        gst_structure_set_value (tmp_s, "codec_data",
+            gst_structure_get_value (old_s, "codec_data"));
+
+      if (!gst_caps_is_equal (old_caps, tmp_caps))
+        res =
+            gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
+            srccaps);
+      else
+        res = TRUE;
+
+      gst_caps_unref (tmp_caps);
+    }
+  } else {
+    res =
+        gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (rtph264depay),
+        srccaps);
+  }
+
   gst_caps_unref (srccaps);
 
+  /* Insert SPS and PPS into the stream on next opportunity */
+  if (rtph264depay->sps->len > 0 || rtph264depay->pps->len > 0) {
+    gint i;
+    GstBuffer *codec_data;
+    GstMapInfo map;
+    guint8 *data;
+    guint len = 0;
+
+    for (i = 0; i < rtph264depay->sps->len; i++) {
+      len += 4 + gst_buffer_get_size (g_ptr_array_index (rtph264depay->sps, i));
+    }
+
+    for (i = 0; i < rtph264depay->pps->len; i++) {
+      len += 4 + gst_buffer_get_size (g_ptr_array_index (rtph264depay->pps, i));
+    }
+
+    codec_data = gst_buffer_new_and_alloc (len);
+    gst_buffer_map (codec_data, &map, GST_MAP_WRITE);
+    data = map.data;
+
+    for (i = 0; i < rtph264depay->sps->len; i++) {
+      GstBuffer *sps_buf = g_ptr_array_index (rtph264depay->sps, i);
+      guint sps_size = gst_buffer_get_size (sps_buf);
+
+      if (rtph264depay->byte_stream)
+        memcpy (data, sync_bytes, sizeof (sync_bytes));
+      else
+        GST_WRITE_UINT32_BE (data, sps_size);
+      gst_buffer_extract (sps_buf, 0, data + 4, -1);
+      data += 4 + sps_size;
+    }
+
+    for (i = 0; i < rtph264depay->pps->len; i++) {
+      GstBuffer *pps_buf = g_ptr_array_index (rtph264depay->pps, i);
+      guint pps_size = gst_buffer_get_size (pps_buf);
+
+      if (rtph264depay->byte_stream)
+        memcpy (data, sync_bytes, sizeof (sync_bytes));
+      else
+        GST_WRITE_UINT32_BE (data, pps_size);
+      gst_buffer_extract (pps_buf, 0, data + 4, -1);
+      data += 4 + pps_size;
+    }
+
+    gst_buffer_unmap (codec_data, &map);
+    if (rtph264depay->codec_data)
+      gst_buffer_unref (rtph264depay->codec_data);
+    rtph264depay->codec_data = codec_data;
+  }
+
   if (res)
     rtph264depay->new_codec_data = FALSE;
 
@@ -469,7 +587,7 @@ gst_rtp_h264_add_sps_pps (GstElement * rtph264, GPtrArray * sps_array,
       gst_buffer_map (pps, &ppsmap, GST_MAP_READ);
       parse_pps (&ppsmap, &tmp_sps_id, &tmp_pps_id);
 
-      if (sps_id == tmp_sps_id && pps_id == tmp_pps_id) {
+      if (pps_id == tmp_pps_id) {
         if (map.size == ppsmap.size &&
             memcmp (map.data, ppsmap.data, ppsmap.size) == 0) {
           GST_LOG_OBJECT (rtph264, "Unchanged PPS %u:%u, not updating", sps_id,
@@ -764,12 +882,18 @@ gst_rtp_h264_depay_handle_nal (GstRtpH264Depay * rtph264depay, GstBuffer * nal,
     /* prepend codec_data */
     if (rtph264depay->codec_data) {
       GST_DEBUG_OBJECT (depayload, "prepending codec_data");
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay),
+          rtph264depay->codec_data, outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
       outbuf = gst_buffer_append (rtph264depay->codec_data, outbuf);
       rtph264depay->codec_data = NULL;
       out_keyframe = TRUE;
     }
     outbuf = gst_buffer_make_writable (outbuf);
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtph264depay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
     GST_BUFFER_PTS (outbuf) = out_timestamp;
 
     if (out_keyframe)
@@ -828,17 +952,17 @@ gst_rtp_h264_push_fragmentation_unit (GstRtpH264Depay * rtph264depay,
 }
 
 static GstBuffer *
-gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpH264Depay *rtph264depay;
+  GstBuffer *buf;
   GstBuffer *outbuf = NULL;
   guint8 nal_unit_type;
-  GstRTPBuffer rtp = { NULL };
 
   rtph264depay = GST_RTP_H264_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     gst_adapter_clear (rtph264depay->adapter);
     rtph264depay->wait_start = TRUE;
     rtph264depay->current_fu_type = 0;
@@ -854,13 +978,12 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     GstClockTime timestamp;
     gboolean marker;
 
-    timestamp = GST_BUFFER_PTS (buf);
-
-    gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+    timestamp = GST_BUFFER_PTS (rtp->buffer);
 
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
-    marker = gst_rtp_buffer_get_marker (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
+    buf = gst_rtp_buffer_get_payload_buffer (rtp);
+    marker = gst_rtp_buffer_get_marker (rtp);
 
     GST_DEBUG_OBJECT (rtph264depay, "receiving %d bytes", payload_len);
 
@@ -944,6 +1067,9 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
           memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
           gst_buffer_unmap (outbuf, &map);
 
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
           outbuf =
               gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
               marker);
@@ -1027,6 +1153,9 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
           map.data[sizeof (sync_bytes)] = nal_header;
           gst_buffer_unmap (outbuf, &map);
 
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
           GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize);
 
           /* and assemble in the adapter */
@@ -1040,6 +1169,9 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
           outbuf = gst_buffer_new_and_alloc (outsize);
           gst_buffer_fill (outbuf, 0, payload, outsize);
 
+          gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, buf,
+              g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
           GST_DEBUG_OBJECT (rtph264depay, "queueing %d bytes", outsize);
 
           /* and assemble in the adapter */
@@ -1075,41 +1207,45 @@ gst_rtp_h264_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         memcpy (map.data + sizeof (sync_bytes), payload, nalu_size);
         gst_buffer_unmap (outbuf, &map);
 
+        gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264depay), outbuf, buf,
+            g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
         outbuf = gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
             marker);
         break;
       }
     }
-    gst_rtp_buffer_unmap (&rtp);
   }
 
+  gst_buffer_unref (buf);
+
   return outbuf;
 
   /* ERRORS */
 empty_packet:
   {
     GST_DEBUG_OBJECT (rtph264depay, "empty packet");
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 undefined_type:
   {
     GST_ELEMENT_WARNING (rtph264depay, STREAM, DECODE,
         (NULL), ("Undefined packet type"));
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 waiting_start:
   {
     GST_DEBUG_OBJECT (rtph264depay, "waiting for start");
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 not_implemented:
   {
     GST_ELEMENT_ERROR (rtph264depay, STREAM, FORMAT,
         (NULL), ("NAL unit type %d not supported yet", nal_unit_type));
-    gst_rtp_buffer_unmap (&rtp);
+    gst_buffer_unref (buf);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c
index 665814acb4b105695be8cc877e8baa594fda2fb7..ea1aa50c2871c3f21ba0715cb6ee91c6cf9351f2 100644
--- a/gst/rtp/gstrtph264pay.c
+++ b/gst/rtp/gstrtph264pay.c
@@ -26,11 +26,13 @@
 
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/pbutils/pbutils.h>
+#include <gst/video/video.h>
 
 /* Included to not duplicate gst_rtp_h264_add_sps_pps () */
 #include "gstrtph264depay.h"
 
 #include "gstrtph264pay.h"
+#include "gstrtputils.h"
 
 
 #define IDR_TYPE_ID  5
@@ -736,7 +738,7 @@ gst_rtp_h264_pay_send_sps_pps (GstRTPBasePayload * basepayload,
     /* Not critical here; but throw a warning */
     if (ret != GST_FLOW_OK) {
       sent_all_sps_pps = FALSE;
-      GST_WARNING ("Problem pushing SPS");
+      GST_WARNING_OBJECT (basepayload, "Problem pushing SPS");
     }
   }
   for (i = 0; i < rtph264pay->pps->len; i++) {
@@ -750,7 +752,7 @@ gst_rtp_h264_pay_send_sps_pps (GstRTPBasePayload * basepayload,
     /* Not critical here; but throw a warning */
     if (ret != GST_FLOW_OK) {
       sent_all_sps_pps = FALSE;
-      GST_WARNING ("Problem pushing PPS");
+      GST_WARNING_OBJECT (basepayload, "Problem pushing PPS");
     }
   }
 
@@ -877,6 +879,8 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload,
     gst_rtp_buffer_unmap (&rtp);
 
     /* insert payload memory block */
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     /* push the buffer to the next element */
@@ -936,9 +940,10 @@ gst_rtp_h264_pay_payload_nal (GstRTPBasePayload * basepayload,
       gst_rtp_buffer_unmap (&rtp);
 
       /* insert payload memory block */
-      gst_buffer_append (outbuf,
-          gst_buffer_copy_region (paybuf, GST_BUFFER_COPY_MEMORY, pos,
-              limitedSize));
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtph264pay), outbuf, paybuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+      gst_buffer_copy_into (outbuf, paybuf, GST_BUFFER_COPY_MEMORY, pos,
+          limitedSize);
 
       if (!delta_unit)
         /* Only the first packet sent should not have the flag */
@@ -1088,7 +1093,7 @@ gst_rtp_h264_pay_handle_buffer (GstRTPBasePayload * basepayload,
         end_of_au = TRUE;
       }
 
-      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY, offset,
+      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset,
           nal_len);
       ret =
           gst_rtp_h264_pay_payload_nal (basepayload, paybuf, dts, pts,
diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c
index 5c7dc2547529aa6043c05a86f47efd161c9920bd..9af6d2942eea6b8dcde6d10de36f8383314a74bd 100644
--- a/gst/rtp/gstrtpilbcdepay.c
+++ b/gst/rtp/gstrtpilbcdepay.c
@@ -24,7 +24,9 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpilbcdepay.h"
+#include "gstrtputils.h"
 
 /* RtpiLBCDepay signals and args */
 enum
@@ -48,9 +50,8 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "clock-rate = (int) 8000, "
-        "encoding-name = (string) \"ILBC\"")
-     /* "mode = (string) { \"20\", \"30\" }" */
+        "clock-rate = (int) 8000, " "encoding-name = (string) \"ILBC\"")
+    /* "mode = (string) { \"20\", \"30\" }" */
     );
 
 static GstStaticPadTemplate gst_rtp_ilbc_depay_src_template =
@@ -66,7 +67,7 @@ static void gst_ilbc_depay_get_property (GObject * object,
     guint prop_id, GValue * value, GParamSpec * pspec);
 
 static GstBuffer *gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_ilbc_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -121,7 +122,7 @@ gst_rtp_ilbc_depay_class_init (GstRTPiLBCDepayClass * klass)
       "Extracts iLBC audio from RTP packets (RFC 3952)",
       "Philippe Kalaf <philippe.kalaf@collabora.co.uk>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_ilbc_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_ilbc_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_ilbc_depay_setcaps;
 }
 
@@ -171,29 +172,29 @@ gst_rtp_ilbc_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_ilbc_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
-
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (marker && outbuf) {
     /* mark start of talkspurt with RESYNC */
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
   }
 
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
+
   return outbuf;
 }
 
diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c
index 9829258fcb0d7dbb9ed913647fcee4a66fb3bc2b..04e69b726dacb8f119285a5810130ed50fc6a54b 100644
--- a/gst/rtp/gstrtpj2kdepay.c
+++ b/gst/rtp/gstrtpj2kdepay.c
@@ -22,9 +22,11 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <string.h>
 #include "gstrtpj2kdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpj2kdepay_debug);
 #define GST_CAT_DEFAULT (rtpj2kdepay_debug)
@@ -78,7 +80,7 @@ gst_rtp_j2k_depay_change_state (GstElement * element,
 static gboolean gst_rtp_j2k_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_j2k_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_j2k_depay_class_init (GstRtpJ2KDepayClass * klass)
@@ -109,7 +111,7 @@ gst_rtp_j2k_depay_class_init (GstRtpJ2KDepayClass * klass)
   gstelement_class->change_state = gst_rtp_j2k_depay_change_state;
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_j2k_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_j2k_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_j2k_depay_process;
 
   GST_DEBUG_CATEGORY_INIT (rtpj2kdepay_debug, "rtpj2kdepay", 0,
       "J2K Video RTP Depayloader");
@@ -400,8 +402,12 @@ gst_rtp_j2k_depay_flush_frame (GstRTPBaseDepayload * depayload)
 
     buflist = gst_buffer_list_new ();
 
-    for (walk = list; walk; walk = g_list_next (walk))
+    for (walk = list; walk; walk = g_list_next (walk)) {
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload),
+          GST_BUFFER_CAST (walk->data),
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
       gst_buffer_list_add (buflist, GST_BUFFER_CAST (walk->data));
+    }
 
     g_list_free (list);
 
@@ -426,27 +432,24 @@ done:
 }
 
 static GstBuffer *
-gst_rtp_j2k_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_j2k_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpJ2KDepay *rtpj2kdepay;
   guint8 *payload;
   guint MHF, mh_id, frag_offset, tile, payload_len, j2klen;
   gint gap;
   guint32 rtptime;
-  GstRTPBuffer rtp = { NULL };
 
   rtpj2kdepay = GST_RTP_J2K_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   /* we need at least a header */
   if (payload_len < 8)
     goto empty_packet;
 
-  rtptime = gst_rtp_buffer_get_timestamp (&rtp);
+  rtptime = gst_rtp_buffer_get_timestamp (rtp);
 
   /* new timestamp marks new frame */
   if (rtpj2kdepay->last_rtptime != rtptime) {
@@ -543,7 +546,7 @@ gst_rtp_j2k_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
     /* and push in pu adapter */
     GST_DEBUG_OBJECT (rtpj2kdepay, "push pu of size %u in adapter", j2klen);
-    pu_frag = gst_rtp_buffer_get_payload_subbuffer (&rtp, 8, -1);
+    pu_frag = gst_rtp_buffer_get_payload_subbuffer (rtp, 8, -1);
     gst_adapter_push (rtpj2kdepay->pu_adapter, pu_frag);
 
     if (MHF & 2) {
@@ -556,12 +559,11 @@ gst_rtp_j2k_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   }
 
   /* marker bit finishes the frame */
-  if (gst_rtp_buffer_get_marker (&rtp)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     GST_DEBUG_OBJECT (rtpj2kdepay, "marker set, last buffer");
     /* then flush frame */
     gst_rtp_j2k_depay_flush_frame (depayload);
   }
-  gst_rtp_buffer_unmap (&rtp);
 
   return NULL;
 
@@ -570,7 +572,6 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpj2kdepay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 wrong_mh_id:
@@ -579,7 +580,6 @@ wrong_mh_id:
         ("Invalid mh_id %u, expected %u", mh_id, rtpj2kdepay->last_mh_id),
         (NULL));
     gst_rtp_j2k_depay_clear_pu (rtpj2kdepay);
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c
index 41b37dd9f2d28b5cbe6aa8d352ec22862f122144..0088ffd876922bbd83a1b3d17e659b7439aab0a4 100644
--- a/gst/rtp/gstrtpj2kpay.c
+++ b/gst/rtp/gstrtpj2kpay.c
@@ -34,8 +34,10 @@
 
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtpj2kpay.h"
+#include "gstrtputils.h"
 
 static GstStaticPadTemplate gst_rtp_j2k_pay_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -481,9 +483,10 @@ gst_rtp_j2k_pay_handle_buffer (GstRTPBasePayload * basepayload,
       gst_rtp_buffer_unmap (&rtp);
 
       /* make subbuffer of j2k data */
-      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY,
+      paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL,
           offset, data_size);
-
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, paybuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
       outbuf = gst_buffer_append (outbuf, paybuf);
 
       gst_buffer_list_add (list, outbuf);
diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c
index 57055e863f3448d47a6b2256c7050ae6d78bc56b..c804aea9d594852231c1f5b235178619964cac06 100644
--- a/gst/rtp/gstrtpjpegdepay.c
+++ b/gst/rtp/gstrtpjpegdepay.c
@@ -22,12 +22,14 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <math.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include "gstrtpjpegdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpjpegdepay_debug);
 #define GST_CAT_DEFAULT (rtpjpegdepay_debug)
@@ -77,7 +79,7 @@ static GstStateChangeReturn gst_rtp_jpeg_depay_change_state (GstElement *
 static gboolean gst_rtp_jpeg_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_jpeg_depay_class_init (GstRtpJPEGDepayClass * klass)
@@ -105,7 +107,7 @@ gst_rtp_jpeg_depay_class_init (GstRtpJPEGDepayClass * klass)
   gstelement_class->change_state = gst_rtp_jpeg_depay_change_state;
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_jpeg_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_jpeg_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_jpeg_depay_process;
 
   GST_DEBUG_CATEGORY_INIT (rtpjpegdepay_debug, "rtpjpegdepay", 0,
       "JPEG Video RTP Depayloader");
@@ -487,7 +489,7 @@ gst_rtp_jpeg_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpJPEGDepay *rtpjpegdepay;
   GstBuffer *outbuf;
@@ -498,23 +500,21 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   guint type, width, height;
   guint16 dri, precision, length;
   guint8 *qtable;
-  GstRTPBuffer rtp = { NULL };
 
   rtpjpegdepay = GST_RTP_JPEG_DEPAY (depayload);
 
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     GST_DEBUG_OBJECT (depayload, "DISCONT, reset adapter");
     gst_adapter_clear (rtpjpegdepay->adapter);
     rtpjpegdepay->discont = TRUE;
   }
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len < 8)
     goto empty_packet;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
   header_len = 0;
 
   /*  0                   1                   2                   3
@@ -674,11 +674,11 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   /* take JPEG data, push in the adapter */
   GST_DEBUG_OBJECT (rtpjpegdepay, "pushing data at offset %d", header_len);
-  outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, header_len, -1);
+  outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, -1);
   gst_adapter_push (rtpjpegdepay->adapter, outbuf);
   outbuf = NULL;
 
-  if (gst_rtp_buffer_get_marker (&rtp)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     guint avail;
     guint8 end[2];
     GstMapInfo map;
@@ -714,11 +714,12 @@ gst_rtp_jpeg_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       rtpjpegdepay->discont = FALSE;
     }
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpjpegdepay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
     GST_DEBUG_OBJECT (rtpjpegdepay, "returning %u bytes", avail);
   }
 
-  gst_rtp_buffer_unmap (&rtp);
-
   return outbuf;
 
   /* ERRORS */
@@ -726,20 +727,17 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpjpegdepay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_dimension:
   {
     GST_ELEMENT_WARNING (rtpjpegdepay, STREAM, FORMAT,
         ("Invalid Dimension %dx%d.", width, height), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 no_qtable:
   {
     GST_WARNING_OBJECT (rtpjpegdepay, "no qtable");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_packet:
@@ -747,7 +745,6 @@ invalid_packet:
     GST_WARNING_OBJECT (rtpjpegdepay, "invalid packet");
     gst_adapter_flush (rtpjpegdepay->adapter,
         gst_adapter_available (rtpjpegdepay->adapter));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c
index bdca220353b062a2397c74de62d909c5f7234704..65fcb172ff8f4fd56fd5bd7b86929fd02f22a3cb 100644
--- a/gst/rtp/gstrtpjpegpay.c
+++ b/gst/rtp/gstrtpjpegpay.c
@@ -38,8 +38,10 @@
 
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtpjpegpay.h"
+#include "gstrtputils.h"
 
 static GstStaticPadTemplate gst_rtp_jpeg_pay_sink_template =
     GST_STATIC_PAD_TEMPLATE ("sink",
@@ -49,12 +51,18 @@ static GstStaticPadTemplate gst_rtp_jpeg_pay_sink_template =
     );
 
 static GstStaticPadTemplate gst_rtp_jpeg_pay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
+    GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "  media = (string) \"video\", "
-        "  payload = (int) 26 ,        "
+        "  payload = (int) " GST_RTP_PAYLOAD_JPEG_STRING ", "
+        "  clock-rate = (int) 90000,   "
+        "  encoding-name = (string) \"JPEG\", "
+        "  width = (int) [ 1, 65536 ], " "  height = (int) [ 1, 65536 ]; "
+        " application/x-rtp, "
+        "  media = (string) \"video\", "
+        "  payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "  clock-rate = (int) 90000,   "
         "  encoding-name = (string) \"JPEG\", "
         "  width = (int) [ 1, 65536 ], " "  height = (int) [ 1, 65536 ]")
@@ -283,6 +291,8 @@ gst_rtp_jpeg_pay_init (GstRtpJPEGPay * pay)
   pay->type = DEFAULT_JPEG_TYPE;
   pay->width = -1;
   pay->height = -1;
+
+  GST_RTP_BASE_PAYLOAD_PT (pay) = GST_RTP_PAYLOAD_JPEG;
 }
 
 static gboolean
@@ -321,7 +331,8 @@ gst_rtp_jpeg_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
     pay->width = GST_ROUND_UP_8 (width) / 8;
   }
 
-  gst_rtp_base_payload_set_options (basepayload, "video", TRUE, "JPEG", 90000);
+  gst_rtp_base_payload_set_options (basepayload, "video",
+      basepayload->pt != GST_RTP_PAYLOAD_JPEG, "JPEG", 90000);
 
   if (num > 0) {
     gdouble framerate;
@@ -882,10 +893,12 @@ gst_rtp_jpeg_pay_handle_buffer (GstRTPBasePayload * basepayload,
     gst_rtp_buffer_unmap (&rtp);
 
     /* create a new buf to hold the payload */
-    paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY,
+    paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL,
         jpeg_header_size + offset, payload_size);
 
     /* join memory parts */
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = timestamp;
diff --git a/gst/rtp/gstrtpklvdepay.c b/gst/rtp/gstrtpklvdepay.c
new file mode 100644
index 0000000000000000000000000000000000000000..583356bd6f7cf8415ca82cdac74daa4617b3a21c
--- /dev/null
+++ b/gst/rtp/gstrtpklvdepay.c
@@ -0,0 +1,377 @@
+/* GStreamer RTP KLV Depayloader
+ * Copyright (C) 2014-2015 Tim-Philipp Müller <tim@centricular.com>>
+ * Copyright (C) 2014-2015 Centricular Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpklvdepay
+ * @see_also: rtpklvpay
+ *
+ * Extract KLV metadata from RTP packets according to RFC 6597.
+ * For detailed information see: http://tools.ietf.org/html/rfc6597
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 udpsrc caps='application/x-rtp, media=(string)application, clock-rate=(int)90000, encoding-name=(string)SMPTE336M' ! rtpklvdepay ! fakesink dump=true
+ * ]| This example pipeline will depayload an RTP KLV stream and display
+ * a hexdump of the KLV data on stdout.
+ * </refsect2>
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstrtpklvdepay.h"
+
+#include <string.h>
+
+GST_DEBUG_CATEGORY_STATIC (klvdepay_debug);
+#define GST_CAT_DEFAULT (klvdepay_debug)
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("meta/x-klv, parsed = (bool) true"));
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) application, clock-rate = (int) [1, MAX], "
+        "encoding-name = (string) SMPTE336M")
+    );
+
+#define gst_rtp_klv_depay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpKlvDepay, gst_rtp_klv_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
+
+static void gst_rtp_klv_depay_finalize (GObject * object);
+
+static GstStateChangeReturn gst_rtp_klv_depay_change_state (GstElement *
+    element, GstStateChange transition);
+static gboolean gst_rtp_klv_depay_setcaps (GstRTPBaseDepayload * depayload,
+    GstCaps * caps);
+static GstBuffer *gst_rtp_klv_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp);
+
+static void gst_rtp_klv_depay_reset (GstRtpKlvDepay * klvdepay);
+
+static void
+gst_rtp_klv_depay_class_init (GstRtpKlvDepayClass * klass)
+{
+  GstElementClass *element_class = (GstElementClass *) klass;
+  GObjectClass *gobject_class = (GObjectClass *) klass;
+  GstRTPBaseDepayloadClass *rtpbasedepayload_class;
+
+  GST_DEBUG_CATEGORY_INIT (klvdepay_debug, "klvdepay", 0,
+      "RTP KLV Depayloader");
+
+  gobject_class->finalize = gst_rtp_klv_depay_finalize;
+
+  element_class->change_state = gst_rtp_klv_depay_change_state;
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "RTP KLV Depayloader", "Codec/Depayloader/Network/RTP",
+      "Extracts KLV (SMPTE ST 336) metadata from RTP packets",
+      "Tim-Philipp Müller <tim@centricular.com>");
+
+  rtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
+
+  rtpbasedepayload_class->set_caps = gst_rtp_klv_depay_setcaps;
+  rtpbasedepayload_class->process_rtp_packet = gst_rtp_klv_depay_process;
+}
+
+static void
+gst_rtp_klv_depay_init (GstRtpKlvDepay * klvdepay)
+{
+  klvdepay->adapter = gst_adapter_new ();
+}
+
+static void
+gst_rtp_klv_depay_finalize (GObject * object)
+{
+  GstRtpKlvDepay *klvdepay;
+
+  klvdepay = GST_RTP_KLV_DEPAY (object);
+
+  gst_rtp_klv_depay_reset (klvdepay);
+  g_object_unref (klvdepay->adapter);
+
+  G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
+static void
+gst_rtp_klv_depay_reset (GstRtpKlvDepay * klvdepay)
+{
+  GST_DEBUG_OBJECT (klvdepay, "resetting");
+  gst_adapter_clear (klvdepay->adapter);
+  klvdepay->resync = TRUE;
+  klvdepay->last_rtp_ts = -1;
+}
+
+static gboolean
+gst_rtp_klv_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
+{
+  GstStructure *s;
+  GstCaps *src_caps;
+  gboolean res;
+  gint clock_rate;
+
+  s = gst_caps_get_structure (caps, 0);
+
+  if (!gst_structure_get_int (s, "clock-rate", &clock_rate))
+    return FALSE;
+
+  depayload->clock_rate = clock_rate;
+
+  src_caps = gst_static_pad_template_get_caps (&src_template);
+  res = gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depayload), src_caps);
+  gst_caps_unref (src_caps);
+
+  return res;
+}
+
+static gboolean
+klv_get_vlen (const guint8 * data, guint data_len, guint64 * v_len,
+    gsize * len_size)
+{
+  guint8 first_byte, len_len;
+  guint64 len;
+
+  g_assert (data_len > 0);
+
+  first_byte = *data++;
+
+  if ((first_byte & 0x80) == 0) {
+    *v_len = first_byte & 0x7f;
+    *len_size = 1;
+    return TRUE;
+  }
+
+  len_len = first_byte & 0x7f;
+
+  if (len_len == 0 || len_len > 8)
+    return FALSE;
+
+  if ((1 + len_len) > data_len)
+    return FALSE;
+
+  *len_size = 1 + len_len;
+
+  len = 0;
+  while (len_len > 0) {
+    len = len << 8 | *data++;
+    --len_len;
+  }
+
+  *v_len = len;
+
+  return TRUE;
+}
+
+static GstBuffer *
+gst_rtp_klv_depay_process_data (GstRtpKlvDepay * klvdepay)
+{
+  gsize avail, data_len, len_size;
+  GstBuffer *outbuf;
+  guint8 data[1 + 8];
+  guint64 v_len;
+
+  avail = gst_adapter_available (klvdepay->adapter);
+
+  GST_TRACE_OBJECT (klvdepay, "%" G_GSIZE_FORMAT " bytes in adapter", avail);
+
+  if (avail == 0)
+    return NULL;
+
+  /* need at least 16 bytes of UL key plus 1 byte of length */
+  if (avail < 16 + 1)
+    goto bad_klv_packet;
+
+  /* check if the declared KLV unit size matches actual bytes available */
+  data_len = MIN (avail - 16, 1 + 8);
+  gst_adapter_copy (klvdepay->adapter, data, 16, data_len);
+  if (!klv_get_vlen (data, data_len, &v_len, &len_size))
+    goto bad_klv_packet;
+
+  GST_LOG_OBJECT (klvdepay, "want %" G_GUINT64_FORMAT " bytes, "
+      "have %" G_GSIZE_FORMAT " bytes", 16 + len_size + v_len, avail);
+
+  if (avail < 16 + len_size + v_len)
+    goto incomplete_klv_packet;
+
+  /* something is wrong, this shouldn't ever happen */
+  if (avail > 16 + len_size + v_len)
+    goto bad_klv_packet;
+
+  outbuf = gst_adapter_take_buffer (klvdepay->adapter, avail);
+
+  /* Mark buffers as key unit to signal this is the start of a KLV unit
+   * (for now all buffers will be flagged like this, since all buffers are
+   * self-contained KLV units, but in future that might change) */
+  outbuf = gst_buffer_make_writable (outbuf);
+  GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DELTA_UNIT);
+
+  return outbuf;
+
+/* ERRORS */
+bad_klv_packet:
+  {
+    GST_WARNING_OBJECT (klvdepay, "bad KLV packet, dropping");
+    gst_rtp_klv_depay_reset (klvdepay);
+    return NULL;
+  }
+incomplete_klv_packet:
+  {
+    GST_DEBUG_OBJECT (klvdepay, "partial KLV packet: have %u bytes, want %u",
+        (guint) avail, (guint) (16 + len_size + v_len));
+    return NULL;
+  }
+}
+
+/* We're trying to be pragmatic here, not quite as strict as the spec wants
+ * us to be with regard to marker bits and resyncing after packet loss */
+static GstBuffer *
+gst_rtp_klv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
+{
+  GstRtpKlvDepay *klvdepay = GST_RTP_KLV_DEPAY (depayload);
+  GstBuffer *payload, *outbuf = NULL;
+  gboolean marker, start = FALSE, maybe_start;
+  guint32 rtp_ts;
+  guint16 seq;
+  guint payload_len;
+
+  /* Ignore DISCONT on first buffer and on buffers following a discont */
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer) && klvdepay->last_rtp_ts != -1) {
+    GST_WARNING_OBJECT (klvdepay, "DISCONT, need to resync");
+    gst_rtp_klv_depay_reset (klvdepay);
+  }
+
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
+
+  /* marker bit signals last fragment of a KLV unit */
+  marker = gst_rtp_buffer_get_marker (rtp);
+
+  seq = gst_rtp_buffer_get_seq (rtp);
+
+  /* packet directly after one with marker bit set => start */
+  start = klvdepay->last_marker_seq != -1
+      && gst_rtp_buffer_compare_seqnum (klvdepay->last_marker_seq, seq) == 1;
+
+  /* deduce start of new KLV unit in case sender doesn't set marker bits
+   * (it's not like the spec is ambiguous about that, but what can you do) */
+  rtp_ts = gst_rtp_buffer_get_timestamp (rtp);
+
+  maybe_start = klvdepay->last_rtp_ts == -1 || klvdepay->last_rtp_ts != rtp_ts;
+
+  klvdepay->last_rtp_ts = rtp_ts;
+
+  /* fallback to detect self-contained single KLV unit (usual case) */
+  if ((!start || !marker || maybe_start) && payload_len > 16) {
+    const guint8 *data;
+    guint64 v_len;
+    gsize len_size;
+
+    data = gst_rtp_buffer_get_payload (rtp);
+    if (GST_READ_UINT32_BE (data) == 0x060e2b34 &&
+        klv_get_vlen (data + 16, payload_len - 16, &v_len, &len_size)) {
+      if (16 + len_size + v_len == payload_len) {
+        GST_LOG_OBJECT (klvdepay, "Looks like a self-contained KLV unit");
+        marker = TRUE;
+        start = TRUE;
+      } else if (16 + len_size + v_len > payload_len) {
+        GST_LOG_OBJECT (klvdepay,
+            "Looks like the start of a fragmented KLV unit");
+        start = TRUE;
+      }
+    }
+  }
+
+  /* If this is the first packet and looks like a start, clear resync flag */
+  if (klvdepay->resync && klvdepay->last_marker_seq == -1 && start)
+    klvdepay->resync = FALSE;
+
+  if (marker)
+    klvdepay->last_marker_seq = seq;
+
+  GST_LOG_OBJECT (klvdepay, "payload of %u bytes, marker=%d, start=%d",
+      payload_len, marker, start);
+
+  if (klvdepay->resync && !start) {
+    GST_DEBUG_OBJECT (klvdepay, "Dropping buffer, waiting to resync");
+
+    if (marker)
+      klvdepay->resync = FALSE;
+
+    goto done;
+  }
+
+  if (start && !marker)
+    outbuf = gst_rtp_klv_depay_process_data (klvdepay);
+
+  payload = gst_rtp_buffer_get_payload_buffer (rtp);
+  gst_adapter_push (klvdepay->adapter, payload);
+
+  if (marker)
+    outbuf = gst_rtp_klv_depay_process_data (klvdepay);
+
+done:
+
+  return outbuf;
+}
+
+static GstStateChangeReturn
+gst_rtp_klv_depay_change_state (GstElement * element, GstStateChange transition)
+{
+  GstRtpKlvDepay *klvdepay;
+  GstStateChangeReturn ret;
+
+  klvdepay = GST_RTP_KLV_DEPAY (element);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_READY_TO_PAUSED:
+      gst_rtp_klv_depay_reset (klvdepay);
+      klvdepay->last_marker_seq = -1;
+      break;
+    default:
+      break;
+  }
+
+  ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
+
+  switch (transition) {
+    case GST_STATE_CHANGE_PAUSED_TO_READY:
+      gst_rtp_klv_depay_reset (klvdepay);
+      break;
+    default:
+      break;
+  }
+  return ret;
+}
+
+gboolean
+gst_rtp_klv_depay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpklvdepay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_KLV_DEPAY);
+}
diff --git a/gst/rtp/gstrtpklvdepay.h b/gst/rtp/gstrtpklvdepay.h
new file mode 100644
index 0000000000000000000000000000000000000000..71a256d2b8a6b4bbb71147d1f4d20e3d454a4b8f
--- /dev/null
+++ b/gst/rtp/gstrtpklvdepay.h
@@ -0,0 +1,65 @@
+/* GStreamer RTP KLV Depayloader
+ * Copyright (C) 2014-2015 Tim-Philipp Müller <tim@centricular.com>>
+ * Copyright (C) 2014-2015 Centricular Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_KLV_DEPAY_H__
+#define __GST_RTP_KLV_DEPAY_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/gstrtpbasedepayload.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_KLV_DEPAY \
+  (gst_rtp_klv_depay_get_type())
+#define GST_RTP_KLV_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_KLV_DEPAY,GstRtpKlvDepay))
+#define GST_RTP_KLV_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_KLV_DEPAY,GstRtpKlvDepayClass))
+#define GST_IS_RTP_KLV_DEPAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_KLV_DEPAY))
+#define GST_IS_RTP_KLV_DEPAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_KLV_DEPAY))
+
+typedef struct _GstRtpKlvDepay GstRtpKlvDepay;
+typedef struct _GstRtpKlvDepayClass GstRtpKlvDepayClass;
+
+struct _GstRtpKlvDepay
+{
+  GstRTPBaseDepayload depayload;
+
+  GstAdapter *adapter;
+  gboolean    resync;
+  gint        last_marker_seq;   /* -1 if unset, otherwise 0-G_MAXUINT16 */
+  gint64      last_rtp_ts;       /* -1 if unset, otherwise 0-G_MAXUINT32 */
+};
+
+struct _GstRtpKlvDepayClass
+{
+  GstRTPBaseDepayloadClass parent_class;
+};
+
+G_GNUC_INTERNAL GType     gst_rtp_klv_depay_get_type (void);
+
+G_GNUC_INTERNAL gboolean  gst_rtp_klv_depay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_KLV_DEPAY_H__ */
diff --git a/gst/rtp/gstrtpklvpay.c b/gst/rtp/gstrtpklvpay.c
new file mode 100644
index 0000000000000000000000000000000000000000..a27d95ee660b414de28307fb7241f892834e6902
--- /dev/null
+++ b/gst/rtp/gstrtpklvpay.c
@@ -0,0 +1,206 @@
+/* GStreamer RTP KLV Payloader
+ * Copyright (C) 2014-2015 Tim-Philipp Müller <tim@centricular.com>>
+ * Copyright (C) 2014-2015 Centricular Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+/**
+ * SECTION:element-rtpklvpay
+ * @see_also: rtpklvdepay
+ *
+ * Payloads KLV metadata into RTP packets according to RFC 6597.
+ * For detailed information see: http://tools.ietf.org/html/rfc6597
+ *
+ * <refsect2>
+ * <title>Example pipeline</title>
+ * |[
+ * gst-launch-1.0 filesrc location=video-with-klv.ts ! tsdemux ! rtpklvpay ! udpsink
+ * ]| This example pipeline will payload an RTP KLV stream extracted from an
+ * MPEG-TS stream and send it via UDP to an RTP receiver.
+ * </refsect2>
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "gstrtpklvpay.h"
+#include "gstrtputils.h"
+
+#include <string.h>
+
+GST_DEBUG_CATEGORY_STATIC (klvpay_debug);
+#define GST_CAT_DEFAULT (klvpay_debug)
+
+static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("application/x-rtp, "
+        "media = (string) application, clock-rate = (int) [1, MAX], "
+        "encoding-name = (string) SMPTE336M")
+    );
+
+static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS ("meta/x-klv, parsed = (bool) true"));
+
+#define gst_rtp_klv_pay_parent_class parent_class
+G_DEFINE_TYPE (GstRtpKlvPay, gst_rtp_klv_pay, GST_TYPE_RTP_BASE_PAYLOAD);
+
+static gboolean gst_rtp_klv_pay_setcaps (GstRTPBasePayload * pay,
+    GstCaps * caps);
+static GstFlowReturn gst_rtp_klv_pay_handle_buffer (GstRTPBasePayload * pay,
+    GstBuffer * buf);
+
+static void
+gst_rtp_klv_pay_class_init (GstRtpKlvPayClass * klass)
+{
+  GstElementClass *element_class = (GstElementClass *) klass;
+  GstRTPBasePayloadClass *rtpbasepay_class;
+
+  GST_DEBUG_CATEGORY_INIT (klvpay_debug, "klvpay", 0, "RTP KLV Payloader");
+
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_pad_template (element_class,
+      gst_static_pad_template_get (&sink_template));
+
+  gst_element_class_set_static_metadata (element_class,
+      "RTP KLV Payloader", "Codec/Payloader/Network/RTP",
+      "Payloads KLV (SMPTE ST 336) metadata as RTP packets",
+      "Tim-Philipp Müller <tim@centricular.com>");
+
+  rtpbasepay_class = (GstRTPBasePayloadClass *) klass;
+
+  rtpbasepay_class->set_caps = gst_rtp_klv_pay_setcaps;
+  rtpbasepay_class->handle_buffer = gst_rtp_klv_pay_handle_buffer;
+}
+
+static void
+gst_rtp_klv_pay_init (GstRtpKlvPay * klvpay)
+{
+  /* nothing to do here yet */
+}
+
+static gboolean
+gst_rtp_klv_pay_setcaps (GstRTPBasePayload * pay, GstCaps * caps)
+{
+  /* FIXME: allow other clock rates */
+  gst_rtp_base_payload_set_options (pay, "application", TRUE, "SMPTE336M",
+      90000);
+
+  return gst_rtp_base_payload_set_outcaps (pay, NULL);
+}
+
+static GstFlowReturn
+gst_rtp_klv_pay_handle_buffer (GstRTPBasePayload * basepayload, GstBuffer * buf)
+{
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstBufferList *list = NULL;
+  GstRtpKlvPay *pay;
+  GstMapInfo map;
+  GstBuffer *outbuf = NULL;
+  gsize offset;
+  guint mtu, rtp_header_size, max_payload_size;
+
+  pay = GST_RTP_KLV_PAY (basepayload);
+  mtu = GST_RTP_BASE_PAYLOAD_MTU (basepayload);
+
+  rtp_header_size = gst_rtp_buffer_calc_header_len (0);
+  max_payload_size = mtu - rtp_header_size;
+
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+
+  if (map.size == 0)
+    goto done;
+
+  /* KLV coding shall use and only use a fixed 16-byte SMPTE-administered
+   * Universal Label, according to SMPTE 298M as Key (Rec. ITU R-BT.1653-1) */
+  if (map.size < 16 || GST_READ_UINT32_BE (map.data) != 0x060E2B34)
+    goto bad_input;
+
+  if (map.size > max_payload_size)
+    list = gst_buffer_list_new ();
+
+  GST_LOG_OBJECT (pay, "%" G_GSIZE_FORMAT " bytes of data to payload",
+      map.size);
+
+  offset = 0;
+  while (offset < map.size) {
+    GstBuffer *payloadbuf;
+    GstRTPBuffer rtp = { NULL };
+    guint payload_size;
+    guint bytes_left;
+
+    bytes_left = map.size - offset;
+    payload_size = MIN (bytes_left, max_payload_size);
+
+    outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
+
+    if (payload_size == bytes_left) {
+      GST_LOG_OBJECT (pay, "last packet of KLV unit");
+      gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
+      gst_rtp_buffer_set_marker (&rtp, 1);
+      gst_rtp_buffer_unmap (&rtp);
+    }
+
+    GST_LOG_OBJECT (pay, "packet with payload size %u", payload_size);
+
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (pay), outbuf, buf, 0);
+
+    payloadbuf = gst_buffer_copy_region (buf, GST_BUFFER_COPY_MEMORY,
+        offset, payload_size);
+
+    /* join rtp header + payload memory parts */
+    outbuf = gst_buffer_append (outbuf, payloadbuf);
+
+    GST_BUFFER_PTS (outbuf) = GST_BUFFER_PTS (buf);
+    GST_BUFFER_DTS (outbuf) = GST_BUFFER_DTS (buf);
+
+    /* and add to list */
+    if (list != NULL)
+      gst_buffer_list_insert (list, -1, outbuf);
+
+    offset += payload_size;
+  }
+
+done:
+
+  gst_buffer_unmap (buf, &map);
+  gst_buffer_unref (buf);
+
+  if (list != NULL)
+    ret = gst_rtp_base_payload_push_list (basepayload, list);
+  else if (outbuf != NULL)
+    ret = gst_rtp_base_payload_push (basepayload, outbuf);
+
+  return ret;
+
+/* ERRORS */
+bad_input:
+  {
+    GST_ERROR_OBJECT (pay, "Input doesn't look like a KLV packet, ignoring");
+    goto done;
+  }
+}
+
+gboolean
+gst_rtp_klv_pay_plugin_init (GstPlugin * plugin)
+{
+  return gst_element_register (plugin, "rtpklvpay",
+      GST_RANK_SECONDARY, GST_TYPE_RTP_KLV_PAY);
+}
diff --git a/gst/rtp/gstrtpklvpay.h b/gst/rtp/gstrtpklvpay.h
new file mode 100644
index 0000000000000000000000000000000000000000..9ee81342922027be9553972aa8388ebbf1ffbff7
--- /dev/null
+++ b/gst/rtp/gstrtpklvpay.h
@@ -0,0 +1,60 @@
+/* GStreamer RTP KLV Payloader
+ * Copyright (C) 2014-2015 Tim-Philipp Müller <tim@centricular.com>>
+ * Copyright (C) 2014-2015 Centricular Ltd
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_KLV_PAY_H__
+#define __GST_RTP_KLV_PAY_H__
+
+#include <gst/gst.h>
+#include <gst/base/gstadapter.h>
+#include <gst/rtp/rtp.h>
+
+G_BEGIN_DECLS
+
+#define GST_TYPE_RTP_KLV_PAY \
+  (gst_rtp_klv_pay_get_type())
+#define GST_RTP_KLV_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_RTP_KLV_PAY,GstRtpKlvPay))
+#define GST_RTP_KLV_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_RTP_KLV_PAY,GstRtpKlvPayClass))
+#define GST_IS_RTP_KLV_PAY(obj) \
+  (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_KLV_PAY))
+#define GST_IS_RTP_KLV_PAY_CLASS(klass) \
+  (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_KLV_PAY))
+
+typedef struct _GstRtpKlvPay GstRtpKlvPay;
+typedef struct _GstRtpKlvPayClass GstRtpKlvPayClass;
+
+struct _GstRtpKlvPay
+{
+  GstRTPBasePayload rtpbasepayload;
+};
+
+struct _GstRtpKlvPayClass
+{
+  GstRTPBasePayloadClass rtpbasepayload_class;
+};
+
+G_GNUC_INTERNAL  GType     gst_rtp_klv_pay_get_type (void);
+
+G_GNUC_INTERNAL  gboolean  gst_rtp_klv_pay_plugin_init (GstPlugin * plugin);
+
+G_END_DECLS
+
+#endif /* __GST_RTP_KLV_PAY_H__ */
diff --git a/gst/rtp/gstrtpmp1sdepay.c b/gst/rtp/gstrtpmp1sdepay.c
index 63545e78cdc31179300a2dda8288abd0934333b2..f6c71b911cb0b2581971596310478d9486b22800 100644
--- a/gst/rtp/gstrtpmp1sdepay.c
+++ b/gst/rtp/gstrtpmp1sdepay.c
@@ -25,6 +25,7 @@
 
 #include <string.h>
 #include "gstrtpmp1sdepay.h"
+#include "gstrtputils.h"
 
 /* RtpMP1SDepay signals and args */
 enum
@@ -66,7 +67,7 @@ G_DEFINE_TYPE (GstRtpMP1SDepay, gst_rtp_mp1s_depay,
 static gboolean gst_rtp_mp1s_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mp1s_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_mp1s_depay_class_init (GstRtpMP1SDepayClass * klass)
@@ -77,7 +78,7 @@ gst_rtp_mp1s_depay_class_init (GstRtpMP1SDepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_mp1s_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mp1s_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp1s_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -118,19 +119,19 @@ gst_rtp_mp1s_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mp1s_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mp1s_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
-  if (outbuf)
+  if (outbuf) {
     GST_DEBUG ("gst_rtp_mp1s_depay_chain: pushing buffer of size %"
         G_GSIZE_FORMAT, gst_buffer_get_size (outbuf));
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, 0);
+  }
+
   return outbuf;
 }
 
diff --git a/gst/rtp/gstrtpmp2tdepay.c b/gst/rtp/gstrtpmp2tdepay.c
index 345d90616eb09b93773eadb20095597450c261ba..6f4d933d09920ce786b23ae676c8bb0d08fe3283 100644
--- a/gst/rtp/gstrtpmp2tdepay.c
+++ b/gst/rtp/gstrtpmp2tdepay.c
@@ -25,6 +25,7 @@
 
 #include <string.h>
 #include "gstrtpmp2tdepay.h"
+#include "gstrtputils.h"
 
 /* RtpMP2TDepay signals and args */
 enum
@@ -74,7 +75,7 @@ G_DEFINE_TYPE (GstRtpMP2TDepay, gst_rtp_mp2t_depay,
 static gboolean gst_rtp_mp2t_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mp2t_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void gst_rtp_mp2t_depay_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
@@ -92,7 +93,7 @@ gst_rtp_mp2t_depay_class_init (GstRtpMP2TDepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_mp2t_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mp2t_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp2t_depay_setcaps;
 
   gobject_class->set_property = gst_rtp_mp2t_depay_set_property;
@@ -146,17 +147,15 @@ gst_rtp_mp2t_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mp2t_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mp2t_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMP2TDepay *rtpmp2tdepay;
   GstBuffer *outbuf;
   gint payload_len, leftover;
-  GstRTPBuffer rtp = { NULL };
 
   rtpmp2tdepay = GST_RTP_MP2T_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (G_UNLIKELY (payload_len <= rtpmp2tdepay->skip_first_bytes))
     goto empty_packet;
@@ -179,14 +178,16 @@ gst_rtp_mp2t_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   }
 
   outbuf =
-      gst_rtp_buffer_get_payload_subbuffer (&rtp,
+      gst_rtp_buffer_get_payload_subbuffer (rtp,
       rtpmp2tdepay->skip_first_bytes, payload_len);
 
-  gst_rtp_buffer_unmap (&rtp);
-  if (outbuf)
+  if (outbuf) {
     GST_DEBUG ("gst_rtp_mp2t_depay_chain: pushing buffer of size %"
         G_GSIZE_FORMAT, gst_buffer_get_size (outbuf));
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf, 0);
+  }
+
   return outbuf;
 
   /* ERRORS */
@@ -194,7 +195,6 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpmp2tdepay, STREAM, DECODE,
         (NULL), ("Packet was empty"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpmp2tpay.c b/gst/rtp/gstrtpmp2tpay.c
index 386e09e78eb3530f471cd3bdfecc7b1c8783669b..3ddb429ce272e2a90cb585bdd6ad3123ab2ad1fc 100644
--- a/gst/rtp/gstrtpmp2tpay.c
+++ b/gst/rtp/gstrtpmp2tpay.c
@@ -26,6 +26,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 
 #include "gstrtpmp2tpay.h"
+#include "gstrtputils.h"
 
 static GstStaticPadTemplate gst_rtp_mp2t_pay_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -112,7 +113,8 @@ gst_rtp_mp2t_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
 
-  gst_rtp_base_payload_set_options (payload, "video", TRUE, "MP2T", 90000);
+  gst_rtp_base_payload_set_options (payload, "video",
+      payload->pt != GST_RTP_PAYLOAD_MP2T, "MP2T", 90000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
@@ -154,6 +156,7 @@ gst_rtp_mp2t_pay_flush (GstRTPMP2TPay * rtpmp2tpay)
 
     /* get payload */
     paybuf = gst_adapter_take_buffer_fast (rtpmp2tpay->adapter, payload_len);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp2tpay), outbuf, paybuf, 0);
     outbuf = gst_buffer_append (outbuf, paybuf);
     avail -= payload_len;
 
diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c
index 8aa22a0f64b31011d6b9b05f94910807da3c0e2a..40080f1ffd3e520fa2a3e1e0f4c9fad2de403389 100644
--- a/gst/rtp/gstrtpmp4adepay.c
+++ b/gst/rtp/gstrtpmp4adepay.c
@@ -23,9 +23,11 @@
 
 #include <gst/base/gstbitreader.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <string.h>
 #include "gstrtpmp4adepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4adepay_debug);
 #define GST_CAT_DEFAULT (rtpmp4adepay_debug)
@@ -64,7 +66,7 @@ static void gst_rtp_mp4a_depay_finalize (GObject * object);
 static gboolean gst_rtp_mp4a_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static GstStateChangeReturn gst_rtp_mp4a_depay_change_state (GstElement *
     element, GstStateChange transition);
@@ -85,7 +87,7 @@ gst_rtp_mp4a_depay_class_init (GstRtpMP4ADepayClass * klass)
 
   gstelement_class->change_state = gst_rtp_mp4a_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_mp4a_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mp4a_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp4a_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -293,30 +295,28 @@ gst_rtp_mp4a_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMP4ADepay *rtpmp4adepay;
   GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL };
   GstMapInfo map;
 
   rtpmp4adepay = GST_RTP_MP4A_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     gst_adapter_clear (rtpmp4adepay->adapter);
   }
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   outbuf = gst_buffer_make_writable (outbuf);
-  GST_BUFFER_PTS (outbuf) = GST_BUFFER_PTS (buf);
+  GST_BUFFER_PTS (outbuf) = GST_BUFFER_PTS (rtp->buffer);
   gst_adapter_push (rtpmp4adepay->adapter, outbuf);
 
   /* RTP marker bit indicates the last packet of the AudioMuxElement => create
    * and push a buffer */
-  if (gst_rtp_buffer_get_marker (&rtp)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     guint avail;
     guint i;
     guint8 *data;
@@ -361,8 +361,7 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
       /* take data out, skip the header */
       pos += skip;
-      tmp = gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_MEMORY, pos,
-          data_len);
+      tmp = gst_buffer_copy_region (outbuf, GST_BUFFER_COPY_ALL, pos, data_len);
 
       /* skip data too */
       skip += data_len;
@@ -373,6 +372,8 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       avail -= skip;
 
       GST_BUFFER_PTS (tmp) = timestamp;
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), tmp,
+          g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
       gst_rtp_base_depayload_push (depayload, tmp);
 
       /* shift ts for next buffers */
@@ -394,7 +395,6 @@ gst_rtp_mp4a_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     gst_buffer_unmap (outbuf, &map);
     gst_buffer_unref (outbuf);
   }
-  gst_rtp_buffer_unmap (&rtp);
   return NULL;
 
   /* ERRORS */
@@ -404,7 +404,6 @@ wrong_size:
         ("Packet did not validate"), ("wrong packet size"));
     gst_buffer_unmap (outbuf, &map);
     gst_buffer_unref (outbuf);
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c
index 162d088c78705690b290b7f602e68889eb7cc4a3..b42cffdc8f87d8b06c1ae9173b06ef8f0acea8f5 100644
--- a/gst/rtp/gstrtpmp4apay.c
+++ b/gst/rtp/gstrtpmp4apay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpmp4apay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4apay_debug);
 #define GST_CAT_DEFAULT (rtpmp4apay_debug)
@@ -342,6 +344,8 @@ config_failed:
   }
 }
 
+#define RTP_HEADER_LEN 12
+
 /* we expect buffers as exactly one complete AU
  */
 static GstFlowReturn
@@ -350,11 +354,10 @@ gst_rtp_mp4a_pay_handle_buffer (GstRTPBasePayload * basepayload,
 {
   GstRtpMP4APay *rtpmp4apay;
   GstFlowReturn ret;
-  GstBuffer *outbuf;
-  guint count, mtu;
-  GstMapInfo map;
+  GstBufferList *list;
+  guint mtu;
+  guint offset;
   gsize size;
-  guint8 *data;
   gboolean fragmented;
   GstClockTime timestamp;
 
@@ -362,83 +365,92 @@ gst_rtp_mp4a_pay_handle_buffer (GstRTPBasePayload * basepayload,
 
   rtpmp4apay = GST_RTP_MP4A_PAY (basepayload);
 
-  gst_buffer_map (buffer, &map, GST_MAP_READ);
-  size = map.size;
-  data = map.data;
+  offset = 0;
+  size = gst_buffer_get_size (buffer);
 
   timestamp = GST_BUFFER_PTS (buffer);
 
   fragmented = FALSE;
   mtu = GST_RTP_BASE_PAYLOAD_MTU (rtpmp4apay);
 
+  list = gst_buffer_list_new_sized (size / (mtu - RTP_HEADER_LEN) + 1);
+
   while (size > 0) {
     guint towrite;
-    guint8 *payload;
+    GstBuffer *outbuf;
     guint payload_len;
     guint packet_len;
+    guint header_len;
+    GstBuffer *paybuf;
     GstRTPBuffer rtp = { NULL };
 
-    /* this will be the total lenght of the packet */
-    packet_len = gst_rtp_buffer_calc_packet_len (size, 0, 0);
-
+    header_len = 0;
     if (!fragmented) {
+      guint count;
       /* first packet calculate space for the packet including the header */
       count = size;
       while (count >= 0xff) {
-        packet_len++;
+        header_len++;
         count -= 0xff;
       }
-      packet_len++;
+      header_len++;
     }
 
-    /* fill one MTU or all available bytes */
+    packet_len = gst_rtp_buffer_calc_packet_len (header_len + size, 0, 0);
     towrite = MIN (packet_len, mtu);
-
-    /* this is the payload length */
     payload_len = gst_rtp_buffer_calc_payload_len (towrite, 0, 0);
+    payload_len -= header_len;
 
     GST_DEBUG_OBJECT (rtpmp4apay,
-        "avail %" G_GSIZE_FORMAT ", towrite %d, packet_len %d, payload_len %d",
-        size, towrite, packet_len, payload_len);
+        "avail %" G_GSIZE_FORMAT
+        ", header_len %d, packet_len %d, payload_len %d", size, header_len,
+        packet_len, payload_len);
 
     /* create buffer to hold the payload. */
-    outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+    outbuf = gst_rtp_buffer_new_allocate (header_len, 0, 0);
 
     /* copy payload */
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
 
     if (!fragmented) {
+      guint8 *payload = gst_rtp_buffer_get_payload (&rtp);
+      guint count;
+
       /* first packet write the header */
       count = size;
       while (count >= 0xff) {
         *payload++ = 0xff;
-        payload_len--;
         count -= 0xff;
       }
       *payload++ = count;
-      payload_len--;
     }
 
-    /* copy data to payload */
-    memcpy (payload, data, payload_len);
-    data += payload_len;
-    size -= payload_len;
-
     /* marker only if the packet is complete */
-    gst_rtp_buffer_set_marker (&rtp, size == 0);
+    gst_rtp_buffer_set_marker (&rtp, size == payload_len);
 
     gst_rtp_buffer_unmap (&rtp);
 
+    /* create a new buf to hold the payload */
+    paybuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL,
+        offset, payload_len);
+
+    /* join memory parts */
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4apay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    outbuf = gst_buffer_append (outbuf, paybuf);
+    gst_buffer_list_add (list, outbuf);
+    offset += payload_len;
+    size -= payload_len;
+
     /* copy incomming timestamp (if any) to outgoing buffers */
     GST_BUFFER_PTS (outbuf) = timestamp;
 
-    ret = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtpmp4apay), outbuf);
-
     fragmented = TRUE;
   }
 
-  gst_buffer_unmap (buffer, &map);
+  ret =
+      gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpmp4apay), list);
+
   gst_buffer_unref (buffer);
 
   return ret;
diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c
index 3819c8a04ba9bd5b63414b89ec5c38ba00f8bc33..c8c79c93d76ea2a818966d7b5adcfc1752ebad02 100644
--- a/gst/rtp/gstrtpmp4gdepay.c
+++ b/gst/rtp/gstrtpmp4gdepay.c
@@ -26,6 +26,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 
 #include "gstrtpmp4gdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4gdepay_debug);
 #define GST_CAT_DEFAULT (rtpmp4gdepay_debug)
@@ -134,7 +135,7 @@ static void gst_rtp_mp4g_depay_finalize (GObject * object);
 static gboolean gst_rtp_mp4g_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_mp4g_depay_handle_event (GstRTPBaseDepayload * filter,
     GstEvent * event);
 
@@ -157,7 +158,7 @@ gst_rtp_mp4g_depay_class_init (GstRtpMP4GDepayClass * klass)
 
   gstelement_class->change_state = gst_rtp_mp4g_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_mp4g_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mp4g_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp4g_depay_setcaps;
   gstrtpbasedepayload_class->handle_event = gst_rtp_mp4g_depay_handle_event;
 
@@ -347,6 +348,7 @@ gst_rtp_mp4g_depay_flush_queue (GstRtpMP4GDepay * rtpmp4gdepay)
     }
 
     GST_DEBUG_OBJECT (rtpmp4gdepay, "pushing AU_index %u", AU_index);
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4gdepay), outbuf, 0);
     gst_rtp_base_depayload_push (GST_RTP_BASE_DEPAYLOAD (rtpmp4gdepay), outbuf);
     rtpmp4gdepay->next_AU_index = AU_index + 1;
   }
@@ -367,6 +369,7 @@ gst_rtp_mp4g_depay_queue (GstRtpMP4GDepay * rtpmp4gdepay, GstBuffer * outbuf)
 
     /* we received the expected packet, push it and flush as much as we can from
      * the queue */
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4gdepay), outbuf, 0);
     gst_rtp_base_depayload_push (GST_RTP_BASE_DEPAYLOAD (rtpmp4gdepay), outbuf);
     rtpmp4gdepay->next_AU_index++;
 
@@ -379,6 +382,7 @@ gst_rtp_mp4g_depay_queue (GstRtpMP4GDepay * rtpmp4gdepay, GstBuffer * outbuf)
         GST_DEBUG_OBJECT (rtpmp4gdepay, "pushing expected AU_index %u",
             AU_index);
         outbuf = g_queue_pop_head (rtpmp4gdepay->packets);
+        gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4gdepay), outbuf, 0);
         gst_rtp_base_depayload_push (GST_RTP_BASE_DEPAYLOAD (rtpmp4gdepay),
             outbuf);
         rtpmp4gdepay->next_AU_index++;
@@ -418,22 +422,21 @@ gst_rtp_mp4g_depay_queue (GstRtpMP4GDepay * rtpmp4gdepay, GstBuffer * outbuf)
 }
 
 static GstBuffer *
-gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMP4GDepay *rtpmp4gdepay;
   GstBuffer *outbuf = NULL;
   GstClockTime timestamp;
-  GstRTPBuffer rtp = { NULL };
 
   rtpmp4gdepay = GST_RTP_MP4G_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf)) {
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer)) {
     GST_DEBUG_OBJECT (rtpmp4gdepay, "received DISCONT");
     gst_adapter_clear (rtpmp4gdepay->adapter);
   }
 
-  timestamp = GST_BUFFER_PTS (buf);
+  timestamp = GST_BUFFER_PTS (rtp->buffer);
 
   {
     gint payload_len, payload_AU;
@@ -443,14 +446,13 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     guint AU_size, AU_index, AU_index_delta, payload_AU_size;
     gboolean M;
 
-    gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
 
     GST_DEBUG_OBJECT (rtpmp4gdepay, "received payload of %d", payload_len);
 
-    rtptime = gst_rtp_buffer_get_timestamp (&rtp);
-    M = gst_rtp_buffer_get_marker (&rtp);
+    rtptime = gst_rtp_buffer_get_timestamp (rtp);
+    M = gst_rtp_buffer_get_marker (rtp);
 
     if (rtpmp4gdepay->sizelength > 0) {
       gint num_AU_headers, AU_headers_bytes, i;
@@ -558,6 +560,15 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
               /* use number of packets and of previous frame */
               cd = diff / rtpmp4gdepay->prev_AU_num;
               GST_DEBUG_OBJECT (depayload, "guessing constantDuration %d", cd);
+              if (!GST_BUFFER_IS_DISCONT (rtp->buffer)) {
+                /* rfc3640 - 3.2.3.2
+                 * if we see two consecutive packets with AU_index of 0 and
+                 * there has been no discontinuity, we must conclude that this
+                 * value of constantDuration is correct from now on. */
+                GST_DEBUG_OBJECT (depayload,
+                    "constantDuration of %d detected", cd);
+                rtpmp4gdepay->constantDuration = cd;
+              }
             } else {
               /* assume this frame has the same number of packets as the
                * previous one */
@@ -650,7 +661,7 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         /* collect stuff in the adapter, strip header from payload and push in
          * the adapter */
         outbuf =
-            gst_rtp_buffer_get_payload_subbuffer (&rtp, payload_AU, AU_size);
+            gst_rtp_buffer_get_payload_subbuffer (rtp, payload_AU, AU_size);
         gst_adapter_push (rtpmp4gdepay->adapter, outbuf);
 
         if (M) {
@@ -666,9 +677,16 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
           GST_BUFFER_PTS (outbuf) = timestamp;
           GST_BUFFER_OFFSET (outbuf) = AU_index;
 
-          /* make sure we don't use the timestamp again for other AUs in this
-           * RTP packet. */
-          timestamp = -1;
+          if (rtpmp4gdepay->constantDuration != 0) {
+            /* if we have constantDuration, calculate timestamp for next AU
+             * in this RTP packet. */
+            timestamp += (rtpmp4gdepay->constantDuration * GST_SECOND) /
+                depayload->clock_rate;
+          } else {
+            /* otherwise, make sure we don't use the timestamp again for other
+             * AUs. */
+            timestamp = GST_CLOCK_TIME_NONE;
+          }
 
           GST_DEBUG_OBJECT (depayload,
               "pushing buffer of size %" G_GSIZE_FORMAT,
@@ -682,7 +700,7 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       }
     } else {
       /* push complete buffer in adapter */
-      outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 0, payload_len);
+      outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 0, payload_len);
       gst_adapter_push (rtpmp4gdepay->adapter, outbuf);
 
       /* if this was the last packet of the VOP, create and push a buffer */
@@ -696,13 +714,11 @@ gst_rtp_mp4g_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
         GST_DEBUG ("gst_rtp_mp4g_depay_chain: pushing buffer of size %"
             G_GSIZE_FORMAT, gst_buffer_get_size (outbuf));
 
-        gst_rtp_buffer_unmap (&rtp);
         return outbuf;
       }
     }
   }
 
-  gst_rtp_buffer_unmap (&rtp);
   return NULL;
 
   /* ERRORS */
@@ -710,7 +726,6 @@ short_payload:
   {
     GST_ELEMENT_WARNING (rtpmp4gdepay, STREAM, DECODE,
         ("Packet payload was too short."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c
index a9977e388ac6b398c26e1c635ac597cf79515ba7..366ebf5a69432f4410e452db88be353352f17131 100644
--- a/gst/rtp/gstrtpmp4gpay.c
+++ b/gst/rtp/gstrtpmp4gpay.c
@@ -27,6 +27,7 @@
 #include <gst/rtp/gstrtpbuffer.h>
 
 #include "gstrtpmp4gpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4gpay_debug);
 #define GST_CAT_DEFAULT (rtpmp4gpay_debug)
@@ -533,6 +534,7 @@ gst_rtp_mp4g_pay_flush (GstRtpMP4GPay * rtpmp4gpay)
     gst_rtp_buffer_unmap (&rtp);
 
     paybuf = gst_adapter_take_buffer_fast (rtpmp4gpay->adapter, payload_len);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4gpay), outbuf, paybuf, 0);
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = rtpmp4gpay->first_timestamp;
diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c
index 3ff58d5149d5984e21b1bc9a8cbed6bf4c5c23ff..a62d64a2b0909df05d4b6da1d484b1280e88467f 100644
--- a/gst/rtp/gstrtpmp4vdepay.c
+++ b/gst/rtp/gstrtpmp4vdepay.c
@@ -22,9 +22,11 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <string.h>
 #include "gstrtpmp4vdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4vdepay_debug);
 #define GST_CAT_DEFAULT (rtpmp4vdepay_debug)
@@ -61,7 +63,7 @@ static void gst_rtp_mp4v_depay_finalize (GObject * object);
 static gboolean gst_rtp_mp4v_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static GstStateChangeReturn gst_rtp_mp4v_depay_change_state (GstElement *
     element, GstStateChange transition);
@@ -81,7 +83,7 @@ gst_rtp_mp4v_depay_class_init (GstRtpMP4VDepayClass * klass)
 
   gstelement_class->change_state = gst_rtp_mp4v_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_mp4v_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mp4v_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp4v_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -159,23 +161,20 @@ gst_rtp_mp4v_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMP4VDepay *rtpmp4vdepay;
   GstBuffer *pbuf, *outbuf = NULL;
-  GstRTPBuffer rtp = { NULL };
   gboolean marker;
 
   rtpmp4vdepay = GST_RTP_MP4V_DEPAY (depayload);
 
   /* flush remaining data on discont */
-  if (GST_BUFFER_IS_DISCONT (buf))
+  if (GST_BUFFER_IS_DISCONT (rtp->buffer))
     gst_adapter_clear (rtpmp4vdepay->adapter);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  pbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  marker = gst_rtp_buffer_get_marker (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  pbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   gst_adapter_push (rtpmp4vdepay->adapter, pbuf);
 
@@ -188,7 +187,10 @@ gst_rtp_mp4v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
     GST_DEBUG ("gst_rtp_mp4v_depay_chain: pushing buffer of size %"
         G_GSIZE_FORMAT, gst_buffer_get_size (outbuf));
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmp4vdepay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
   }
+
   return outbuf;
 }
 
diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c
index 7d24176296a81b932960dccaa8fc13711ba95d67..55095795642cc5346b8d44c8566d35318668ff60 100644
--- a/gst/rtp/gstrtpmp4vpay.c
+++ b/gst/rtp/gstrtpmp4vpay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtpmp4vpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmp4vpay_debug);
 #define GST_CAT_DEFAULT (rtpmp4vpay_debug)
@@ -285,7 +287,8 @@ gst_rtp_mp4v_pay_flush (GstRtpMP4VPay * rtpmp4vpay)
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
     gst_rtp_buffer_set_marker (&rtp, avail == 0);
     gst_rtp_buffer_unmap (&rtp);
-
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmp4vpay), outbuf, outbuf_data,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     outbuf = gst_buffer_append (outbuf, outbuf_data);
 
     GST_BUFFER_PTS (outbuf) = rtpmp4vpay->first_timestamp;
@@ -462,7 +465,7 @@ gst_rtp_mp4v_pay_handle_buffer (GstRTPBasePayload * basepayload,
           (gint) size - strip);
 
       /* strip off header */
-      subbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY, strip,
+      subbuf = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, strip,
           size - strip);
       GST_BUFFER_PTS (subbuf) = timestamp;
       gst_buffer_unref (buffer);
diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c
index b77ac06f4a882aeb384b8919f40f66e60933ef3c..ccb4633ce99685abcb45b85a9bb60991c5626ae5 100644
--- a/gst/rtp/gstrtpmpadepay.c
+++ b/gst/rtp/gstrtpmpadepay.c
@@ -22,9 +22,11 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <string.h>
 #include "gstrtpmpadepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmpadepay_debug);
 #define GST_CAT_DEFAULT (rtpmpadepay_debug)
@@ -55,7 +57,7 @@ G_DEFINE_TYPE (GstRtpMPADepay, gst_rtp_mpa_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
 static gboolean gst_rtp_mpa_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_mpa_depay_class_init (GstRtpMPADepayClass * klass)
@@ -80,7 +82,7 @@ gst_rtp_mpa_depay_class_init (GstRtpMPADepayClass * klass)
       "Wim Taymans <wim.taymans@gmail.com>");
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_mpa_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_mpa_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mpa_depay_process;
 }
 
 static void
@@ -111,11 +113,10 @@ gst_rtp_mpa_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMPADepay *rtpmpadepay;
   GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL };
   gint payload_len;
 #if 0
   guint8 *payload;
@@ -125,9 +126,7 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
   rtpmpadepay = GST_RTP_MPA_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len <= 4)
     goto empty_packet;
@@ -146,8 +145,8 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 #endif
 
   /* subbuffer skipping the 4 header bytes */
-  outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 4, -1);
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 4, -1);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     /* mark start of talkspurt with RESYNC */
@@ -157,7 +156,10 @@ gst_rtp_mpa_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       "gst_rtp_mpa_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT "",
       gst_buffer_get_size (outbuf));
 
-  gst_rtp_buffer_unmap (&rtp);
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpadepay), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
 
   /* FIXME, we can push half mpeg frames when they are split over multiple
    * RTP packets */
@@ -168,7 +170,6 @@ empty_packet:
   {
     GST_ELEMENT_WARNING (rtpmpadepay, STREAM, DECODE,
         ("Empty Payload."), (NULL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c
index 41ed1db43e7ad3d2eed636fbab193be03adb0faa..fe2f3a7e634730be8b3007b83c15b450689190f9 100644
--- a/gst/rtp/gstrtpmpapay.c
+++ b/gst/rtp/gstrtpmpapay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpmpapay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmpapay_debug);
 #define GST_CAT_DEFAULT (rtpmpapay_debug)
@@ -104,6 +106,8 @@ static void
 gst_rtp_mpa_pay_init (GstRtpMPAPay * rtpmpapay)
 {
   rtpmpapay->adapter = gst_adapter_new ();
+
+  GST_RTP_BASE_PAYLOAD (rtpmpapay)->pt = GST_RTP_PAYLOAD_MPA;
 }
 
 static void
@@ -133,7 +137,8 @@ gst_rtp_mpa_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
 
-  gst_rtp_base_payload_set_options (payload, "audio", TRUE, "MPA", 90000);
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_MPA, "MPA", 90000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
@@ -164,6 +169,8 @@ gst_rtp_mpa_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event)
   return ret;
 }
 
+#define RTP_HEADER_LEN 12
+
 static GstFlowReturn
 gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay)
 {
@@ -171,6 +178,7 @@ gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay)
   GstBuffer *outbuf;
   GstFlowReturn ret;
   guint16 frag_offset;
+  GstBufferList *list;
 
   /* the data available in the adapter is either smaller
    * than the MTU or bigger. In the case it is smaller, the complete
@@ -182,6 +190,10 @@ gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay)
 
   ret = GST_FLOW_OK;
 
+  list =
+      gst_buffer_list_new_sized (avail / (GST_RTP_BASE_PAYLOAD_MTU (rtpmpapay) -
+          RTP_HEADER_LEN) + 1);
+
   frag_offset = 0;
   while (avail > 0) {
     guint towrite;
@@ -231,14 +243,17 @@ gst_rtp_mpa_pay_flush (GstRtpMPAPay * rtpmpapay)
     gst_rtp_buffer_unmap (&rtp);
 
     paybuf = gst_adapter_take_buffer_fast (rtpmpapay->adapter, payload_len);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpapay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = rtpmpapay->first_ts;
     GST_BUFFER_DURATION (outbuf) = rtpmpapay->duration;
-
-    ret = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtpmpapay), outbuf);
+    gst_buffer_list_add (list, outbuf);
   }
 
+  ret = gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpmpapay), list);
+
   return ret;
 }
 
diff --git a/gst/rtp/gstrtpmparobustdepay.c b/gst/rtp/gstrtpmparobustdepay.c
index 3df1c3bd649901aaa9437e007b53d1f578de5cf0..02155e5232096c55ef21536c75617caf4c32d92f 100644
--- a/gst/rtp/gstrtpmparobustdepay.c
+++ b/gst/rtp/gstrtpmparobustdepay.c
@@ -77,7 +77,7 @@ static GstStateChangeReturn gst_rtp_mpa_robust_change_state (GstElement *
 static gboolean gst_rtp_mpa_robust_depay_setcaps (GstRTPBaseDepayload *
     depayload, GstCaps * caps);
 static GstBuffer *gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload *
-    depayload, GstBuffer * buf);
+    depayload, GstRTPBuffer * rtp);
 
 static void
 gst_rtp_mpa_robust_depay_finalize (GObject * object)
@@ -122,7 +122,8 @@ gst_rtp_mpa_robust_depay_class_init (GstRtpMPARobustDepayClass * klass)
       "Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>");
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_mpa_robust_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_mpa_robust_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet =
+      gst_rtp_mpa_robust_depay_process;
 }
 
 static void
@@ -641,7 +642,7 @@ gst_rtp_mpa_robust_depay_submit_adu (GstRtpMPARobustDepay * rtpmpadepay,
 
 static GstBuffer *
 gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf)
+    GstRTPBuffer * rtp)
 {
   GstRtpMPARobustDepay *rtpmpadepay;
   gint payload_len, offset;
@@ -649,19 +650,17 @@ gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload,
   gboolean cont, dtype;
   guint av, size;
   GstClockTime timestamp;
-  GstRTPBuffer rtp = { NULL };
+  GstBuffer *buf;
 
   rtpmpadepay = GST_RTP_MPA_ROBUST_DEPAY (depayload);
 
-  timestamp = GST_BUFFER_PTS (buf);
-
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
+  timestamp = GST_BUFFER_PTS (rtp->buffer);
 
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
   if (payload_len <= 1)
     goto short_read;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
   offset = 0;
   GST_LOG_OBJECT (rtpmpadepay, "payload_len: %d", payload_len);
 
@@ -701,7 +700,7 @@ gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload,
     GST_LOG_OBJECT (rtpmpadepay, "offset %d has cont: %d, dtype: %d, size: %d",
         offset, cont, dtype, size);
 
-    buf = gst_rtp_buffer_get_payload_subbuffer (&rtp, offset,
+    buf = gst_rtp_buffer_get_payload_subbuffer (rtp, offset,
         MIN (size, payload_len));
 
     if (cont) {
@@ -745,7 +744,6 @@ gst_rtp_mpa_robust_depay_process (GstRTPBaseDepayload * depayload,
     /* timestamp applies to first payload, no idea for subsequent ones */
     timestamp = GST_CLOCK_TIME_NONE;
   }
-  gst_rtp_buffer_unmap (&rtp);
 
   return NULL;
 
@@ -754,7 +752,6 @@ short_read:
   {
     GST_ELEMENT_WARNING (rtpmpadepay, STREAM, DECODE,
         (NULL), ("Packet contains invalid data"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c
index 7d8646cd2cde2349d6d57ee291e59420ac87b7d2..ff98fc049ded84477723d6a8049b8697c0eeaf1a 100644
--- a/gst/rtp/gstrtpmpvdepay.c
+++ b/gst/rtp/gstrtpmpvdepay.c
@@ -22,9 +22,11 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <string.h>
 #include "gstrtpmpvdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmpvdepay_debug);
 #define GST_CAT_DEFAULT (rtpmpvdepay_debug)
@@ -57,7 +59,7 @@ G_DEFINE_TYPE (GstRtpMPVDepay, gst_rtp_mpv_depay, GST_TYPE_RTP_BASE_DEPAYLOAD);
 static gboolean gst_rtp_mpv_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_mpv_depay_class_init (GstRtpMPVDepayClass * klass)
@@ -79,7 +81,7 @@ gst_rtp_mpv_depay_class_init (GstRtpMPVDepayClass * klass)
       "Wim Taymans <wim.taymans@gmail.com>");
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_mpv_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_mpv_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_mpv_depay_process;
 
   GST_DEBUG_CATEGORY_INIT (rtpmpvdepay_debug, "rtpmpvdepay", 0,
       "MPEG Video RTP Depayloader");
@@ -114,23 +116,20 @@ gst_rtp_mpv_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpMPVDepay *rtpmpvdepay;
-  GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL };
+  GstBuffer *outbuf = NULL;
 
   rtpmpvdepay = GST_RTP_MPV_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
   {
     gint payload_len, payload_header;
     guint8 *payload;
     guint8 T;
 
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
-    payload = gst_rtp_buffer_get_payload (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
     payload_header = 0;
 
     if (payload_len <= 4)
@@ -169,17 +168,19 @@ gst_rtp_mpv_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       payload += 4;
     }
 
-    outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, payload_header, -1);
+    outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, payload_header, -1);
 
     if (outbuf) {
       GST_DEBUG_OBJECT (rtpmpvdepay,
           "gst_rtp_mpv_depay_chain: pushing buffer of size %" G_GSIZE_FORMAT,
           gst_buffer_get_size (outbuf));
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpmpvdepay), outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
     }
-    return outbuf;
   }
 
-  return NULL;
+  return outbuf;
 
   /* ERRORS */
 empty_packet:
diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c
index 75ae678c307b9a3c51267f91c2d43afaa84a3d79..40bda45bbbfe6f536f706e031a5b56a0016d3a57 100644
--- a/gst/rtp/gstrtpmpvpay.c
+++ b/gst/rtp/gstrtpmpvpay.c
@@ -24,8 +24,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtpmpvpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpmpvpay_debug);
 #define GST_CAT_DEFAULT (rtpmpvpay_debug)
@@ -39,12 +41,16 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     );
 
 static GstStaticPadTemplate gst_rtp_mpv_pay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
+    GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"video\", "
         "payload = (int) " GST_RTP_PAYLOAD_MPV_STRING ", "
+        "clock-rate = (int) 90000, " "encoding-name = (string) \"MPV\"; "
+        "application/x-rtp, "
+        "media = (string) \"video\", "
+        "payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "clock-rate = (int) 90000, " "encoding-name = (string) \"MPV\"")
     );
 
@@ -131,7 +137,8 @@ gst_rtp_mpv_pay_reset (GstRTPMPVPay * pay)
 static gboolean
 gst_rtp_mpv_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
 {
-  gst_rtp_base_payload_set_options (payload, "video", FALSE, "MPV", 90000);
+  gst_rtp_base_payload_set_options (payload, "video",
+      payload->pt != GST_RTP_PAYLOAD_MPV, "MPV", 90000);
   return gst_rtp_base_payload_set_outcaps (payload, NULL);
 }
 
@@ -160,12 +167,15 @@ gst_rtp_mpv_pay_sink_event (GstRTPBasePayload * payload, GstEvent * event)
   return ret;
 }
 
+#define RTP_HEADER_LEN 12
+
 static GstFlowReturn
 gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
 {
-  GstBuffer *outbuf;
   GstFlowReturn ret;
   guint avail;
+  GstBufferList *list;
+  GstBuffer *outbuf;
 
   guint8 *payload;
 
@@ -173,6 +183,10 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
 
   ret = GST_FLOW_OK;
 
+  list =
+      gst_buffer_list_new_sized (avail / (GST_RTP_BASE_PAYLOAD_MTU (rtpmpvpay) -
+          RTP_HEADER_LEN) + 1);
+
   while (avail > 0) {
     guint towrite;
     guint packet_len;
@@ -214,13 +228,16 @@ gst_rtp_mpv_pay_flush (GstRTPMPVPay * rtpmpvpay)
     gst_rtp_buffer_unmap (&rtp);
 
     paybuf = gst_adapter_take_buffer_fast (rtpmpvpay->adapter, payload_len);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpmpvpay), outbuf, paybuf,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     outbuf = gst_buffer_append (outbuf, paybuf);
 
     GST_BUFFER_PTS (outbuf) = rtpmpvpay->first_ts;
-
-    ret = gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtpmpvpay), outbuf);
+    gst_buffer_list_add (list, outbuf);
   }
 
+  ret = gst_rtp_base_payload_push_list (GST_RTP_BASE_PAYLOAD (rtpmpvpay), list);
+
   return ret;
 }
 
diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c
index 8f96250a0023c5f9dc982c36e1e01a67fabad9e0..5556dc071870a6622d40306b7b4aad6b4cdb56a9 100644
--- a/gst/rtp/gstrtppcmadepay.c
+++ b/gst/rtp/gstrtppcmadepay.c
@@ -25,7 +25,9 @@
 
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtppcmadepay.h"
+#include "gstrtputils.h"
 
 /* RtpPcmaDepay signals and args */
 enum
@@ -60,7 +62,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_pcma_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -87,7 +89,7 @@ gst_rtp_pcma_depay_class_init (GstRtpPcmaDepayClass * klass)
       "Extracts PCMA audio from RTP packets",
       "Edgard Lima <edgard.lima@indt.org.br>, Zeeshan Ali <zeenix@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_pcma_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_pcma_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_pcma_depay_setcaps;
 }
 
@@ -124,24 +126,20 @@ gst_rtp_pcma_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf = NULL;
   gboolean marker;
   guint len;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
-  len = gst_rtp_buffer_get_payload_len (&rtp);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  len = gst_rtp_buffer_get_payload_len (rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (outbuf) {
     GST_BUFFER_DURATION (outbuf) =
@@ -151,8 +149,10 @@ gst_rtp_pcma_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       /* mark start of talkspurt with RESYNC */
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
-  }
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
 
   return outbuf;
 }
diff --git a/gst/rtp/gstrtppcmapay.c b/gst/rtp/gstrtppcmapay.c
index 7ec7e592b4705a1c27d162dc06868ca8d327dd23..0860d760beae170c9d354c7e008ff8577f405601 100644
--- a/gst/rtp/gstrtppcmapay.c
+++ b/gst/rtp/gstrtppcmapay.c
@@ -86,6 +86,7 @@ gst_rtp_pcma_pay_init (GstRtpPcmaPay * rtppcmapay)
 
   rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (rtppcmapay);
 
+  GST_RTP_BASE_PAYLOAD (rtppcmapay)->pt = GST_RTP_PAYLOAD_PCMA;
   GST_RTP_BASE_PAYLOAD (rtppcmapay)->clock_rate = 8000;
 
   /* tell rtpbaseaudiopayload that this is a sample based codec */
@@ -100,9 +101,8 @@ gst_rtp_pcma_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
 
-  payload->pt = GST_RTP_PAYLOAD_PCMA;
-
-  gst_rtp_base_payload_set_options (payload, "audio", FALSE, "PCMA", 8000);
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_PCMA, "PCMA", 8000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c
index e75c2822f28529c91627c6e202394611de1b0983..450ca9e87ee2067ea9050cb9df83d276a0aebed1 100644
--- a/gst/rtp/gstrtppcmudepay.c
+++ b/gst/rtp/gstrtppcmudepay.c
@@ -25,7 +25,9 @@
 
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtppcmudepay.h"
+#include "gstrtputils.h"
 
 /* RtpPcmuDepay signals and args */
 enum
@@ -61,7 +63,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_pcmu_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -88,7 +90,7 @@ gst_rtp_pcmu_depay_class_init (GstRtpPcmuDepayClass * klass)
       "Extracts PCMU audio from RTP packets",
       "Edgard Lima <edgard.lima@indt.org.br>, Zeeshan Ali <zeenix@gmail.com>");
 
-  gstrtpbasedepayload_class->process = gst_rtp_pcmu_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_pcmu_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_pcmu_depay_setcaps;
 }
 
@@ -125,24 +127,20 @@ gst_rtp_pcmu_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf = NULL;
   guint len;
   gboolean marker;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  marker = gst_rtp_buffer_get_marker (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf), marker,
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer), marker,
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
-  len = gst_rtp_buffer_get_payload_len (&rtp);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  len = gst_rtp_buffer_get_payload_len (rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (outbuf) {
     GST_BUFFER_DURATION (outbuf) =
@@ -152,6 +150,9 @@ gst_rtp_pcmu_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       /* mark start of talkspurt with RESYNC */
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_RESYNC);
     }
+
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
   }
 
   return outbuf;
diff --git a/gst/rtp/gstrtppcmupay.c b/gst/rtp/gstrtppcmupay.c
index 3d69cb30283e2c0a5f0e1e344919b348f0ecdc13..b4beb963722cb503ddaec3411cc0b6d5f0b49a7b 100644
--- a/gst/rtp/gstrtppcmupay.c
+++ b/gst/rtp/gstrtppcmupay.c
@@ -86,6 +86,7 @@ gst_rtp_pcmu_pay_init (GstRtpPcmuPay * rtppcmupay)
 
   rtpbaseaudiopayload = GST_RTP_BASE_AUDIO_PAYLOAD (rtppcmupay);
 
+  GST_RTP_BASE_PAYLOAD (rtppcmupay)->pt = GST_RTP_PAYLOAD_PCMU;
   GST_RTP_BASE_PAYLOAD (rtppcmupay)->clock_rate = 8000;
 
   /* tell rtpbaseaudiopayload that this is a sample based codec */
@@ -100,9 +101,8 @@ gst_rtp_pcmu_pay_setcaps (GstRTPBasePayload * payload, GstCaps * caps)
 {
   gboolean res;
 
-  payload->pt = GST_RTP_PAYLOAD_PCMU;
-
-  gst_rtp_base_payload_set_options (payload, "audio", FALSE, "PCMU", 8000);
+  gst_rtp_base_payload_set_options (payload, "audio",
+      payload->pt != GST_RTP_PAYLOAD_PCMU, "PCMU", 8000);
   res = gst_rtp_base_payload_set_outcaps (payload, NULL);
 
   return res;
diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c
index a5f791f4afbb2673f1ef2057fca9ecb30e1404c9..58815dc6982e0cd9e07f93f3f802c8031483938b 100644
--- a/gst/rtp/gstrtpqcelpdepay.c
+++ b/gst/rtp/gstrtpqcelpdepay.c
@@ -22,10 +22,12 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <stdlib.h>
 #include <string.h>
 #include "gstrtpqcelpdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpqcelpdepay_debug);
 #define GST_CAT_DEFAULT (rtpqcelpdepay_debug)
@@ -74,7 +76,7 @@ static void gst_rtp_qcelp_depay_finalize (GObject * object);
 static gboolean gst_rtp_qcelp_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 #define gst_rtp_qcelp_depay_parent_class parent_class
 G_DEFINE_TYPE (GstRtpQCELPDepay, gst_rtp_qcelp_depay,
@@ -93,7 +95,7 @@ gst_rtp_qcelp_depay_class_init (GstRtpQCELPDepayClass * klass)
 
   gobject_class->finalize = gst_rtp_qcelp_depay_finalize;
 
-  gstrtpbasedepayload_class->process = gst_rtp_qcelp_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_qcelp_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_qcelp_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -248,7 +250,8 @@ create_erasure_buffer (GstRtpQCELPDepay * depay)
 }
 
 static GstBuffer *
-gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstRtpQCELPDepay *depay;
   GstBuffer *outbuf;
@@ -256,20 +259,17 @@ gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   guint payload_len, offset, index;
   guint8 *payload;
   guint LLL, NNN;
-  GstRTPBuffer rtp = { NULL };
 
   depay = GST_RTP_QCELP_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   if (payload_len < 2)
     goto too_small;
 
-  timestamp = GST_BUFFER_PTS (buf);
+  timestamp = GST_BUFFER_PTS (rtp->buffer);
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
   /*  0 1 2 3 4 5 6 7
    * +-+-+-+-+-+-+-+-+
@@ -351,12 +351,15 @@ gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       outbuf = create_erasure_buffer (depay);
     } else {
       /* each frame goes into its buffer */
-      outbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, offset, frame_len);
+      outbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, offset, frame_len);
     }
 
     GST_BUFFER_PTS (outbuf) = timestamp;
     GST_BUFFER_DURATION (outbuf) = FRAME_DURATION;
 
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+
     if (!depay->interleaved || index == 0) {
       /* not interleaved or first frame in packet, just push */
       gst_rtp_base_depayload_push (depayload, outbuf);
@@ -393,7 +396,6 @@ gst_rtp_qcelp_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     flush_packets (depay);
   }
 
-  gst_rtp_buffer_unmap (&rtp);
   return NULL;
 
   /* ERRORS */
@@ -401,28 +403,24 @@ too_small:
   {
     GST_ELEMENT_WARNING (depay, STREAM, DECODE,
         (NULL), ("QCELP RTP payload too small (%d)", payload_len));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_lll:
   {
     GST_ELEMENT_WARNING (depay, STREAM, DECODE,
         (NULL), ("QCELP RTP invalid LLL received (%d)", LLL));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_nnn:
   {
     GST_ELEMENT_WARNING (depay, STREAM, DECODE,
         (NULL), ("QCELP RTP invalid NNN received (%d)", NNN));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_frame:
   {
     GST_ELEMENT_WARNING (depay, STREAM, DECODE,
         (NULL), ("QCELP RTP invalid frame received"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c
index 3049f9b9e3733801d73705b5f460b0540ef6dedb..fc12c79ce37a6458e98a8cbab6c6b40574dd0eb3 100644
--- a/gst/rtp/gstrtpqdmdepay.c
+++ b/gst/rtp/gstrtpqdmdepay.c
@@ -24,7 +24,9 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpqdmdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY (rtpqdm2depay_debug);
 #define GST_CAT_DEFAULT rtpqdm2depay_debug
@@ -60,7 +62,7 @@ static GstStateChangeReturn gst_rtp_qdm2_depay_change_state (GstElement *
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 gboolean gst_rtp_qdm2_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 
@@ -75,7 +77,7 @@ gst_rtp_qdm2_depay_class_init (GstRtpQDM2DepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_qdm2_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_qdm2_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_qdm2_depay_setcaps;
 
   gobject_class->finalize = gst_rtp_qdm2_depay_finalize;
@@ -223,12 +225,11 @@ add_packet (GstRtpQDM2Depay * depay, guint32 pid, guint32 len, guint8 * data)
 }
 
 static GstBuffer *
-gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpQDM2Depay *rtpqdm2depay;
   GstBuffer *outbuf = NULL;
   guint16 seq;
-  GstRTPBuffer rtp = { NULL };
 
   rtpqdm2depay = GST_RTP_QDM2_DEPAY (depayload);
 
@@ -238,20 +239,19 @@ gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     guint avail;
     guint pos = 0;
 
-    gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-    payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+    payload_len = gst_rtp_buffer_get_payload_len (rtp);
     if (payload_len < 3)
       goto bad_packet;
 
-    payload = gst_rtp_buffer_get_payload (&rtp);
-    seq = gst_rtp_buffer_get_seq (&rtp);
+    payload = gst_rtp_buffer_get_payload (rtp);
+    seq = gst_rtp_buffer_get_seq (rtp);
     if (G_UNLIKELY (seq != rtpqdm2depay->nextseq)) {
       GST_DEBUG ("GAP in sequence number, Resetting data !");
       /* Flush previous data */
       flush_data (rtpqdm2depay);
       /* And store new timestamp */
       rtpqdm2depay->ptimestamp = rtpqdm2depay->timestamp;
-      rtpqdm2depay->timestamp = GST_BUFFER_PTS (buf);
+      rtpqdm2depay->timestamp = GST_BUFFER_PTS (rtp->buffer);
       /* And that previous data will be pushed at the bottom */
     }
     rtpqdm2depay->nextseq = seq + 1;
@@ -273,7 +273,7 @@ gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
           GST_DEBUG ("Headers");
           /* Store the incoming timestamp */
           rtpqdm2depay->ptimestamp = rtpqdm2depay->timestamp;
-          rtpqdm2depay->timestamp = GST_BUFFER_PTS (buf);
+          rtpqdm2depay->timestamp = GST_BUFFER_PTS (rtp->buffer);
           /* flush the internal data if needed */
           flush_data (rtpqdm2depay);
           if (G_UNLIKELY (!rtpqdm2depay->configured)) {
@@ -362,7 +362,6 @@ gst_rtp_qdm2_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
   }
 
-  gst_rtp_buffer_unmap (&rtp);
   return outbuf;
 
   /* ERRORS */
@@ -370,7 +369,6 @@ bad_packet:
   {
     GST_ELEMENT_WARNING (rtpqdm2depay, STREAM, DECODE,
         (NULL), ("Packet was too short"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c
index 28c00fcfd75f94d24c3acab29de0f098b8cf3444..4863fc8247686393f5d456f6b48bac641c051469 100644
--- a/gst/rtp/gstrtpsbcdepay.c
+++ b/gst/rtp/gstrtpsbcdepay.c
@@ -25,7 +25,9 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpsbcdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpsbcdepay_debug);
 #define GST_CAT_DEFAULT (rtpsbcdepay_debug)
@@ -59,7 +61,7 @@ static void gst_rtp_sbc_depay_finalize (GObject * object);
 static gboolean gst_rtp_sbc_depay_setcaps (GstRTPBaseDepayload * base,
     GstCaps * caps);
 static GstBuffer *gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base,
-    GstBuffer * in);
+    GstRTPBuffer * rtp);
 
 static void
 gst_rtp_sbc_depay_class_init (GstRtpSbcDepayClass * klass)
@@ -72,7 +74,7 @@ gst_rtp_sbc_depay_class_init (GstRtpSbcDepayClass * klass)
   gobject_class->finalize = gst_rtp_sbc_depay_finalize;
 
   gstbasertpdepayload_class->set_caps = gst_rtp_sbc_depay_setcaps;
-  gstbasertpdepayload_class->process = gst_rtp_sbc_depay_process;
+  gstbasertpdepayload_class->process_rtp_packet = gst_rtp_sbc_depay_process;
 
   gst_element_class_add_pad_template (element_class,
       gst_static_pad_template_get (&gst_rtp_sbc_depay_src_template));
@@ -189,30 +191,27 @@ bad_caps:
 }
 
 static GstBuffer *
-gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
+gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstRTPBuffer * rtp)
 {
   GstRtpSbcDepay *depay = GST_RTP_SBC_DEPAY (base);
   GstBuffer *data = NULL;
-  GstRTPBuffer rtp = { NULL };
 
   gboolean fragment, start, last;
   guint8 nframes;
   guint8 *payload;
   guint payload_len;
 
-  gst_rtp_buffer_map (in, GST_MAP_READ, &rtp);
-
   GST_LOG_OBJECT (depay, "Got %" G_GSIZE_FORMAT " bytes",
-      gst_buffer_get_size (in));
+      gst_buffer_get_size (rtp->buffer));
 
-  if (gst_rtp_buffer_get_marker (&rtp)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     /* Marker isn't supposed to be set */
     GST_WARNING_OBJECT (depay, "Marker bit was set");
     goto bad_packet;
   }
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   fragment = payload[0] & 0x80;
   start = payload[0] & 0x40;
@@ -222,7 +221,7 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
   payload += 1;
   payload_len -= 1;
 
-  data = gst_rtp_buffer_get_payload_subbuffer (&rtp, 1, -1);
+  data = gst_rtp_buffer_get_payload_subbuffer (rtp, 1, -1);
 
   if (fragment) {
     /* Got a packet with a fragment */
@@ -244,6 +243,8 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
     if (last) {
       data = gst_adapter_take_buffer (depay->adapter,
           gst_adapter_available (depay->adapter));
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (depay), data,
+          g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
     } else
       data = NULL;
 
@@ -270,7 +271,6 @@ gst_rtp_sbc_depay_process (GstRTPBaseDepayload * base, GstBuffer * in)
   }
 
 out:
-  gst_rtp_buffer_unmap (&rtp);
   return data;
 
 bad_packet:
diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c
index 7c4d3dab2044371c9cc3777e0da84ff29e363d4d..70cde09157456c1fa0e850f73ec06691e14f975f 100644
--- a/gst/rtp/gstrtpsbcpay.c
+++ b/gst/rtp/gstrtpsbcpay.c
@@ -23,9 +23,11 @@
 #include <config.h>
 #endif
 
+#include <gst/audio/audio.h>
 #include "gstrtpsbcpay.h"
 #include <math.h>
 #include <string.h>
+#include "gstrtputils.h"
 
 #define RTP_SBC_PAYLOAD_HEADER_SIZE 1
 #define DEFAULT_MIN_FRAMES 0
@@ -160,7 +162,7 @@ gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay)
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
   guint available;
   guint max_payload;
-  GstBuffer *outbuf;
+  GstBuffer *outbuf, *paybuf;
   guint8 *payload_data;
   guint frame_count;
   guint payload_length;
@@ -183,8 +185,7 @@ gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay)
   if (payload_length == 0)      /* Nothing to send */
     return GST_FLOW_OK;
 
-  outbuf = gst_rtp_buffer_new_allocate (payload_length +
-      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
+  outbuf = gst_rtp_buffer_new_allocate (RTP_SBC_PAYLOAD_HEADER_SIZE, 0, 0);
 
   /* get payload */
   gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
@@ -197,12 +198,12 @@ gst_rtp_sbc_pay_flush_buffers (GstRtpSBCPay * sbcpay)
   memset (payload, 0, sizeof (struct rtp_payload));
   payload->frame_count = frame_count;
 
-  gst_adapter_copy (sbcpay->adapter, payload_data +
-      RTP_SBC_PAYLOAD_HEADER_SIZE, 0, payload_length);
-
   gst_rtp_buffer_unmap (&rtp);
 
-  gst_adapter_flush (sbcpay->adapter, payload_length);
+  paybuf = gst_adapter_take_buffer_fast (sbcpay->adapter, payload_length);
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (sbcpay), outbuf, paybuf,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  outbuf = gst_buffer_append (outbuf, paybuf);
 
   /* FIXME: what about duration? */
   GST_BUFFER_PTS (outbuf) = sbcpay->timestamp;
diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c
index 1bbbda7887f55d67a580c6863c2523dc91f5799a..d5e95eb41ebf638dc0c5506ca23748908d936224 100644
--- a/gst/rtp/gstrtpsirendepay.c
+++ b/gst/rtp/gstrtpsirendepay.c
@@ -26,7 +26,9 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 #include "gstrtpsirendepay.h"
+#include "gstrtputils.h"
 
 static GstStaticPadTemplate gst_rtp_siren_depay_sink_template =
 GST_STATIC_PAD_TEMPLATE ("sink",
@@ -34,29 +36,27 @@ GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
         "media = (string) \"audio\", "
-        "clock-rate = (int) 16000, "
-        "encoding-name = (string) \"SIREN\"")
+        "clock-rate = (int) 16000, " "encoding-name = (string) \"SIREN\"")
     /* This is the default, so the peer doesn't have to specify it */
     /*  " "dct-length = (int) 320") */
     );
 
-static GstStaticPadTemplate gst_rtp_siren_depay_src_template =
-GST_STATIC_PAD_TEMPLATE ("src",
+     static GstStaticPadTemplate gst_rtp_siren_depay_src_template =
+         GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/x-siren, " "dct-length = (int) 320")
     );
 
-static GstBuffer *gst_rtp_siren_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
-static gboolean gst_rtp_siren_depay_setcaps (GstRTPBaseDepayload * depayload,
-    GstCaps * caps);
+     static GstBuffer *gst_rtp_siren_depay_process (GstRTPBaseDepayload *
+    depayload, GstRTPBuffer * rtp);
+     static gboolean gst_rtp_siren_depay_setcaps (GstRTPBaseDepayload *
+    depayload, GstCaps * caps);
 
 G_DEFINE_TYPE (GstRTPSirenDepay, gst_rtp_siren_depay,
     GST_TYPE_RTP_BASE_DEPAYLOAD);
 
-static void
-gst_rtp_siren_depay_class_init (GstRTPSirenDepayClass * klass)
+     static void gst_rtp_siren_depay_class_init (GstRTPSirenDepayClass * klass)
 {
   GstElementClass *gstelement_class;
   GstRTPBaseDepayloadClass *gstrtpbasedepayload_class;
@@ -64,7 +64,7 @@ gst_rtp_siren_depay_class_init (GstRTPSirenDepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_siren_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_siren_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_siren_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -103,14 +103,17 @@ gst_rtp_siren_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_siren_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_siren_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf;
-  GstRTPBuffer rtp = { NULL };
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
+
+  if (outbuf) {
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
 
   return outbuf;
 }
diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c
index efe7357ea4d9543e58c752ecd5e785a2de8bb625..eb9d8e4009114711dac391d39d31f67e54f10f87 100644
--- a/gst/rtp/gstrtpspeexdepay.c
+++ b/gst/rtp/gstrtpspeexdepay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 #include <stdlib.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpspeexdepay.h"
+#include "gstrtputils.h"
 
 /* RtpSPEEXDepay signals and args */
 enum
@@ -58,7 +60,7 @@ GST_STATIC_PAD_TEMPLATE ("src",
     );
 
 static GstBuffer *gst_rtp_speex_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_speex_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 
@@ -74,7 +76,7 @@ gst_rtp_speex_depay_class_init (GstRtpSPEEXDepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_speex_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_speex_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_speex_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -195,24 +197,24 @@ no_clockrate:
 }
 
 static GstBuffer *
-gst_rtp_speex_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_speex_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstBuffer *outbuf = NULL;
-  GstRTPBuffer rtp = { NULL };
-
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
 
   GST_DEBUG ("process : got %" G_GSIZE_FORMAT " bytes, mark %d ts %u seqn %d",
-      gst_buffer_get_size (buf),
-      gst_rtp_buffer_get_marker (&rtp),
-      gst_rtp_buffer_get_timestamp (&rtp), gst_rtp_buffer_get_seq (&rtp));
+      gst_buffer_get_size (rtp->buffer),
+      gst_rtp_buffer_get_marker (rtp),
+      gst_rtp_buffer_get_timestamp (rtp), gst_rtp_buffer_get_seq (rtp));
 
   /* nothing special to be done */
-  outbuf = gst_rtp_buffer_get_payload_buffer (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
-  if (outbuf)
+  if (outbuf) {
     GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND;
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (depayload), outbuf,
+        g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  }
 
   return outbuf;
 }
diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c
index 842389416bfa79162519dc7c4d7a2ca7ecc64e9a..4ba86ba93ffad864b5be6f9dd522024a498336ec 100644
--- a/gst/rtp/gstrtpspeexpay.c
+++ b/gst/rtp/gstrtpspeexpay.c
@@ -24,8 +24,10 @@
 #include <stdlib.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "gstrtpspeexpay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpspeexpay_debug);
 #define GST_CAT_DEFAULT (rtpspeexpay_debug)
@@ -236,13 +238,10 @@ gst_rtp_speex_pay_handle_buffer (GstRTPBasePayload * basepayload,
     GstBuffer * buffer)
 {
   GstRtpSPEEXPay *rtpspeexpay;
-  guint payload_len;
   GstMapInfo map;
   GstBuffer *outbuf;
-  guint8 *payload;
   GstClockTime timestamp, duration;
   GstFlowReturn ret;
-  GstRTPBuffer rtp = { NULL };
 
   rtpspeexpay = GST_RTP_SPEEX_PAY (basepayload);
 
@@ -252,19 +251,24 @@ gst_rtp_speex_pay_handle_buffer (GstRTPBasePayload * basepayload,
     case 0:
       /* ident packet. We need to parse the headers to construct the RTP
        * properties. */
-      if (!gst_rtp_speex_pay_parse_ident (rtpspeexpay, map.data, map.size))
+      if (!gst_rtp_speex_pay_parse_ident (rtpspeexpay, map.data, map.size)) {
+        gst_buffer_unmap (buffer, &map);
         goto parse_error;
+      }
 
       ret = GST_FLOW_OK;
+      gst_buffer_unmap (buffer, &map);
       goto done;
     case 1:
       /* comment packet, we ignore it */
       ret = GST_FLOW_OK;
+      gst_buffer_unmap (buffer, &map);
       goto done;
     default:
       /* other packets go in the payload */
       break;
   }
+  gst_buffer_unmap (buffer, &map);
 
   if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_GAP)) {
     ret = GST_FLOW_OK;
@@ -275,30 +279,26 @@ gst_rtp_speex_pay_handle_buffer (GstRTPBasePayload * basepayload,
   duration = GST_BUFFER_DURATION (buffer);
 
   /* FIXME, only one SPEEX frame per RTP packet for now */
-  payload_len = map.size;
 
-  outbuf = gst_rtp_buffer_new_allocate (payload_len, 0, 0);
+  outbuf = gst_rtp_buffer_new_allocate (0, 0, 0);
   /* FIXME, assert for now */
-  g_assert (payload_len <= GST_RTP_BASE_PAYLOAD_MTU (rtpspeexpay));
+  g_assert (gst_buffer_get_size (buffer) <=
+      GST_RTP_BASE_PAYLOAD_MTU (rtpspeexpay));
 
   /* copy timestamp and duration */
   GST_BUFFER_PTS (outbuf) = timestamp;
   GST_BUFFER_DURATION (outbuf) = duration;
 
-  gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
-  /* get payload */
-  payload = gst_rtp_buffer_get_payload (&rtp);
-
-  /* copy data in payload */
-  memcpy (&payload[0], map.data, map.size);
-
-  gst_rtp_buffer_unmap (&rtp);
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (basepayload), outbuf, buffer,
+      g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+  outbuf = gst_buffer_append (outbuf, buffer);
+  buffer = NULL;
 
   ret = gst_rtp_base_payload_push (basepayload, outbuf);
 
 done:
-  gst_buffer_unmap (buffer, &map);
-  gst_buffer_unref (buffer);
+  if (buffer)
+    gst_buffer_unref (buffer);
 
   rtpspeexpay->packet++;
 
@@ -309,7 +309,6 @@ parse_error:
   {
     GST_ELEMENT_ERROR (rtpspeexpay, STREAM, DECODE, (NULL),
         ("Error parsing first identification packet."));
-    gst_buffer_unmap (buffer, &map);
     gst_buffer_unref (buffer);
     return GST_FLOW_ERROR;
   }
diff --git a/gst/rtp/gstrtpstreamdepay.c b/gst/rtp/gstrtpstreamdepay.c
index 26a2e328713701c398988aac299442fa6dda4386..699b15cf7a5aedaa730dfd534ddcb7e9afb600cf 100644
--- a/gst/rtp/gstrtpstreamdepay.c
+++ b/gst/rtp/gstrtpstreamdepay.c
@@ -64,6 +64,9 @@ static GstCaps *gst_rtp_stream_depay_get_sink_caps (GstBaseParse * parse,
 static GstFlowReturn gst_rtp_stream_depay_handle_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame, gint * skipsize);
 
+static gboolean gst_rtp_stream_depay_sink_activate (GstPad * pad,
+    GstObject * parent);
+
 static void
 gst_rtp_stream_depay_class_init (GstRtpStreamDepayClass * klass)
 {
@@ -95,6 +98,11 @@ static void
 gst_rtp_stream_depay_init (GstRtpStreamDepay * self)
 {
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (self), 2);
+
+  /* Force activation in push mode. We need to get a caps event from upstream
+   * to know the full RTP caps. */
+  gst_pad_set_activate_function (GST_BASE_PARSE_SINK_PAD (self),
+      gst_rtp_stream_depay_sink_activate);
 }
 
 static gboolean
@@ -211,6 +219,12 @@ gst_rtp_stream_depay_handle_frame (GstBaseParse * parse,
   return gst_base_parse_finish_frame (parse, frame, size + 2);
 }
 
+static gboolean
+gst_rtp_stream_depay_sink_activate (GstPad * pad, GstObject * parent)
+{
+  return gst_pad_activate_mode (pad, GST_PAD_MODE_PUSH, TRUE);
+}
+
 gboolean
 gst_rtp_stream_depay_plugin_init (GstPlugin * plugin)
 {
diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c
index aeaa63ea1b9f808ee5525c2cc2b883680ee0cf32..7900dece06d7bec8b18085fcb49560d6866d9c92 100644
--- a/gst/rtp/gstrtpsv3vdepay.c
+++ b/gst/rtp/gstrtpsv3vdepay.c
@@ -24,7 +24,9 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 #include "gstrtpsv3vdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY (rtpsv3vdepay_debug);
 #define GST_CAT_DEFAULT rtpsv3vdepay_debug
@@ -56,7 +58,7 @@ static GstStateChangeReturn gst_rtp_sv3v_depay_change_state (GstElement *
     element, GstStateChange transition);
 
 static GstBuffer *gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 gboolean gst_rtp_sv3v_depay_setcaps (GstRTPBaseDepayload * filter,
     GstCaps * caps);
 
@@ -71,7 +73,7 @@ gst_rtp_sv3v_depay_class_init (GstRtpSV3VDepayClass * klass)
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gstrtpbasedepayload_class->process = gst_rtp_sv3v_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_sv3v_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_sv3v_depay_setcaps;
 
   gobject_class->finalize = gst_rtp_sv3v_depay_finalize;
@@ -125,7 +127,7 @@ gst_rtp_sv3v_depay_setcaps (GstRTPBaseDepayload * filter, GstCaps * caps)
 }
 
 static GstBuffer *
-gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstRTPBuffer * rtp)
 {
   GstRtpSV3VDepay *rtpsv3vdepay;
   static struct
@@ -147,17 +149,15 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   gboolean C, S, E;
   GstBuffer *outbuf = NULL;
   guint16 seq;
-  GstRTPBuffer rtp = { NULL };
 
   rtpsv3vdepay = GST_RTP_SV3V_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
 
   /* flush on sequence number gaps */
-  seq = gst_rtp_buffer_get_seq (&rtp);
+  seq = gst_rtp_buffer_get_seq (rtp);
 
   GST_DEBUG ("timestamp %" GST_TIME_FORMAT ", sequence number:%d",
-      GST_TIME_ARGS (GST_BUFFER_PTS (buf)), seq);
+      GST_TIME_ARGS (GST_BUFFER_PTS (rtp->buffer)), seq);
 
   if (seq != rtpsv3vdepay->nextseq) {
     GST_DEBUG ("Sequence discontinuity, clearing adapter");
@@ -165,13 +165,13 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   }
   rtpsv3vdepay->nextseq = seq + 1;
 
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
   if (payload_len < 3)
     goto bad_packet;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
-  M = gst_rtp_buffer_get_marker (&rtp);
+  M = gst_rtp_buffer_get_marker (rtp);
 
   /* This is all a guess:
    *                      1 1 1 1 1 1
@@ -255,7 +255,7 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 
     GST_DEBUG ("Storing incoming payload");
     /* store data in adapter, stip off 2 bytes header */
-    tmpbuf = gst_rtp_buffer_get_payload_subbuffer (&rtp, 2, -1);
+    tmpbuf = gst_rtp_buffer_get_payload_subbuffer (rtp, 2, -1);
     gst_adapter_push (rtpsv3vdepay->adapter, tmpbuf);
 
     if (G_UNLIKELY (M)) {
@@ -265,11 +265,12 @@ gst_rtp_sv3v_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       avail = gst_adapter_available (rtpsv3vdepay->adapter);
       GST_DEBUG ("Returning completed output buffer [%d bytes]", avail);
       outbuf = gst_adapter_take_buffer (rtpsv3vdepay->adapter, avail);
+      gst_rtp_drop_meta (GST_ELEMENT_CAST (rtpsv3vdepay), outbuf,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
     }
   }
 
 beach:
-  gst_rtp_buffer_unmap (&rtp);
   return outbuf;
 
   /* ERRORS */
@@ -277,7 +278,6 @@ bad_packet:
   {
     GST_ELEMENT_WARNING (rtpsv3vdepay, STREAM, DECODE,
         (NULL), ("Packet was too short"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c
index ccfe12dbdd8dbb9c7ccb369844c99a75409940de..5061de6f9718862783f241e6e7ae07f86e7be4ec 100644
--- a/gst/rtp/gstrtptheoradepay.c
+++ b/gst/rtp/gstrtptheoradepay.c
@@ -23,9 +23,11 @@
 
 #include <gst/tag/tag.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <string.h>
 #include "gstrtptheoradepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtptheoradepay_debug);
 #define GST_CAT_DEFAULT (rtptheoradepay_debug)
@@ -66,7 +68,7 @@ G_DEFINE_TYPE (GstRtpTheoraDepay, gst_rtp_theora_depay,
 static gboolean gst_rtp_theora_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static gboolean gst_rtp_theora_depay_packet_lost (GstRTPBaseDepayload *
     depayload, GstEvent * event);
 
@@ -85,7 +87,7 @@ gst_rtp_theora_depay_class_init (GstRtpTheoraDepayClass * klass)
 
   gobject_class->finalize = gst_rtp_theora_depay_finalize;
 
-  gstrtpbasedepayload_class->process = gst_rtp_theora_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_theora_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_theora_depay_setcaps;
   gstrtpbasedepayload_class->packet_lost = gst_rtp_theora_depay_packet_lost;
 
@@ -253,8 +255,9 @@ gst_rtp_theora_depay_parse_configuration (GstRtpTheoraDepay * rtptheoradepay,
       GST_DEBUG_OBJECT (rtptheoradepay, "reading header %d, size %u", j,
           h_size);
 
-      buf = gst_buffer_new_and_alloc (h_size);
-      gst_buffer_fill (buf, 0, data, h_size);
+      buf =
+          gst_buffer_copy_region (confbuf, GST_BUFFER_COPY_ALL, data - map.data,
+          h_size);
       conf->headers = g_list_append (conf->headers, buf);
       data += h_size;
       size -= h_size;
@@ -388,23 +391,24 @@ gst_rtp_theora_depay_switch_codebook (GstRtpTheoraDepay * rtptheoradepay,
 }
 
 static GstBuffer *
-gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstRtpTheoraDepay *rtptheoradepay;
   GstBuffer *outbuf;
   GstFlowReturn ret;
   gint payload_len;
-  guint8 *payload, *to_free = NULL;
+  GstMapInfo map;
+  GstBuffer *payload_buffer = NULL;
+  guint8 *payload;
   guint32 header, ident;
   guint8 F, TDT, packets;
-  GstRTPBuffer rtp = { NULL };
   guint length;
 
   rtptheoradepay = GST_RTP_THEORA_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   GST_DEBUG_OBJECT (depayload, "got RTP packet of size %d", payload_len);
 
@@ -412,7 +416,7 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   if (G_UNLIKELY (payload_len < 4))
     goto packet_short;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
 
   header = GST_READ_UINT32_BE (payload);
   /*
@@ -455,10 +459,6 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
   }
 
-  /* skip header */
-  payload += 4;
-  payload_len -= 4;
-
   /* fragmented packets, assemble */
   if (F != 0) {
     GstBuffer *vdata;
@@ -477,7 +477,7 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     /* first assembled packet, reuse 2 bytes to store the length */
     headerskip = (F == 1 ? 4 : 6);
     /* skip header and length. */
-    vdata = gst_rtp_buffer_get_payload_subbuffer (&rtp, headerskip, -1);
+    vdata = gst_rtp_buffer_get_payload_subbuffer (rtp, headerskip, -1);
 
     GST_DEBUG_OBJECT (depayload, "assemble theora packet");
     gst_adapter_push (rtptheoradepay->adapter, vdata);
@@ -487,20 +487,18 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       goto no_output;
 
     /* construct assembled buffer */
-    payload_len = gst_adapter_available (rtptheoradepay->adapter);
-    payload = gst_adapter_take (rtptheoradepay->adapter, payload_len);
-
-    /* use this length */
-    length = payload_len - 2;
-
-    to_free = payload;
+    payload_buffer =
+        gst_adapter_take_buffer (rtptheoradepay->adapter, payload_len);
   } else {
-    /* read length from data */
-    length = 0;
+    payload_buffer = gst_rtp_buffer_get_payload_subbuffer (rtp, 4, -1);
   }
 
   GST_DEBUG_OBJECT (depayload, "assemble done, payload_len %d", payload_len);
 
+  gst_buffer_map (payload_buffer, &map, GST_MAP_READ);
+  payload = map.data;
+  payload_len = map.size;
+
   /* we not assembling anymore now */
   rtptheoradepay->assembling = FALSE;
   gst_adapter_clear (rtptheoradepay->adapter);
@@ -521,9 +519,6 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*
    */
   while (payload_len >= 2) {
-    if (length == 0)
-      length = GST_READ_UINT16_BE (payload);
-
     payload += 2;
     payload_len -= 2;
 
@@ -544,15 +539,9 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
 
     /* create buffer for packet */
-    if (G_UNLIKELY (to_free)) {
-      outbuf =
-          gst_buffer_new_wrapped_full (0, to_free, (payload - to_free) + length,
-          payload - to_free, length, to_free, g_free);
-      to_free = NULL;
-    } else {
-      outbuf = gst_buffer_new_and_alloc (length);
-      gst_buffer_fill (outbuf, 0, payload, length);
-    }
+    outbuf =
+        gst_buffer_copy_region (payload_buffer, GST_BUFFER_COPY_ALL,
+        payload - map.data, length);
 
     if (payload_len > 0 && (payload[0] & 0xC0) == 0x0) {
       rtptheoradepay->needs_keyframe = FALSE;
@@ -576,8 +565,11 @@ gst_rtp_theora_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
 out:
 no_output:
 
-  gst_rtp_buffer_unmap (&rtp);
-  g_free (to_free);
+  if (payload_buffer) {
+    gst_buffer_unmap (payload_buffer, &map);
+    gst_buffer_unref (payload_buffer);
+  }
+
   return NULL;
 
   /* ERORRS */
diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c
index dc8ae8e75421d64e9fe635b9abf12ec1f94bcddc..702483560db8264a279100572ab682ae3fd629a3 100644
--- a/gst/rtp/gstrtptheorapay.c
+++ b/gst/rtp/gstrtptheorapay.c
@@ -24,9 +24,11 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "fnv1hash.h"
 #include "gstrtptheorapay.h"
+#include "gstrtputils.h"
 
 #define THEORA_ID_LEN	42
 
@@ -151,6 +153,11 @@ gst_rtp_theora_pay_clear_packet (GstRtpTheoraPay * rtptheorapay)
   if (rtptheorapay->packet)
     gst_buffer_unref (rtptheorapay->packet);
   rtptheorapay->packet = NULL;
+
+  g_list_foreach (rtptheorapay->packet_buffers, (GFunc) gst_mini_object_unref,
+      NULL);
+  g_list_free (rtptheorapay->packet_buffers);
+  rtptheorapay->packet_buffers = NULL;
 }
 
 static void
@@ -279,6 +286,11 @@ gst_rtp_theora_pay_init_packet (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
   if (rtptheorapay->packet)
     gst_buffer_unref (rtptheorapay->packet);
 
+  g_list_foreach (rtptheorapay->packet_buffers, (GFunc) gst_mini_object_unref,
+      NULL);
+  g_list_free (rtptheorapay->packet_buffers);
+  rtptheorapay->packet_buffers = NULL;
+
   /* new packet allocate max packet size */
   rtptheorapay->packet =
       gst_rtp_buffer_new_allocate_len (GST_RTP_BASE_PAYLOAD_MTU
@@ -295,6 +307,7 @@ gst_rtp_theora_pay_flush_packet (GstRtpTheoraPay * rtptheorapay)
   guint8 *payload;
   guint hlen;
   GstRTPBuffer rtp = { NULL };
+  GList *l;
 
   /* check for empty packet */
   if (!rtptheorapay->packet || rtptheorapay->payload_pos <= 4)
@@ -332,6 +345,15 @@ gst_rtp_theora_pay_flush_packet (GstRtpTheoraPay * rtptheorapay)
 
   GST_BUFFER_DURATION (rtptheorapay->packet) = rtptheorapay->payload_duration;
 
+  for (l = g_list_last (rtptheorapay->packet_buffers); l; l = l->prev) {
+    GstBuffer *buf = GST_BUFFER_CAST (l->data);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtptheorapay), rtptheorapay->packet,
+        buf, g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    gst_buffer_unref (buf);
+  }
+  g_list_free (rtptheorapay->packet_buffers);
+  rtptheorapay->packet_buffers = NULL;
+
   /* push, this gives away our ref to the packet, so clear it. */
   ret =
       gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtptheorapay),
@@ -351,6 +373,7 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
   guint8 *data, *config;
   guint32 ident;
   gboolean res;
+  const gchar *sampling = NULL;
 
   GST_DEBUG_OBJECT (rtptheorapay, "finish headers");
 
@@ -497,10 +520,7 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
 
     gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf));
     data += gst_buffer_get_size (buf);
-    gst_buffer_unref (buf);
   }
-  g_list_free (rtptheorapay->headers);
-  rtptheorapay->headers = NULL;
   rtptheorapay->need_headers = FALSE;
 
   /* serialize to base64 */
@@ -518,13 +538,27 @@ gst_rtp_theora_pay_finish_headers (GstRTPBasePayload * basepayload)
   g_free (config);
 
   /* configure payloader settings */
+  switch (rtptheorapay->pixel_format) {
+    case 2:
+      sampling = "YCbCr-4:2:2";
+      break;
+    case 3:
+      sampling = "YCbCr-4:4:4";
+      break;
+    case 0:
+    default:
+      sampling = "YCbCr-4:2:0";
+      break;
+  }
+
+
   wstr = g_strdup_printf ("%d", rtptheorapay->width);
   hstr = g_strdup_printf ("%d", rtptheorapay->height);
   gst_rtp_base_payload_set_options (basepayload, "video", TRUE, "THEORA",
       90000);
   res =
       gst_rtp_base_payload_set_outcaps (basepayload, "sampling", G_TYPE_STRING,
-      "YCbCr-4:2:0", "width", G_TYPE_STRING, wstr, "height", G_TYPE_STRING,
+      sampling, "width", G_TYPE_STRING, wstr, "height", G_TYPE_STRING,
       hstr, "configuration", G_TYPE_STRING, configuration, "delivery-method",
       G_TYPE_STRING, "inline",
       /* don't set the other defaults 
@@ -549,7 +583,7 @@ gst_rtp_theora_pay_parse_id (GstRTPBasePayload * basepayload, guint8 * data,
     guint size)
 {
   GstRtpTheoraPay *rtptheorapay;
-  gint width, height;
+  gint width, height, pixel_format;
 
   rtptheorapay = GST_RTP_THEORA_PAY (basepayload);
 
@@ -569,11 +603,12 @@ gst_rtp_theora_pay_parse_id (GstRTPBasePayload * basepayload, guint8 * data,
   width = GST_READ_UINT16_BE (data) << 4;
   data += 2;
   height = GST_READ_UINT16_BE (data) << 4;
-  data += 2;
+  data += 29;
 
-  /* FIXME, parse pixel format */
+  pixel_format = (GST_READ_UINT8 (data) >> 3) & 0x03;
 
   /* store values */
+  rtptheorapay->pixel_format = pixel_format;
   rtptheorapay->width = width;
   rtptheorapay->height = height;
 
@@ -603,8 +638,8 @@ invalid_version:
 
 static GstFlowReturn
 gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
-    guint8 * data, guint size, GstClockTime timestamp, GstClockTime duration,
-    guint not_in_length)
+    GstBuffer * buffer, guint8 * data, guint size, GstClockTime timestamp,
+    GstClockTime duration, guint not_in_length)
 {
   GstFlowReturn ret = GST_FLOW_OK;
   guint newsize;
@@ -635,6 +670,9 @@ gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
   if (flush)
     ret = gst_rtp_theora_pay_flush_packet (rtptheorapay);
 
+  if (ret != GST_FLOW_OK)
+    goto done;
+
   /* create new packet if we must */
   if (!rtptheorapay->packet) {
     gst_rtp_theora_pay_init_packet (rtptheorapay, TDT, timestamp);
@@ -658,6 +696,21 @@ gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
     if (plen)
       memcpy (&ppos[2], data, plen);
 
+    if (buffer) {
+      if (!rtptheorapay->packet_buffers
+          || rtptheorapay->packet_buffers->data != (gpointer) buffer)
+        rtptheorapay->packet_buffers =
+            g_list_prepend (rtptheorapay->packet_buffers,
+            gst_buffer_ref (buffer));
+    } else {
+      GList *l;
+
+      for (l = rtptheorapay->headers; l; l = l->next)
+        rtptheorapay->packet_buffers =
+            g_list_prepend (rtptheorapay->packet_buffers,
+            gst_buffer_ref (buffer));
+    }
+
     /* only first (only) configuration cuts length field */
     /* NOTE: spec (if any) is not clear on this ... */
     not_in_length = 0;
@@ -704,10 +757,11 @@ gst_rtp_theora_pay_payload_buffer (GstRtpTheoraPay * rtptheorapay, guint8 TDT,
       if (duration != GST_CLOCK_TIME_NONE)
         rtptheorapay->payload_duration += duration;
     }
-  } while (size);
+  } while (size && ret == GST_FLOW_OK);
 
   if (rtp.buffer)
     gst_rtp_buffer_unmap (&rtp);
+done:
 
   return ret;
 }
@@ -770,15 +824,9 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload,
     rtptheorapay->headers = g_list_append (rtptheorapay->headers, buffer);
     ret = GST_FLOW_OK;
     goto done;
-  } else if (rtptheorapay->headers) {
-    if (rtptheorapay->need_headers) {
-      if (!gst_rtp_theora_pay_finish_headers (basepayload))
-        goto header_error;
-    } else {
-      g_list_free_full (rtptheorapay->headers,
-          (GDestroyNotify) gst_buffer_unref);
-      rtptheorapay->headers = NULL;
-    }
+  } else if (rtptheorapay->headers && rtptheorapay->need_headers) {
+    if (!gst_rtp_theora_pay_finish_headers (basepayload))
+      goto header_error;
   }
 
   /* there is a config request, see if we need to insert it */
@@ -819,7 +867,7 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload,
       /* we need to send config now first */
       /* different TDT type forces flush */
       gst_rtp_theora_pay_payload_buffer (rtptheorapay, 1,
-          rtptheorapay->config_data, rtptheorapay->config_size,
+          NULL, rtptheorapay->config_data, rtptheorapay->config_size,
           timestamp, GST_CLOCK_TIME_NONE, rtptheorapay->config_extra_len);
 
       if (timestamp != -1) {
@@ -828,7 +876,8 @@ gst_rtp_theora_pay_handle_buffer (GstRTPBasePayload * basepayload,
     }
   }
 
-  ret = gst_rtp_theora_pay_payload_buffer (rtptheorapay, TDT, data, size,
+  ret =
+      gst_rtp_theora_pay_payload_buffer (rtptheorapay, TDT, buffer, data, size,
       timestamp, duration, 0);
 
   gst_buffer_unmap (buffer, &map);
diff --git a/gst/rtp/gstrtptheorapay.h b/gst/rtp/gstrtptheorapay.h
index 0a1d4725d43cf010f036c7bfe0e57ac7672115b6..22bc01df19ffb09f89348d4cfd1b49d9abdd2fc2 100644
--- a/gst/rtp/gstrtptheorapay.h
+++ b/gst/rtp/gstrtptheorapay.h
@@ -50,6 +50,7 @@ struct _GstRtpTheoraPay
 
   /* queues of buffers along with some stats. */
   GstBuffer    *packet;
+  GList        *packet_buffers;
   guint         payload_pos;
   guint         payload_left;
   guint32       payload_ident;
@@ -66,6 +67,7 @@ struct _GstRtpTheoraPay
   guint         config_interval;
   GstClockTime  last_config;
 
+  gint          pixel_format;
   gint          width;
   gint          height;
 };
diff --git a/gst/rtp/gstrtputils.c b/gst/rtp/gstrtputils.c
new file mode 100644
index 0000000000000000000000000000000000000000..2b95c2950221975c9bb101cc3e6628fc77fdeab9
--- /dev/null
+++ b/gst/rtp/gstrtputils.c
@@ -0,0 +1,97 @@
+/* GStreamer
+ * Copyright (C) 2015 Sebastian Dröge <sebastian@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include "gstrtputils.h"
+
+typedef struct
+{
+  GstElement *element;
+  GstBuffer *outbuf;
+  GQuark copy_tag;
+} CopyMetaData;
+
+static gboolean
+foreach_metadata_copy (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  CopyMetaData *data = user_data;
+  GstElement *element = data->element;
+  GstBuffer *outbuf = data->outbuf;
+  GQuark copy_tag = data->copy_tag;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (copy_tag != 0 && g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api, copy_tag))) {
+    GstMetaTransformCopy copy_data = { FALSE, 0, -1 };
+    GST_DEBUG_OBJECT (element, "copy metadata %s", g_type_name (info->api));
+    /* simply copy then */
+    info->transform_func (outbuf, *meta, inbuf,
+        _gst_meta_transform_copy, &copy_data);
+  } else {
+    GST_DEBUG_OBJECT (element, "not copying metadata %s",
+        g_type_name (info->api));
+  }
+
+  return TRUE;
+}
+
+/* TODO: Should probably make copy_tag an array at some point */
+void
+gst_rtp_copy_meta (GstElement * element, GstBuffer * outbuf, GstBuffer * inbuf,
+    GQuark copy_tag)
+{
+  CopyMetaData data = { element, outbuf, copy_tag };
+
+  gst_buffer_foreach_meta (inbuf, foreach_metadata_copy, &data);
+}
+
+typedef struct
+{
+  GstElement *element;
+  GQuark keep_tag;
+} DropMetaData;
+
+static gboolean
+foreach_metadata_drop (GstBuffer * inbuf, GstMeta ** meta, gpointer user_data)
+{
+  DropMetaData *data = user_data;
+  GstElement *element = data->element;
+  GQuark keep_tag = data->keep_tag;
+  const GstMetaInfo *info = (*meta)->info;
+  const gchar *const *tags = gst_meta_api_type_get_tags (info->api);
+
+  if (!tags || (keep_tag != 0 && g_strv_length ((gchar **) tags) == 1
+          && gst_meta_api_type_has_tag (info->api, keep_tag))) {
+    GST_DEBUG_OBJECT (element, "keeping metadata %s", g_type_name (info->api));
+  } else {
+    GST_DEBUG_OBJECT (element, "dropping metadata %s", g_type_name (info->api));
+    *meta = NULL;
+  }
+
+  return TRUE;
+}
+
+/* TODO: Should probably make keep_tag an array at some point */
+void
+gst_rtp_drop_meta (GstElement * element, GstBuffer * buf, GQuark keep_tag)
+{
+  DropMetaData data = { element, keep_tag };
+
+  gst_buffer_foreach_meta (buf, foreach_metadata_drop, &data);
+}
diff --git a/gst/rtp/gstrtputils.h b/gst/rtp/gstrtputils.h
new file mode 100644
index 0000000000000000000000000000000000000000..d0b66fabcb3a72794078502dceecf4a2406d7f05
--- /dev/null
+++ b/gst/rtp/gstrtputils.h
@@ -0,0 +1,33 @@
+/* GStreamer
+ * Copyright (C) 2015 Sebastian Dröge <sebastian@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef __GST_RTP_UTILS_H__
+#define __GST_RTP_UTILS_H__
+
+#include <gst/gst.h>
+
+G_BEGIN_DECLS
+
+void gst_rtp_copy_meta (GstElement * element, GstBuffer *outbuf, GstBuffer *inbuf, GQuark copy_tag);
+void gst_rtp_drop_meta (GstElement * element, GstBuffer *buf, GQuark keep_tag);
+
+
+G_END_DECLS
+
+#endif /* __GST_RTP_UTILS_H__ */
diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c
index 313a6edf6c802fce5abd4599ed55c97b73a7d3f7..d71df1ea992a8e3387321bf6d8f0443d640df561 100644
--- a/gst/rtp/gstrtpvorbisdepay.c
+++ b/gst/rtp/gstrtpvorbisdepay.c
@@ -23,9 +23,11 @@
 
 #include <gst/tag/tag.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include <string.h>
 #include "gstrtpvorbisdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpvorbisdepay_debug);
 #define GST_CAT_DEFAULT (rtpvorbisdepay_debug)
@@ -63,7 +65,7 @@ G_DEFINE_TYPE (GstRtpVorbisDepay, gst_rtp_vorbis_depay,
 static gboolean gst_rtp_vorbis_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
 static GstBuffer *gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 
 static void gst_rtp_vorbis_depay_finalize (GObject * object);
 
@@ -85,7 +87,7 @@ gst_rtp_vorbis_depay_class_init (GstRtpVorbisDepayClass * klass)
 
   gstelement_class->change_state = gst_rtp_vorbis_depay_change_state;
 
-  gstrtpbasedepayload_class->process = gst_rtp_vorbis_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet = gst_rtp_vorbis_depay_process;
   gstrtpbasedepayload_class->set_caps = gst_rtp_vorbis_depay_setcaps;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -288,7 +290,7 @@ gst_rtp_vorbis_depay_parse_configuration (GstRtpVorbisDepay * rtpvorbisdepay,
       GST_DEBUG_OBJECT (rtpvorbisdepay, "reading header %d, size %u", j,
           h_size);
 
-      buf = gst_buffer_copy_region (confbuf, GST_BUFFER_COPY_MEMORY, offset,
+      buf = gst_buffer_copy_region (confbuf, GST_BUFFER_COPY_ALL, offset,
           h_size);
       conf->headers = g_list_append (conf->headers, buf);
       offset += h_size;
@@ -436,23 +438,24 @@ gst_rtp_vorbis_depay_switch_codebook (GstRtpVorbisDepay * rtpvorbisdepay,
 }
 
 static GstBuffer *
-gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstRtpVorbisDepay *rtpvorbisdepay;
   GstBuffer *outbuf;
   GstFlowReturn ret;
   gint payload_len;
-  guint8 *payload, *to_free = NULL;
+  GstBuffer *payload_buffer = NULL;
+  guint8 *payload;
+  GstMapInfo map;
   guint32 header, ident;
   guint8 F, VDT, packets;
-  GstRTPBuffer rtp = { NULL };
   guint length;
 
   rtpvorbisdepay = GST_RTP_VORBIS_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   GST_DEBUG_OBJECT (depayload, "got RTP packet of size %d", payload_len);
 
@@ -460,8 +463,6 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   if (G_UNLIKELY (payload_len < 4))
     goto packet_short;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
-
   header = GST_READ_UINT32_BE (payload);
   /*
    *  0                   1                   2                   3
@@ -503,10 +504,6 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
   }
 
-  /* skip header */
-  payload += 4;
-  payload_len -= 4;
-
   GST_DEBUG_OBJECT (depayload, "ident: %u, F: %d, VDT: %d, packets: %d", ident,
       F, VDT, packets);
 
@@ -528,7 +525,7 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     /* first assembled packet, reuse 2 bytes to store the length */
     headerskip = (F == 1 ? 4 : 6);
     /* skip header and length. */
-    vdata = gst_rtp_buffer_get_payload_subbuffer (&rtp, headerskip, -1);
+    vdata = gst_rtp_buffer_get_payload_subbuffer (rtp, headerskip, -1);
 
     GST_DEBUG_OBJECT (depayload, "assemble vorbis packet");
     gst_adapter_push (rtpvorbisdepay->adapter, vdata);
@@ -538,20 +535,18 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       goto no_output;
 
     /* construct assembled buffer */
-    payload_len = gst_adapter_available (rtpvorbisdepay->adapter);
-    payload = gst_adapter_take (rtpvorbisdepay->adapter, payload_len);
-
-    /* use this length */
-    length = payload_len - 2;
-
-    to_free = payload;
+    payload_buffer =
+        gst_adapter_take_buffer (rtpvorbisdepay->adapter, payload_len);
   } else {
-    /* read length from data */
-    length = 0;
+    payload_buffer = gst_rtp_buffer_get_payload_subbuffer (rtp, 4, -1);
   }
 
   GST_DEBUG_OBJECT (depayload, "assemble done");
 
+  gst_buffer_map (payload_buffer, &map, GST_MAP_READ);
+  payload = map.data;
+  payload_len = map.size;
+
   /* we not assembling anymore now */
   rtpvorbisdepay->assembling = FALSE;
   gst_adapter_clear (rtpvorbisdepay->adapter);
@@ -572,8 +567,7 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
    * +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+*
    */
   while (payload_len > 2) {
-    if (length == 0)
-      length = GST_READ_UINT16_BE (payload);
+    length = GST_READ_UINT16_BE (payload);
 
     payload += 2;
     payload_len -= 2;
@@ -595,17 +589,9 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     }
 
     /* create buffer for packet */
-    if (G_UNLIKELY (to_free)) {
-      outbuf = gst_buffer_new ();
-      gst_buffer_append_memory (outbuf,
-          gst_memory_new_wrapped (0, to_free,
-              (payload - to_free) + length, payload - to_free, length, to_free,
-              g_free));
-      to_free = NULL;
-    } else {
-      outbuf = gst_buffer_new_and_alloc (length);
-      gst_buffer_fill (outbuf, 0, payload, length);
-    }
+    outbuf =
+        gst_buffer_copy_region (payload_buffer, GST_BUFFER_COPY_ALL,
+        payload - map.data, length);
 
     payload += length;
     payload_len -= length;
@@ -617,15 +603,17 @@ gst_rtp_vorbis_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
       break;
   }
 
-  g_free (to_free);
-
-  gst_rtp_buffer_unmap (&rtp);
+  gst_buffer_unmap (payload_buffer, &map);
+  gst_buffer_unref (payload_buffer);
 
   return NULL;
 
 no_output:
   {
-    gst_rtp_buffer_unmap (&rtp);
+    if (payload_buffer) {
+      gst_buffer_unmap (payload_buffer, &map);
+      gst_buffer_unref (payload_buffer);
+    }
     return NULL;
   }
   /* ERORRS */
@@ -633,27 +621,35 @@ switch_failed:
   {
     GST_ELEMENT_WARNING (rtpvorbisdepay, STREAM, DECODE,
         (NULL), ("Could not switch codebooks"));
-    gst_rtp_buffer_unmap (&rtp);
+    if (payload_buffer) {
+      gst_buffer_unmap (payload_buffer, &map);
+      gst_buffer_unref (payload_buffer);
+    }
     return NULL;
   }
 packet_short:
   {
     GST_ELEMENT_WARNING (rtpvorbisdepay, STREAM, DECODE,
         (NULL), ("Packet was too short (%d < 4)", payload_len));
-    gst_rtp_buffer_unmap (&rtp);
+    if (payload_buffer) {
+      gst_buffer_unmap (payload_buffer, &map);
+      gst_buffer_unref (payload_buffer);
+    }
     return NULL;
   }
 ignore_reserved:
   {
     GST_WARNING_OBJECT (rtpvorbisdepay, "reserved VDT ignored");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 length_short:
   {
     GST_ELEMENT_WARNING (rtpvorbisdepay, STREAM, DECODE,
         (NULL), ("Packet contains invalid data"));
-    gst_rtp_buffer_unmap (&rtp);
+    if (payload_buffer) {
+      gst_buffer_unmap (payload_buffer, &map);
+      gst_buffer_unref (payload_buffer);
+    }
     return NULL;
   }
 invalid_configuration:
@@ -661,7 +657,10 @@ invalid_configuration:
     /* fatal, as we otherwise risk carrying on without output */
     GST_ELEMENT_ERROR (rtpvorbisdepay, STREAM, DECODE,
         (NULL), ("Packet contains invalid configuration"));
-    gst_rtp_buffer_unmap (&rtp);
+    if (payload_buffer) {
+      gst_buffer_unmap (payload_buffer, &map);
+      gst_buffer_unref (payload_buffer);
+    }
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c
index de03f203078c24f60e516e32cb426a9969dc2d3e..3bc1c6fe2d97adca417c5f6fba44b3b5af9ed39c 100644
--- a/gst/rtp/gstrtpvorbispay.c
+++ b/gst/rtp/gstrtpvorbispay.c
@@ -24,9 +24,11 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/audio/audio.h>
 
 #include "fnv1hash.h"
 #include "gstrtpvorbispay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpvorbispay_debug);
 #define GST_CAT_DEFAULT (rtpvorbispay_debug)
@@ -143,6 +145,10 @@ gst_rtp_vorbis_pay_clear_packet (GstRtpVorbisPay * rtpvorbispay)
   if (rtpvorbispay->packet)
     gst_buffer_unref (rtpvorbispay->packet);
   rtpvorbispay->packet = NULL;
+  g_list_foreach (rtpvorbispay->packet_buffers, (GFunc) gst_mini_object_unref,
+      NULL);
+  g_list_free (rtpvorbispay->packet_buffers);
+  rtpvorbispay->packet_buffers = NULL;
 }
 
 static void
@@ -273,6 +279,10 @@ gst_rtp_vorbis_pay_init_packet (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
 
   if (rtpvorbispay->packet)
     gst_buffer_unref (rtpvorbispay->packet);
+  g_list_foreach (rtpvorbispay->packet_buffers, (GFunc) gst_mini_object_unref,
+      NULL);
+  g_list_free (rtpvorbispay->packet_buffers);
+  rtpvorbispay->packet_buffers = NULL;
 
   /* new packet allocate max packet size */
   rtpvorbispay->packet =
@@ -290,6 +300,7 @@ gst_rtp_vorbis_pay_flush_packet (GstRtpVorbisPay * rtpvorbispay)
   guint8 *payload;
   guint hlen;
   GstRTPBuffer rtp = { NULL };
+  GList *l;
 
   /* check for empty packet */
   if (!rtpvorbispay->packet || rtpvorbispay->payload_pos <= 4)
@@ -327,6 +338,15 @@ gst_rtp_vorbis_pay_flush_packet (GstRtpVorbisPay * rtpvorbispay)
 
   GST_BUFFER_DURATION (rtpvorbispay->packet) = rtpvorbispay->payload_duration;
 
+  for (l = g_list_last (rtpvorbispay->packet_buffers); l; l = l->prev) {
+    GstBuffer *buf = GST_BUFFER_CAST (l->data);
+    gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvorbispay), rtpvorbispay->packet,
+        buf, g_quark_from_static_string (GST_META_TAG_AUDIO_STR));
+    gst_buffer_unref (buf);
+  }
+  g_list_free (rtpvorbispay->packet_buffers);
+  rtpvorbispay->packet_buffers = NULL;
+
   /* push, this gives away our ref to the packet, so clear it. */
   ret =
       gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (rtpvorbispay),
@@ -490,10 +510,7 @@ gst_rtp_vorbis_pay_finish_headers (GstRTPBasePayload * basepayload)
 
     gst_buffer_extract (buf, 0, data, gst_buffer_get_size (buf));
     data += gst_buffer_get_size (buf);
-    gst_buffer_unref (buf);
   }
-  g_list_free (rtpvorbispay->headers);
-  rtpvorbispay->headers = NULL;
   rtpvorbispay->need_headers = FALSE;
 
   /* serialize to base64 */
@@ -597,8 +614,8 @@ invalid_channels:
 
 static GstFlowReturn
 gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
-    guint8 * data, guint size, GstClockTime timestamp, GstClockTime duration,
-    guint not_in_length)
+    GstBuffer * buffer, guint8 * data, guint size, GstClockTime timestamp,
+    GstClockTime duration, guint not_in_length)
 {
   GstFlowReturn ret = GST_FLOW_OK;
   guint newsize;
@@ -629,6 +646,9 @@ gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
   if (flush)
     ret = gst_rtp_vorbis_pay_flush_packet (rtpvorbispay);
 
+  if (ret != GST_FLOW_OK)
+    goto done;
+
   /* create new packet if we must */
   if (!rtpvorbispay->packet) {
     gst_rtp_vorbis_pay_init_packet (rtpvorbispay, VDT, timestamp);
@@ -652,6 +672,21 @@ gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
     if (plen)
       memcpy (&ppos[2], data, plen);
 
+    if (buffer) {
+      if (!rtpvorbispay->packet_buffers
+          || rtpvorbispay->packet_buffers->data != (gpointer) buffer)
+        rtpvorbispay->packet_buffers =
+            g_list_prepend (rtpvorbispay->packet_buffers,
+            gst_buffer_ref (buffer));
+    } else {
+      GList *l;
+
+      for (l = rtpvorbispay->headers; l; l = l->next)
+        rtpvorbispay->packet_buffers =
+            g_list_prepend (rtpvorbispay->packet_buffers,
+            gst_buffer_ref (buffer));
+    }
+
     /* only first (only) configuration cuts length field */
     /* NOTE: spec (if any) is not clear on this ... */
     not_in_length = 0;
@@ -698,11 +733,13 @@ gst_rtp_vorbis_pay_payload_buffer (GstRtpVorbisPay * rtpvorbispay, guint8 VDT,
       if (duration != GST_CLOCK_TIME_NONE)
         rtpvorbispay->payload_duration += duration;
     }
-  } while (size);
+  } while (size && ret == GST_FLOW_OK);
 
   if (rtp.buffer)
     gst_rtp_buffer_unmap (&rtp);
 
+done:
+
   return ret;
 }
 
@@ -760,15 +797,9 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
     rtpvorbispay->headers = g_list_append (rtpvorbispay->headers, buffer);
     ret = GST_FLOW_OK;
     goto done;
-  } else if (rtpvorbispay->headers) {
-    if (rtpvorbispay->need_headers) {
-      if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
-        goto header_error;
-    } else {
-      g_list_free_full (rtpvorbispay->headers,
-          (GDestroyNotify) gst_buffer_unref);
-      rtpvorbispay->headers = NULL;
-    }
+  } else if (rtpvorbispay->headers && rtpvorbispay->need_headers) {
+    if (!gst_rtp_vorbis_pay_finish_headers (basepayload))
+      goto header_error;
   }
 
   /* there is a config request, see if we need to insert it */
@@ -808,7 +839,7 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
       /* we need to send config now first */
       /* different TDT type forces flush */
       gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, 1,
-          rtpvorbispay->config_data, rtpvorbispay->config_size,
+          NULL, rtpvorbispay->config_data, rtpvorbispay->config_size,
           timestamp, GST_CLOCK_TIME_NONE, rtpvorbispay->config_extra_len);
 
       if (timestamp != -1) {
@@ -817,7 +848,8 @@ gst_rtp_vorbis_pay_handle_buffer (GstRTPBasePayload * basepayload,
     }
   }
 
-  ret = gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, VDT, data, size,
+  ret =
+      gst_rtp_vorbis_pay_payload_buffer (rtpvorbispay, VDT, buffer, data, size,
       timestamp, duration, 0);
 
   gst_buffer_unmap (buffer, &map);
diff --git a/gst/rtp/gstrtpvorbispay.h b/gst/rtp/gstrtpvorbispay.h
index 8f0974a0b3501faf0c67f4c842749c1e3833fdbe..a5d693a7237092ef56b4393a42cc37d313982f66 100644
--- a/gst/rtp/gstrtpvorbispay.h
+++ b/gst/rtp/gstrtpvorbispay.h
@@ -50,6 +50,7 @@ struct _GstRtpVorbisPay
 
   /* queues of buffers along with some stats. */
   GstBuffer    *packet;
+  GList        *packet_buffers;
   guint         payload_pos;
   guint         payload_left;
   guint32       payload_ident;
diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c
index cafdad5b869d6cd2df5fa309f0844613947499ce..4357a5f3d49a444caca0a94c7577bd444d0325af 100644
--- a/gst/rtp/gstrtpvp8depay.c
+++ b/gst/rtp/gstrtpvp8depay.c
@@ -23,6 +23,7 @@
 #endif
 
 #include "gstrtpvp8depay.h"
+#include "gstrtputils.h"
 
 #include <gst/video/video.h>
 
@@ -33,7 +34,7 @@ GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_depay_debug);
 
 static void gst_rtp_vp8_depay_dispose (GObject * object);
 static GstBuffer *gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+    GstRTPBuffer * rtp);
 static GstStateChangeReturn gst_rtp_vp8_depay_change_state (GstElement *
     element, GstStateChange transition);
 static gboolean gst_rtp_vp8_depay_handle_event (GstRTPBaseDepayload * depay,
@@ -86,7 +87,7 @@ gst_rtp_vp8_depay_class_init (GstRtpVP8DepayClass * gst_rtp_vp8_depay_class)
 
   element_class->change_state = gst_rtp_vp8_depay_change_state;
 
-  depay_class->process = gst_rtp_vp8_depay_process;
+  depay_class->process_rtp_packet = gst_rtp_vp8_depay_process;
   depay_class->handle_event = gst_rtp_vp8_depay_handle_event;
 
   GST_DEBUG_CATEGORY_INIT (gst_rtp_vp8_depay_debug, "rtpvp8depay", 0,
@@ -109,34 +110,32 @@ gst_rtp_vp8_depay_dispose (GObject * object)
 }
 
 static GstBuffer *
-gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf)
+gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstRTPBuffer * rtp)
 {
   GstRtpVP8Depay *self = GST_RTP_VP8_DEPAY (depay);
   GstBuffer *payload;
   guint8 *data;
   guint hdrsize;
   guint size;
-  GstRTPBuffer rtpbuffer = GST_RTP_BUFFER_INIT;
 
-  if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (buf))) {
+  if (G_UNLIKELY (GST_BUFFER_IS_DISCONT (rtp->buffer))) {
     GST_LOG_OBJECT (self, "Discontinuity, flushing adapter");
     gst_adapter_clear (self->adapter);
     self->started = FALSE;
   }
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtpbuffer);
-  size = gst_rtp_buffer_get_payload_len (&rtpbuffer);
+  size = gst_rtp_buffer_get_payload_len (rtp);
 
   /* At least one header and one vp8 byte */
   if (G_UNLIKELY (size < 2))
     goto too_small;
 
-  data = gst_rtp_buffer_get_payload (&rtpbuffer);
+  data = gst_rtp_buffer_get_payload (rtp);
 
   if (G_UNLIKELY (!self->started)) {
     /* Check if this is the start of a VP8 frame, otherwise bail */
     /* S=1 and PartID= 0 */
-    if ((data[0] & 0x1F) != 0x10)
+    if ((data[0] & 0x17) != 0x10)
       goto done;
 
     self->started = TRUE;
@@ -167,25 +166,29 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf)
   if (G_UNLIKELY (hdrsize >= size))
     goto too_small;
 
-  payload = gst_rtp_buffer_get_payload_subbuffer (&rtpbuffer, hdrsize, -1);
+  payload = gst_rtp_buffer_get_payload_subbuffer (rtp, hdrsize, -1);
   gst_adapter_push (self->adapter, payload);
 
   /* Marker indicates that it was the last rtp packet for this frame */
-  if (gst_rtp_buffer_get_marker (&rtpbuffer)) {
+  if (gst_rtp_buffer_get_marker (rtp)) {
     GstBuffer *out;
-    guint8 flag0;
+    guint8 header[10];
 
-    gst_adapter_copy (self->adapter, &flag0, 0, 1);
+    if (gst_adapter_available (self->adapter) < 10)
+      goto too_small;
+    gst_adapter_copy (self->adapter, &header, 0, 10);
 
     out = gst_adapter_take_buffer (self->adapter,
         gst_adapter_available (self->adapter));
 
     self->started = FALSE;
-    gst_rtp_buffer_unmap (&rtpbuffer);
 
     /* mark keyframes */
     out = gst_buffer_make_writable (out);
-    if ((flag0 & 0x01)) {
+    /* Filter away all metas that are not sensible to copy */
+    gst_rtp_drop_meta (GST_ELEMENT_CAST (self), out,
+        g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+    if ((header[0] & 0x01)) {
       GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DELTA_UNIT);
 
       if (!self->caps_sent) {
@@ -197,38 +200,33 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf)
                 TRUE, 0));
       }
     } else {
-      GstMapInfo info;
+      guint profile, width, height;
 
       GST_BUFFER_FLAG_UNSET (out, GST_BUFFER_FLAG_DELTA_UNIT);
 
-      if (gst_buffer_map (out, &info, GST_MAP_READ)) {
-        guint profile, width, height;
-
-        profile = (flag0 & 0x0e) >> 1;
-        width = GST_READ_UINT16_LE (info.data + 6) & 0x3fff;
-        height = GST_READ_UINT16_LE (info.data + 8) & 0x3fff;
-        gst_buffer_unmap (out, &info);
-
-        if (G_UNLIKELY (self->last_width != width ||
-                self->last_height != height || self->last_profile != profile)) {
-          gchar profile_str[3];
-          GstCaps *srccaps;
-
-          snprintf (profile_str, 3, "%u", profile);
-          srccaps = gst_caps_new_simple ("video/x-vp8",
-              "framerate", GST_TYPE_FRACTION, 0, 1,
-              "height", G_TYPE_INT, height,
-              "width", G_TYPE_INT, width,
-              "profile", G_TYPE_STRING, profile_str, NULL);
-
-          gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depay), srccaps);
-          gst_caps_unref (srccaps);
-
-          self->caps_sent = TRUE;
-          self->last_width = width;
-          self->last_height = height;
-          self->last_profile = profile;
-        }
+      profile = (header[0] & 0x0e) >> 1;
+      width = GST_READ_UINT16_LE (header + 6) & 0x3fff;
+      height = GST_READ_UINT16_LE (header + 8) & 0x3fff;
+
+      if (G_UNLIKELY (self->last_width != width ||
+              self->last_height != height || self->last_profile != profile)) {
+        gchar profile_str[3];
+        GstCaps *srccaps;
+
+        snprintf (profile_str, 3, "%u", profile);
+        srccaps = gst_caps_new_simple ("video/x-vp8",
+            "framerate", GST_TYPE_FRACTION, 0, 1,
+            "height", G_TYPE_INT, height,
+            "width", G_TYPE_INT, width,
+            "profile", G_TYPE_STRING, profile_str, NULL);
+
+        gst_pad_set_caps (GST_RTP_BASE_DEPAYLOAD_SRCPAD (depay), srccaps);
+        gst_caps_unref (srccaps);
+
+        self->caps_sent = TRUE;
+        self->last_width = width;
+        self->last_height = height;
+        self->last_profile = profile;
       }
     }
 
@@ -236,7 +234,6 @@ gst_rtp_vp8_depay_process (GstRTPBaseDepayload * depay, GstBuffer * buf)
   }
 
 done:
-  gst_rtp_buffer_unmap (&rtpbuffer);
   return NULL;
 
 too_small:
diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c
index d611520cdef405834c78bca75523661175e15736..1c4c625007825fb1bc28f0a4b14ba121795251d0 100644
--- a/gst/rtp/gstrtpvp8pay.c
+++ b/gst/rtp/gstrtpvp8pay.c
@@ -30,8 +30,10 @@
 #include <gst/base/gstbitreader.h>
 #include <gst/rtp/gstrtppayloads.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 #include "dboolhuff.h"
 #include "gstrtpvp8pay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (gst_rtp_vp8_pay_debug);
 #define GST_CAT_DEFAULT gst_rtp_vp8_pay_debug
@@ -411,7 +413,6 @@ gst_rtp_vp8_create_header_buffer (GstRtpVP8Pay * self, guint8 partid,
   return out;
 }
 
-
 static guint
 gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, GstBufferList * list,
     guint offset, GstBuffer * buffer, gsize buffer_size, gsize max_payload_len)
@@ -438,6 +439,8 @@ gst_rtp_vp8_payload_next (GstRtpVP8Pay * self, GstBufferList * list,
       offset == self->partition_offset[partition], mark, buffer);
   sub = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_ALL, offset, available);
 
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (self), header, buffer,
+      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
   out = gst_buffer_append (header, sub);
 
   gst_buffer_list_insert (list, -1, out);
diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c
index 8533b269e9010d443c74563f635a1f569e78bcae..051e3124c0fe5f347036610b6a3b4097e2f894c8 100644
--- a/gst/rtp/gstrtpvrawdepay.c
+++ b/gst/rtp/gstrtpvrawdepay.c
@@ -22,10 +22,12 @@
 #endif
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include <string.h>
 #include <stdlib.h>
 #include "gstrtpvrawdepay.h"
+#include "gstrtputils.h"
 
 GST_DEBUG_CATEGORY_STATIC (rtpvrawdepay_debug);
 #define GST_CAT_DEFAULT (rtpvrawdepay_debug)
@@ -61,8 +63,8 @@ G_DEFINE_TYPE (GstRtpVRawDepay, gst_rtp_vraw_depay,
 
 static gboolean gst_rtp_vraw_depay_setcaps (GstRTPBaseDepayload * depayload,
     GstCaps * caps);
-static GstBuffer *gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload,
-    GstBuffer * buf);
+static GstBuffer *gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload *
+    depay, GstRTPBuffer * rtp);
 
 static GstStateChangeReturn gst_rtp_vraw_depay_change_state (GstElement *
     element, GstStateChange transition);
@@ -82,7 +84,8 @@ gst_rtp_vraw_depay_class_init (GstRtpVRawDepayClass * klass)
   gstelement_class->change_state = gst_rtp_vraw_depay_change_state;
 
   gstrtpbasedepayload_class->set_caps = gst_rtp_vraw_depay_setcaps;
-  gstrtpbasedepayload_class->process = gst_rtp_vraw_depay_process;
+  gstrtpbasedepayload_class->process_rtp_packet =
+      gst_rtp_vraw_depay_process_packet;
   gstrtpbasedepayload_class->handle_event = gst_rtp_vraw_depay_handle_event;
 
   gst_element_class_add_pad_template (gstelement_class,
@@ -317,23 +320,21 @@ no_bufferpool:
 }
 
 static GstBuffer *
-gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
+gst_rtp_vraw_depay_process_packet (GstRTPBaseDepayload * depayload,
+    GstRTPBuffer * rtp)
 {
   GstRtpVRawDepay *rtpvrawdepay;
   guint8 *payload, *p0, *yp, *up, *vp, *headers;
   guint32 timestamp;
   guint cont, ystride, uvstride, pgroup, payload_len;
   gint width, height, xinc, yinc;
-  GstRTPBuffer rtp = { NULL };
   GstVideoFrame *frame;
   gboolean marker;
-  GstBuffer *outbuf = NULL;
+  GstBuffer *buf, *outbuf = NULL;
 
   rtpvrawdepay = GST_RTP_VRAW_DEPAY (depayload);
 
-  gst_rtp_buffer_map (buf, GST_MAP_READ, &rtp);
-
-  timestamp = gst_rtp_buffer_get_timestamp (&rtp);
+  timestamp = gst_rtp_buffer_get_timestamp (rtp);
 
   if (timestamp != rtpvrawdepay->timestamp || rtpvrawdepay->outbuf == NULL) {
     GstBuffer *new_buffer;
@@ -395,8 +396,9 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   xinc = rtpvrawdepay->xinc;
   yinc = rtpvrawdepay->yinc;
 
-  payload = gst_rtp_buffer_get_payload (&rtp);
-  payload_len = gst_rtp_buffer_get_payload_len (&rtp);
+  payload = gst_rtp_buffer_get_payload (rtp);
+  payload_len = gst_rtp_buffer_get_payload_len (rtp);
+  buf = gst_rtp_buffer_get_payload_buffer (rtp);
 
   if (payload_len < 3)
     goto short_packet;
@@ -408,6 +410,9 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
   /* remember header position */
   headers = payload;
 
+  gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawdepay), frame->buffer, buf,
+      g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
   /* find data start */
   do {
     if (payload_len < 6)
@@ -560,8 +565,7 @@ gst_rtp_vraw_depay_process (GstRTPBaseDepayload * depayload, GstBuffer * buf)
     payload_len -= length;
   }
 
-  marker = gst_rtp_buffer_get_marker (&rtp);
-  gst_rtp_buffer_unmap (&rtp);
+  marker = gst_rtp_buffer_get_marker (rtp);
 
   if (marker) {
     GST_LOG_OBJECT (depayload, "marker, flushing frame");
@@ -577,13 +581,11 @@ unknown_sampling:
   {
     GST_ELEMENT_ERROR (depayload, STREAM, FORMAT,
         (NULL), ("unimplemented sampling"));
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 alloc_failed:
   {
     GST_WARNING_OBJECT (depayload, "failed to alloc output buffer");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 invalid_frame:
@@ -594,13 +596,11 @@ invalid_frame:
 wrong_length:
   {
     GST_WARNING_OBJECT (depayload, "length not multiple of pgroup");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 short_packet:
   {
     GST_WARNING_OBJECT (depayload, "short packet");
-    gst_rtp_buffer_unmap (&rtp);
     return NULL;
   }
 }
diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c
index 0592fc08fc711ae62b7c73311b834b1869b41b0f..0843486c677c2b786d015b885cfc029c9e6dc327 100644
--- a/gst/rtp/gstrtpvrawpay.c
+++ b/gst/rtp/gstrtpvrawpay.c
@@ -24,8 +24,10 @@
 #include <string.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/video/video.h>
 
 #include "gstrtpvrawpay.h"
+#include "gstrtputils.h"
 
 enum
 {
@@ -555,6 +557,10 @@ gst_rtp_vraw_pay_handle_buffer (GstRTPBasePayload * payload, GstBuffer * buffer)
         gst_buffer_resize (out, 0, gst_buffer_get_size (out) - left);
       }
 
+      gst_rtp_copy_meta (GST_ELEMENT_CAST (rtpvrawpay), out, buffer,
+          g_quark_from_static_string (GST_META_TAG_VIDEO_STR));
+
+
       /* Now either push out the buffer directly */
       if (!use_buffer_lists) {
         ret = gst_rtp_base_payload_push (payload, out);
diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in
index 5e809b6c5295054d5ed4f925e94d2271661cfa66..d588d497765250ba909944c5d05991b80193633d 100644
--- a/gst/rtpmanager/Makefile.in
+++ b/gst/rtpmanager/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtpmanager
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -239,6 +249,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -620,7 +631,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/rtpmanager/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/rtpmanager/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1041,6 +1051,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index 73f8dc5e28bb6b161bad6230ff4ec5a72746cb8d..21e1cd826373c4bc3a93a2042195494071713435 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -2086,7 +2086,7 @@ gst_rtp_bin_class_init (GstRtpBinClass * klass)
   g_object_class_install_property (gobject_class, PROP_USE_PIPELINE_CLOCK,
       g_param_spec_boolean ("use-pipeline-clock", "Use pipeline clock",
           "Use the pipeline running-time to set the NTP time in the RTCP SR messages "
-          "(DEPRECATED: Use ntp-source property)",
+          "(DEPRECATED: Use ntp-time-source property)",
           DEFAULT_USE_PIPELINE_CLOCK,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
   /**
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index 8f9c51f0600c3ef666640bf5974446d7006d8d9c..a84f5740df1be446aedb1c160b0f34ef51b0dcab 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -2030,7 +2030,7 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
     }
   }
 
-  if (do_next_seqnum) {
+  if (do_next_seqnum && dts != GST_CLOCK_TIME_NONE) {
     GstClockTime expected, delay;
 
     /* calculate expected arrival time of the next seqnum */
@@ -2039,12 +2039,13 @@ update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
     delay = get_rtx_delay (priv);
 
     /* and update/install timer for next seqnum */
-    if (timer)
+    if (timer) {
       reschedule_timer (jitterbuffer, timer, priv->next_in_seqnum, expected,
           delay, TRUE);
-    else
+    } else {
       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 we had a timer, remove it, we don't know when to expect the next
      * packet. */
@@ -2099,12 +2100,16 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected,
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   GstClockTime total_duration, duration, expected_dts;
   TimerType type;
-  guint lost_packets = 0;
 
   GST_DEBUG_OBJECT (jitterbuffer,
       "dts %" GST_TIME_FORMAT ", last %" GST_TIME_FORMAT,
       GST_TIME_ARGS (dts), GST_TIME_ARGS (priv->last_in_dts));
 
+  if (dts == GST_CLOCK_TIME_NONE) {
+    GST_WARNING_OBJECT (jitterbuffer, "Have no DTS");
+    return;
+  }
+
   /* the total duration spanned by the missing packets */
   if (dts >= priv->last_in_dts)
     total_duration = dts - priv->last_in_dts;
@@ -2121,33 +2126,40 @@ calculate_expected (GstRtpJitterBuffer * jitterbuffer, guint32 expected,
 
   if (total_duration > priv->latency_ns) {
     GstClockTime gap_time;
-
-    gap_time = total_duration - priv->latency_ns;
+    guint lost_packets;
 
     if (duration > 0) {
+      GstClockTime gap_dur = gap * duration;
+      if (gap_dur > priv->latency_ns)
+        gap_time = gap_dur - priv->latency_ns;
+      else
+        gap_time = 0;
       lost_packets = gap_time / duration;
-      gap_time = lost_packets * duration;
     } else {
+      gap_time = total_duration - priv->latency_ns;
       lost_packets = gap;
     }
 
     /* too many lost packets, some of the missing packets are already
      * too late and we can generate lost packet events for them. */
-    GST_DEBUG_OBJECT (jitterbuffer, "too many lost packets %" GST_TIME_FORMAT
-        " > %" GST_TIME_FORMAT ", consider %u lost",
-        GST_TIME_ARGS (total_duration), GST_TIME_ARGS (priv->latency_ns),
-        lost_packets);
+    GST_DEBUG_OBJECT (jitterbuffer,
+        "lost packets (%d, #%d->#%d) duration too large %" GST_TIME_FORMAT
+        " > %" GST_TIME_FORMAT ", consider %u lost (%" GST_TIME_FORMAT ")",
+        gap, expected, seqnum, GST_TIME_ARGS (total_duration),
+        GST_TIME_ARGS (priv->latency_ns), lost_packets,
+        GST_TIME_ARGS (gap_time));
 
     /* this timer will fire immediately and the lost event will be pushed from
      * the timer thread */
-    add_timer (jitterbuffer, TIMER_TYPE_LOST, expected, lost_packets,
-        priv->last_in_dts + duration, 0, gap_time);
-
-    expected += lost_packets;
-    priv->last_in_dts += gap_time;
+    if (lost_packets > 0) {
+      add_timer (jitterbuffer, TIMER_TYPE_LOST, expected, lost_packets,
+          priv->last_in_dts + duration, 0, gap_time);
+      expected += lost_packets;
+      priv->last_in_dts += gap_time;
+    }
   }
 
-  expected_dts = priv->last_in_dts + (lost_packets + 1) * duration;
+  expected_dts = priv->last_in_dts + duration;
 
   if (priv->do_retransmission) {
     TimerData *timer;
@@ -2323,6 +2335,28 @@ handle_big_gap_buffer (GstRtpJitterBuffer * jitterbuffer, gboolean future,
   return reset;
 }
 
+static GstClockTime
+get_current_running_time (GstRtpJitterBuffer * jitterbuffer)
+{
+  GstClock *clock = gst_element_get_clock (GST_ELEMENT_CAST (jitterbuffer));
+  GstClockTime running_time = GST_CLOCK_TIME_NONE;
+
+  if (clock) {
+    GstClockTime base_time =
+        gst_element_get_base_time (GST_ELEMENT_CAST (jitterbuffer));
+    GstClockTime clock_time = gst_clock_get_time (clock);
+
+    if (clock_time > base_time)
+      running_time = clock_time - base_time;
+    else
+      running_time = 0;
+
+    gst_object_unref (clock);
+  }
+
+  return running_time;
+}
+
 static GstFlowReturn
 gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     GstBuffer * buffer)
@@ -2341,6 +2375,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
   gboolean do_next_seqnum = FALSE;
   RTPJitterBufferItem *item;
   GstMessage *msg = NULL;
+  gboolean estimated_dts = FALSE;
 
   jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (parent);
 
@@ -2362,12 +2397,26 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
   else if (pts == -1)
     pts = dts;
 
-  /* take the DTS of the buffer. This is the time when the packet was
-   * received and is used to calculate jitter and clock skew. We will adjust
-   * this DTS with the smoothed value after processing it in the
-   * jitterbuffer and assign it as the PTS. */
-  /* bring to running time */
-  dts = gst_segment_to_running_time (&priv->segment, GST_FORMAT_TIME, dts);
+  if (dts == -1) {
+    /* If we have no DTS here, i.e. no capture time, get one from the
+     * clock now to have something to calculate with in the future. */
+    dts = get_current_running_time (jitterbuffer);
+    pts = dts;
+
+    /* Remember that we estimated the DTS if we are running already
+     * and this is not our first packet (or first packet after a reset).
+     * If it's the first packet, we somehow must generate a timestamp for
+     * everything, otherwise we can't calculate any times
+     */
+    estimated_dts = (priv->next_in_seqnum != -1);
+  } else {
+    /* take the DTS of the buffer. This is the time when the packet was
+     * received and is used to calculate jitter and clock skew. We will adjust
+     * this DTS with the smoothed value after processing it in the
+     * jitterbuffer and assign it as the PTS. */
+    /* bring to running time */
+    dts = gst_segment_to_running_time (&priv->segment, GST_FORMAT_TIME, dts);
+  }
 
   GST_DEBUG_OBJECT (jitterbuffer,
       "Received packet #%d at time %" GST_TIME_FORMAT ", discont %d", seqnum,
@@ -2448,12 +2497,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     } else {
       gboolean reset = FALSE;
 
-      if (!GST_CLOCK_TIME_IS_VALID (dts)) {
-        /* We would run into calculations with GST_CLOCK_TIME_NONE below
-         * and can't compensate for anything without DTS on RTP packets
-         */
-        goto gap_but_no_dts;
-      } else if (gap < 0) {
+      if (gap < 0) {
         /* we received an old packet */
         if (G_UNLIKELY (gap != -1 && gap < -RTP_MAX_MISORDER)) {
           reset =
@@ -2465,7 +2509,20 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
         }
       } else {
         /* new packet, we are missing some packets */
-        if (G_UNLIKELY (gap >= RTP_MAX_DROPOUT)) {
+        if (G_UNLIKELY (priv->timers->len >= RTP_MAX_DROPOUT)) {
+          /* If we have timers for more than RTP_MAX_DROPOUT packets
+           * pending this means that we have a huge gap overall. We can
+           * reset the jitterbuffer at this point because there's
+           * just too much data missing to be able to do anything
+           * sensible with the past data. Just try again from the
+           * next packet */
+          GST_WARNING_OBJECT (jitterbuffer,
+              "%d pending timers > %d - resetting", priv->timers->len,
+              RTP_MAX_DROPOUT);
+          reset = TRUE;
+          gst_buffer_unref (buffer);
+          buffer = NULL;
+        } else if (G_UNLIKELY (gap >= RTP_MAX_DROPOUT)) {
           reset =
               handle_big_gap_buffer (jitterbuffer, TRUE, buffer, pt, seqnum,
               gap);
@@ -2538,6 +2595,7 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     }
   } else {
     GST_DEBUG_OBJECT (jitterbuffer, "First buffer #%d", seqnum);
+
     /* we don't know what the next_in_seqnum should be, wait for the last
      * possible moment to push this buffer, maybe we get an earlier seqnum
      * while we wait */
@@ -2604,7 +2662,16 @@ gst_rtp_jitter_buffer_chain (GstPad * pad, GstObject * parent,
     }
   }
 
-  item = alloc_item (buffer, ITEM_TYPE_BUFFER, dts, pts, seqnum, 1, rtptime);
+  /* If we estimated the DTS, don't consider it in the clock skew calculations
+   * later. The code above always sets dts to pts or the other way around if
+   * any of those is valid in the buffer, so we know that if we estimated the
+   * dts that both are unknown */
+  if (estimated_dts)
+    item =
+        alloc_item (buffer, ITEM_TYPE_BUFFER, GST_CLOCK_TIME_NONE,
+        GST_CLOCK_TIME_NONE, seqnum, 1, rtptime);
+  else
+    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
@@ -2693,15 +2760,6 @@ duplicate:
     free_item (item);
     goto finished;
   }
-gap_but_no_dts:
-  {
-    /* this is fatal as we can't compensate for gaps without DTS */
-    GST_ELEMENT_ERROR (jitterbuffer, STREAM, DECODE, (NULL),
-        ("Received packet without DTS after a gap"));
-    gst_buffer_unref (buffer);
-    ret = GST_FLOW_ERROR;
-    goto finished;
-  }
 }
 
 static GstClockTime
@@ -2941,30 +2999,31 @@ static GstFlowReturn
 handle_next_buffer (GstRtpJitterBuffer * jitterbuffer)
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
-  GstFlowReturn result = GST_FLOW_OK;
+  GstFlowReturn result;
   RTPJitterBufferItem *item;
   guint seqnum;
   guint32 next_seqnum;
-  gint gap;
 
   /* only push buffers when PLAYING and active and not buffering */
   if (priv->blocked || !priv->active ||
-      rtp_jitter_buffer_is_buffering (priv->jbuf))
+      rtp_jitter_buffer_is_buffering (priv->jbuf)) {
     return GST_FLOW_WAIT;
+  }
 
-again:
   /* peek a buffer, we're just looking at the sequence number.
    * If all is fine, we'll pop and push it. If the sequence number is wrong we
    * wait for a timeout or something to change.
    * The peeked buffer is valid for as long as we hold the jitterbuffer lock. */
   item = rtp_jitter_buffer_peek (priv->jbuf);
-  if (item == NULL)
+  if (item == NULL) {
     goto wait;
+  }
 
   /* get the seqnum and the next expected seqnum */
   seqnum = item->seqnum;
-  if (seqnum == -1)
-    goto do_push;
+  if (seqnum == -1) {
+    return pop_and_push_next (jitterbuffer, seqnum);
+  }
 
   next_seqnum = priv->next_seqnum;
 
@@ -2977,22 +3036,19 @@ again:
      * fires, so wait for that */
     result = GST_FLOW_WAIT;
   } else {
-    /* else calculate GAP */
-    gap = gst_rtp_buffer_compare_seqnum (next_seqnum, seqnum);
+    gint gap = gst_rtp_buffer_compare_seqnum (next_seqnum, seqnum);
 
     if (G_LIKELY (gap == 0)) {
-    do_push:
       /* no missing packet, pop and push */
       result = pop_and_push_next (jitterbuffer, seqnum);
     } else if (G_UNLIKELY (gap < 0)) {
-      RTPJitterBufferItem *item;
       /* if we have a packet that we already pushed or considered dropped, pop it
        * off and get the next packet */
       GST_DEBUG_OBJECT (jitterbuffer, "Old packet #%d, next #%d dropping",
           seqnum, next_seqnum);
       item = rtp_jitter_buffer_pop (priv->jbuf, NULL);
       free_item (item);
-      goto again;
+      result = GST_FLOW_OK;
     } else {
       /* the chain function has scheduled timers to request retransmission or
        * when to consider the packet lost, wait for that */
@@ -3002,16 +3058,17 @@ again:
       result = GST_FLOW_WAIT;
     }
   }
+
   return result;
 
 wait:
   {
     GST_DEBUG_OBJECT (jitterbuffer, "no buffer, going to wait");
-    if (priv->eos)
-      result = GST_FLOW_EOS;
-    else
-      result = GST_FLOW_WAIT;
-    return result;
+    if (priv->eos) {
+      return GST_FLOW_EOS;
+    } else {
+      return GST_FLOW_WAIT;
+    }
   }
 }
 
@@ -3151,7 +3208,7 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   GstClockTime duration, timestamp;
   guint seqnum, lost_packets, num_rtx_retry, next_in_seqnum;
-  gboolean late, head;
+  gboolean head;
   GstEvent *event;
   RTPJitterBufferItem *item;
 
@@ -3161,7 +3218,6 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
   if (duration == GST_CLOCK_TIME_NONE && priv->packet_spacing > 0)
     duration = priv->packet_spacing;
   lost_packets = MAX (timer->num, 1);
-  late = timer->num > 0;
   num_rtx_retry = timer->num_rtx_retry;
 
   /* we had a gap and thus we lost some packets. Create an event for this.  */
@@ -3186,7 +3242,6 @@ do_lost_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
           "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);
@@ -3277,6 +3332,19 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer)
     GstClockTime timer_timeout = -1;
     gint i, len;
 
+    /* If we have a clock, update "now" now with the very latest running time
+     * we have. It is used below when timeouts are triggered to calculate
+     * any next possible timeout. If we only update it after waiting for the
+     * clock, we would give a too old time to the timeout functions.
+     */
+    GST_OBJECT_LOCK (jitterbuffer);
+    if (GST_ELEMENT_CLOCK (jitterbuffer)) {
+      now =
+          gst_clock_get_time (GST_ELEMENT_CLOCK (jitterbuffer)) -
+          GST_ELEMENT_CAST (jitterbuffer)->base_time;
+    }
+    GST_OBJECT_UNLOCK (jitterbuffer);
+
     GST_DEBUG_OBJECT (jitterbuffer, "now %" GST_TIME_FORMAT,
         GST_TIME_ARGS (now));
 
@@ -3370,7 +3438,6 @@ wait_next_timeout (GstRtpJitterBuffer * jitterbuffer)
       }
 
       if (ret != GST_CLOCK_UNSCHEDULED) {
-        now = timer_timeout + MAX (clock_jitter, 0);
         GST_DEBUG_OBJECT (jitterbuffer, "sync done, %d, #%d, %" G_GINT64_FORMAT,
             ret, priv->timer_seqnum, clock_jitter);
       } else {
diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c
index 575b6521eb3963e9ce0683056d468d2d49ef719a..302600cc9f4d9991edac8e45db888d36f7360eec 100644
--- a/gst/rtpmanager/gstrtpmux.c
+++ b/gst/rtpmanager/gstrtpmux.c
@@ -602,7 +602,6 @@ same_clock_rate_fold (const GValue * item, GValue * ret, gpointer user_data)
   GstPad *pad = g_value_get_object (item);
   GstCaps *peercaps;
   GstCaps *accumcaps;
-  GstCaps *intersect;
 
   if (pad == mypad)
     return TRUE;
@@ -616,12 +615,9 @@ same_clock_rate_fold (const GValue * item, GValue * ret, gpointer user_data)
   peercaps = gst_caps_make_writable (peercaps);
   clear_caps (peercaps, TRUE);
 
-  intersect = gst_caps_intersect (accumcaps, peercaps);
+  g_value_take_boxed (ret, peercaps);
 
-  g_value_take_boxed (ret, intersect);
-  gst_caps_unref (peercaps);
-
-  return !gst_caps_is_empty (intersect);
+  return !gst_caps_is_empty (peercaps);
 }
 
 static GstCaps *
@@ -634,6 +630,7 @@ gst_rtp_mux_getcaps (GstPad * pad, GstRTPMux * mux, GstCaps * filter)
   GstCaps *peercaps;
   GstCaps *othercaps;
   GstCaps *tcaps;
+  GstCaps *other_filtered;
 
   peercaps = gst_pad_peer_query_caps (mux->srcpad, filter);
 
@@ -654,24 +651,30 @@ gst_rtp_mux_getcaps (GstPad * pad, GstRTPMux * mux, GstCaps * filter)
 
   clear_caps (othercaps, FALSE);
 
+  other_filtered = gst_caps_copy (othercaps);
+  clear_caps (other_filtered, TRUE);
+
   g_value_init (&v, GST_TYPE_CAPS);
 
   iter = gst_element_iterate_sink_pads (GST_ELEMENT (mux));
   do {
-    gst_value_set_caps (&v, othercaps);
+    gst_value_set_caps (&v, other_filtered);
     res = gst_iterator_fold (iter, same_clock_rate_fold, &v, pad);
     gst_iterator_resync (iter);
   } while (res == GST_ITERATOR_RESYNC);
   gst_iterator_free (iter);
+  gst_caps_unref (other_filtered);
 
-  caps = (GstCaps *) gst_value_get_caps (&v);
+  caps = gst_caps_intersect ((GstCaps *) gst_value_get_caps (&v), othercaps);
+
+  g_value_unset (&v);
+  gst_caps_unref (othercaps);
 
   if (res == GST_ITERATOR_ERROR) {
     gst_caps_unref (caps);
     caps = gst_caps_new_empty ();
   }
 
-  gst_caps_unref (othercaps);
 
   return caps;
 }
diff --git a/gst/rtpmanager/gstrtprtxsend.c b/gst/rtpmanager/gstrtprtxsend.c
index d9cc69f7184918d5bfa5937ebd00e8e0220a30ea..54c0a0c587ebb4dfb83c73d6ce786e7919c82c53 100644
--- a/gst/rtpmanager/gstrtprtxsend.c
+++ b/gst/rtpmanager/gstrtprtxsend.c
@@ -617,8 +617,9 @@ gst_rtp_rtx_send_sink_event (GstPad * pad, GstObject * parent, GstEvent * event)
         GST_WARNING_OBJECT (rtx, "Payload %d not in rtx-pt-map", payload);
 
       GST_DEBUG_OBJECT (rtx,
-          "got caps for payload: %d->%d, ssrc: %u->%d: %" GST_PTR_FORMAT,
-          payload, GPOINTER_TO_INT (rtx_payload), ssrc, data->rtx_ssrc, caps);
+          "got caps for payload: %d->%d, ssrc: %u->%" G_GUINT32_FORMAT ": %"
+          GST_PTR_FORMAT, payload, GPOINTER_TO_INT (rtx_payload), ssrc,
+          data->rtx_ssrc, caps);
 
       gst_structure_get_int (s, "clock-rate", &data->clock_rate);
 
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c
index b1ebceafc8dad86fcc16943be11e506e064be218..2604c61fd32e0b949adf1f70b20e1c190a3ecccd 100644
--- a/gst/rtpmanager/gstrtpsession.c
+++ b/gst/rtpmanager/gstrtpsession.c
@@ -635,7 +635,7 @@ gst_rtp_session_class_init (GstRtpSessionClass * klass)
   g_object_class_install_property (gobject_class, PROP_USE_PIPELINE_CLOCK,
       g_param_spec_boolean ("use-pipeline-clock", "Use pipeline clock",
           "Use the pipeline running-time to set the NTP time in the RTCP SR messages "
-          "(DEPRECATED: Use ntp-source property)",
+          "(DEPRECATED: Use ntp-time-source property)",
           DEFAULT_USE_PIPELINE_CLOCK,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
 
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index e26817b55d476e32220df659b6fb34c100639306..5aabe41468ef29db05ed376cd3c18d2463435bbd 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -1803,6 +1803,7 @@ rtp_source_has_retained (RTPSource * src, GCompareFunc func, gconstpointer data)
 }
 
 /**
+ * rtp_source_register_nack:
  * @src: The #RTPSource
  * @seqnum: a seqnum
  *
@@ -1850,6 +1851,7 @@ rtp_source_register_nack (RTPSource * src, guint16 seqnum)
 }
 
 /**
+ * rtp_source_get_nacks:
  * @src: The #RTPSource
  * @n_nacks: result number of nacks
  *
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index c2958e18c4f1e3aab8a35ee040ce15a9b8aeb6c7..65e1967254d06d623457f1ef421d80ed067b7a22 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/rtsp
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -585,7 +596,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/rtsp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/rtsp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -918,6 +928,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index 610b084614a0e1a476bc895e848463cfa1880e3a..4cdd335317a67cb6d8bdf1c23fdf5696135de68e 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -164,6 +164,37 @@ gst_rtsp_src_buffer_mode_get_type (void)
   return buffer_mode_type;
 }
 
+enum _GstRtspSrcNtpTimeSource
+{
+  NTP_TIME_SOURCE_NTP,
+  NTP_TIME_SOURCE_UNIX,
+  NTP_TIME_SOURCE_RUNNING_TIME,
+  NTP_TIME_SOURCE_CLOCK_TIME
+};
+
+#define GST_TYPE_RTSP_SRC_NTP_TIME_SOURCE (gst_rtsp_src_ntp_time_source_get_type())
+static GType
+gst_rtsp_src_ntp_time_source_get_type (void)
+{
+  static GType ntp_time_source_type = 0;
+  static const GEnumValue ntp_time_source_values[] = {
+    {NTP_TIME_SOURCE_NTP, "NTP time based on realtime clock", "ntp"},
+    {NTP_TIME_SOURCE_UNIX, "UNIX time based on realtime clock", "unix"},
+    {NTP_TIME_SOURCE_RUNNING_TIME,
+          "Running time based on pipeline clock",
+        "running-time"},
+    {NTP_TIME_SOURCE_CLOCK_TIME, "Pipeline clock time", "clock-time"},
+    {0, NULL, NULL},
+  };
+
+  if (!ntp_time_source_type) {
+    ntp_time_source_type =
+        g_enum_register_static ("GstRTSPSrcNtpTimeSource",
+        ntp_time_source_values);
+  }
+  return ntp_time_source_type;
+}
+
 #define AES_128_KEY_LEN 16
 #define AES_256_KEY_LEN 32
 
@@ -199,6 +230,8 @@ gst_rtsp_src_buffer_mode_get_type (void)
 #define DEFAULT_TLS_DATABASE     NULL
 #define DEFAULT_TLS_INTERACTION     NULL
 #define DEFAULT_DO_RETRANSMISSION        TRUE
+#define DEFAULT_NTP_TIME_SOURCE  NTP_TIME_SOURCE_NTP
+#define DEFAULT_USER_AGENT       "GStreamer/" PACKAGE_VERSION
 
 enum
 {
@@ -234,7 +267,9 @@ enum
   PROP_TLS_VALIDATION_FLAGS,
   PROP_TLS_DATABASE,
   PROP_TLS_INTERACTION,
-  PROP_DO_RETRANSMISSION
+  PROP_DO_RETRANSMISSION,
+  PROP_NTP_TIME_SOURCE,
+  PROP_USER_AGENT
 };
 
 #define GST_TYPE_RTSP_NAT_METHOD (gst_rtsp_nat_method_get_type())
@@ -605,9 +640,10 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
 
   g_object_class_install_property (gobject_class, PROP_USE_PIPELINE_CLOCK,
       g_param_spec_boolean ("use-pipeline-clock", "Use pipeline clock",
-          "Use the pipeline running-time to set the NTP time in the RTCP SR messages",
+          "Use the pipeline running-time to set the NTP time in the RTCP SR messages"
+          "(DEPRECATED: Use ntp-time-source property)",
           DEFAULT_USE_PIPELINE_CLOCK,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
 
   g_object_class_install_property (gobject_class, PROP_SDES,
       g_param_spec_boxed ("sdes", "SDES",
@@ -670,6 +706,32 @@ gst_rtspsrc_class_init (GstRTSPSrcClass * klass)
           DEFAULT_DO_RETRANSMISSION,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  /**
+   * GstRTSPSrc::ntp-time-source:
+   *
+   * allows to select the time source that should be used
+   * for the NTP time in RTCP packets
+   *
+   * Since: 1.6
+   */
+  g_object_class_install_property (gobject_class, PROP_NTP_TIME_SOURCE,
+      g_param_spec_enum ("ntp-time-source", "NTP Time Source",
+          "NTP time source for RTCP packets",
+          GST_TYPE_RTSP_SRC_NTP_TIME_SOURCE, DEFAULT_NTP_TIME_SOURCE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstRTSPSrc::user-agent:
+   *
+   * The string to set in the User-Agent header.
+   *
+   * Since: 1.6
+   */
+  g_object_class_install_property (gobject_class, PROP_USER_AGENT,
+      g_param_spec_string ("user-agent", "User Agent",
+          "The User-Agent string to send to the server",
+          DEFAULT_USER_AGENT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRTSPSrc::handle-request:
    * @rtspsrc: a #GstRTSPSrc
@@ -815,6 +877,8 @@ gst_rtspsrc_init (GstRTSPSrc * src)
   src->tls_database = DEFAULT_TLS_DATABASE;
   src->tls_interaction = DEFAULT_TLS_INTERACTION;
   src->do_retransmission = DEFAULT_DO_RETRANSMISSION;
+  src->ntp_time_source = DEFAULT_NTP_TIME_SOURCE;
+  src->user_agent = g_strdup (DEFAULT_USER_AGENT);
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -849,6 +913,7 @@ gst_rtspsrc_finalize (GObject * object)
   g_free (rtspsrc->user_id);
   g_free (rtspsrc->user_pw);
   g_free (rtspsrc->multi_iface);
+  g_free (rtspsrc->user_agent);
 
   if (rtspsrc->sdp) {
     gst_sdp_message_free (rtspsrc->sdp);
@@ -1089,6 +1154,13 @@ gst_rtspsrc_set_property (GObject * object, guint prop_id, const GValue * value,
     case PROP_DO_RETRANSMISSION:
       rtspsrc->do_retransmission = g_value_get_boolean (value);
       break;
+    case PROP_NTP_TIME_SOURCE:
+      rtspsrc->ntp_time_source = g_value_get_enum (value);
+      break;
+    case PROP_USER_AGENT:
+      g_free (rtspsrc->user_agent);
+      rtspsrc->user_agent = g_value_dup_string (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1226,6 +1298,12 @@ gst_rtspsrc_get_property (GObject * object, guint prop_id, GValue * value,
     case PROP_DO_RETRANSMISSION:
       g_value_set_boolean (value, rtspsrc->do_retransmission);
       break;
+    case PROP_NTP_TIME_SOURCE:
+      g_value_set_enum (value, rtspsrc->ntp_time_source);
+      break;
+    case PROP_USER_AGENT:
+      g_value_set_string (value, rtspsrc->user_agent);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2097,6 +2175,11 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media)
       for (i = 0; pairs[i]; i++) {
         gchar *valpos;
         const gchar *val, *key;
+        gint j;
+        const gchar *reserved_keys[] =
+            { "media", "payload", "clock-rate", "encoding-name",
+          "encoding-params"
+        };
 
         /* the key may not have a '=', the value can have other '='s */
         valpos = strstr (pairs[i], "=");
@@ -2115,6 +2198,19 @@ gst_rtspsrc_media_to_caps (gint pt, const GstSDPMedia * media)
         }
         /* strip the key of spaces, convert key to lowercase but not the value. */
         key = g_strstrip (pairs[i]);
+
+        /* skip keys from the fmtp, which we already use ourselves for the
+         * caps. Some software is adding random things like clock-rate into
+         * the fmtp, and we would otherwise here set a string-typed clock-rate
+         * in the caps... and thus fail to create valid RTP caps
+         */
+        for (j = 0; j < G_N_ELEMENTS (reserved_keys); j++) {
+          if (g_ascii_strcasecmp (reserved_keys[j], key) == 0) {
+            key = "";
+            break;
+          }
+        }
+
         if (strlen (key) > 1) {
           tmp = g_ascii_strdown (key, -1);
           gst_structure_set (s, tmp, G_TYPE_STRING, val, NULL);
@@ -3354,9 +3450,15 @@ gst_rtspsrc_stream_configure_manager (GstRTSPSrc * src, GstRTSPStream * stream,
         g_object_set (src->manager, "ntp-sync", src->ntp_sync, NULL);
       }
 
-      if (g_object_class_find_property (klass, "use-pipeline-clock")) {
-        g_object_set (src->manager, "use-pipeline-clock",
-            src->use_pipeline_clock, NULL);
+      if (src->use_pipeline_clock) {
+        if (g_object_class_find_property (klass, "use-pipeline-clock")) {
+          g_object_set (src->manager, "use-pipeline-clock", TRUE, NULL);
+        }
+      } else {
+        if (g_object_class_find_property (klass, "ntp-time-source")) {
+          g_object_set (src->manager, "ntp-time-source", src->ntp_time_source,
+              NULL);
+        }
       }
 
       if (src->sdes && g_object_class_find_property (klass, "sdes")) {
@@ -4488,6 +4590,23 @@ gst_rtspsrc_connection_flush (GstRTSPSrc * src, gboolean flush)
   GST_RTSP_STATE_UNLOCK (src);
 }
 
+static GstRTSPResult
+gst_rtspsrc_init_request (GstRTSPSrc * src, GstRTSPMessage * msg,
+    GstRTSPMethod method, const gchar * uri)
+{
+  GstRTSPResult res;
+
+  res = gst_rtsp_message_init_request (msg, method, uri);
+  if (res < 0)
+    return res;
+
+  /* set user-agent */
+  if (src->user_agent)
+    gst_rtsp_message_add_header (msg, GST_RTSP_HDR_USER_AGENT, src->user_agent);
+
+  return res;
+}
+
 /* FIXME, handle server request, reply with OK, for now */
 static GstRTSPResult
 gst_rtspsrc_handle_request (GstRTSPSrc * src, GstRTSPConnection * conn,
@@ -4564,7 +4683,7 @@ gst_rtspsrc_send_keep_alive (GstRTSPSrc * src)
   if (control == NULL)
     goto no_control;
 
-  res = gst_rtsp_message_init_request (&request, method, control);
+  res = gst_rtspsrc_init_request (src, &request, method, control);
   if (res < 0)
     goto send_error;
 
@@ -6501,7 +6620,7 @@ gst_rtspsrc_setup_streams (GstRTSPSrc * src, gboolean async)
 
     /* create SETUP request */
     res =
-        gst_rtsp_message_init_request (&request, GST_RTSP_SETUP,
+        gst_rtspsrc_init_request (src, &request, GST_RTSP_SETUP,
         stream->conninfo.location);
     if (res < 0) {
       g_free (transports);
@@ -7038,7 +7157,7 @@ restart:
   /* create OPTIONS */
   GST_DEBUG_OBJECT (src, "create options...");
   res =
-      gst_rtsp_message_init_request (&request, GST_RTSP_OPTIONS,
+      gst_rtspsrc_init_request (src, &request, GST_RTSP_OPTIONS,
       src->conninfo.url_str);
   if (res < 0)
     goto create_request_failed;
@@ -7061,7 +7180,7 @@ restart:
   /* create DESCRIBE */
   GST_DEBUG_OBJECT (src, "create describe...");
   res =
-      gst_rtsp_message_init_request (&request, GST_RTSP_DESCRIBE,
+      gst_rtspsrc_init_request (src, &request, GST_RTSP_DESCRIBE,
       src->conninfo.url_str);
   if (res < 0)
     goto create_request_failed;
@@ -7277,7 +7396,7 @@ gst_rtspsrc_close (GstRTSPSrc * src, gboolean async, gboolean only_close)
 
     /* do TEARDOWN */
     res =
-        gst_rtsp_message_init_request (&request, GST_RTSP_TEARDOWN, setup_url);
+        gst_rtspsrc_init_request (src, &request, GST_RTSP_TEARDOWN, setup_url);
     if (res < 0)
       goto create_request_failed;
 
@@ -7591,7 +7710,7 @@ gst_rtspsrc_play (GstRTSPSrc * src, GstSegment * segment, gboolean async)
     }
 
     /* do play */
-    res = gst_rtsp_message_init_request (&request, GST_RTSP_PLAY, setup_url);
+    res = gst_rtspsrc_init_request (src, &request, GST_RTSP_PLAY, setup_url);
     if (res < 0)
       goto create_request_failed;
 
@@ -7805,7 +7924,7 @@ gst_rtspsrc_pause (GstRTSPSrc * src, gboolean async)
           ("Sending PAUSE request"));
 
     if ((res =
-            gst_rtsp_message_init_request (&request, GST_RTSP_PAUSE,
+            gst_rtspsrc_init_request (src, &request, GST_RTSP_PAUSE,
                 setup_url)) < 0)
       goto create_request_failed;
 
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index 579666ecae640bee4dc46338980d5e4b9b386938..a3d0a9a61d8253aba0ecbb6e569c223d22acd756 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -236,6 +236,8 @@ struct _GstRTSPSrc {
   GTlsDatabase     *tls_database;
   GTlsInteraction  *tls_interaction;
   gboolean          do_retransmission;
+  gint              ntp_time_source;
+  gchar            *user_agent;
 
   /* state */
   GstRTSPState       state;
diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in
index 1f2f0be7d95f13624a2f54311934f25e1a0e35d3..010edc8564af5f63c1e6709a3e96b51ae187d716 100644
--- a/gst/shapewipe/Makefile.in
+++ b/gst/shapewipe/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/shapewipe
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/shapewipe/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/shapewipe/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in
index ec2275168f316f5841ef856dc9557d59c9f80ab4..a230e994bccdeef90f3cf9c5688e982a64fbaf37 100644
--- a/gst/smpte/Makefile.in
+++ b/gst/smpte/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/smpte
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -577,7 +588,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/smpte/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/smpte/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -926,6 +936,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in
index f799b1f882662e382bf413f55d7d85715674498e..95a462fb853aca9291525a9b7e64a7ad4e51f4fc 100644
--- a/gst/spectrum/Makefile.in
+++ b/gst/spectrum/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/spectrum
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -578,7 +589,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/spectrum/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/spectrum/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -887,6 +897,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in
index 9fc150cc7bdf16638796d2da9bcd9aeb3d342bfb..bcc546d31304ea1c852e684deb48d39f97941224 100644
--- a/gst/udp/Makefile.in
+++ b/gst/udp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/udp
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -578,7 +589,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/udp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/udp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -928,6 +938,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in
index 2042107ba0dcbb86624c853616434e9d03bac7af..24c67edd8cf3f70250c9ae9381a0bfb54668b5c0 100644
--- a/gst/videobox/Makefile.in
+++ b/gst/videobox/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,9 +112,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
-	README
 subdir = gst/videobox
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -141,6 +148,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -253,6 +262,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -621,7 +632,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videobox/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videobox/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -630,7 +640,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
+$(top_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -946,6 +956,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in
index 9ae403eca5acf7f63661fce7b24abad212fff6f5..304f1e30e9ed2e26e189d872f672ca5ac01dd84f 100644
--- a/gst/videocrop/Makefile.in
+++ b/gst/videocrop/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videocrop
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -578,7 +589,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videocrop/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videocrop/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -895,6 +905,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in
index 6dd29ea2d126fb95ef743a0e2eb8354c4a76840d..05f69e520d8f4ddc5bb99d16d6f497161f5570f2 100644
--- a/gst/videofilter/Makefile.in
+++ b/gst/videofilter/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/videofilter
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -589,7 +600,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videofilter/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videofilter/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -931,6 +941,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 gstvideoexample.c: $(srcdir)/make_filter $(srcdir)/gstvideotemplate.c
 	$(srcdir)/make_filter Videoexample $(srcdir)/gstvideotemplate.c
diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in
index 955512f712de23cbe8f5e1f9a8c6a991fb0c9bd4..bed15930f4b8079ff767aff632dc390f51762db4 100644
--- a/gst/videomixer/Makefile.in
+++ b/gst/videomixer/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -38,7 +38,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -102,9 +112,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/orc.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp $(noinst_HEADERS) \
-	README
 subdir = gst/videomixer
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -141,6 +148,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -254,6 +263,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/orc.mak \
+	$(top_srcdir)/depcomp README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -627,7 +638,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/videomixer/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/videomixer/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -636,7 +646,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/orc.mak:
+$(top_srcdir)/common/orc.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -960,6 +970,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 orc-update: tmp-orc.c $(ORC_SOURCE).h
 	$(top_srcdir)/common/gst-indent tmp-orc.c
diff --git a/gst/videomixer/videomixerorc-dist.c b/gst/videomixer/videomixerorc-dist.c
index 115b6fcc95018240e12d76a46179d365f986a165..7ddc1b0802aae003c8daf32f346fad87e8d5e33b 100644
--- a/gst/videomixer/videomixerorc-dist.c
+++ b/gst/videomixer/videomixerorc-dist.c
@@ -1713,7 +1713,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
       static const orc_uint8 bc[] = {
         1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
         111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103,
-        98,
+            98,
         11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0,
         0, 0, 14, 4, 0, 255, 255, 255, 14, 2, 8, 0, 0, 0, 16, 2,
         20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8,
@@ -2283,7 +2283,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
       static const orc_uint8 bc[] = {
         1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
         111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114,
-        97,
+            97,
         11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0,
         0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 2,
         8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8,
diff --git a/gst/wavenc/Makefile.in b/gst/wavenc/Makefile.in
index bffe23a1f64c207db6736fd57269806daed2719e..a756e10fd512f5ed4f54e2896a7ad340d425bfbc 100644
--- a/gst/wavenc/Makefile.in
+++ b/gst/wavenc/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/wavenc
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -582,7 +593,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/wavenc/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/wavenc/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -891,6 +901,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in
index 9c7ce5d3dc93f45892f8bad9ddf50ec0184249f9..a644f657e96f1ffc6335b717a53e6462ca730d93 100644
--- a/gst/wavparse/Makefile.in
+++ b/gst/wavparse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/wavparse
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -226,6 +236,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -585,7 +596,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/wavparse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/wavparse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -894,6 +904,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 956ebd7f7bb28f6a2ea161563a07add6beb11afe..7b2eeebea26c98fd6a59e8fe5ac53fa31ab64ebc 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = gst/y4m
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -225,6 +235,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -572,7 +583,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu gst/y4m/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu gst/y4m/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -881,6 +891,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c
index 7b39d5f8a242afb2f5cf65c6ec7f30fefbaef50c..7c32af22f06e8e5313d89424bfad7fa350521b24 100644
--- a/gst/y4m/gsty4mencode.c
+++ b/gst/y4m/gsty4mencode.c
@@ -28,7 +28,7 @@
  * <para>
  * (write everything in one line, without the backslash characters)
  * <programlisting>
- * gst-launch-0.10 videotestsrc num-buffers=250 \
+ * gst-launch-1.0 videotestsrc num-buffers=250 \
  * ! 'video/x-raw,format=(string)I420,width=320,height=240,framerate=(fraction)25/1' \
  * ! y4menc ! filesink location=test.yuv
  * </programlisting>
@@ -114,6 +114,8 @@ gst_y4m_encode_class_init (GstY4mEncodeClass * klass)
 static void
 gst_y4m_encode_init (GstY4mEncode * filter)
 {
+  GST_PAD_SET_ACCEPT_TEMPLATE (GST_VIDEO_ENCODER_SINK_PAD (filter));
+
   /* init properties */
   gst_y4m_encode_reset (filter);
 }
diff --git a/install-sh b/install-sh
index 377bb8687ffe16bfc79ea25c8667cabf72aaf2c2..59990a10492675f2e87d5e5df17b566d145d9aee 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2011-11-20.07; # UTC
+scriptversion=2014-09-12.12; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -41,19 +41,15 @@ scriptversion=2011-11-20.07; # UTC
 # This script is compatible with the BSD install script, but was written
 # from scratch.
 
+tab='	'
 nl='
 '
-IFS=" ""	$nl"
+IFS=" $tab$nl"
 
-# set DOITPROG to echo to test this script
+# Set DOITPROG to "echo" to test this script.
 
-# Don't use :- since 4.3BSD and earlier shells don't like it.
 doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
+doit_exec=${doit:-exec}
 
 # Put in absolute file names if you don't have them in your path;
 # or use environment vars.
@@ -68,17 +64,6 @@ mvprog=${MVPROG-mv}
 rmprog=${RMPROG-rm}
 stripprog=${STRIPPROG-strip}
 
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
 posix_mkdir=
 
 # Desired mode of installed file.
@@ -97,7 +82,7 @@ dir_arg=
 dst_arg=
 
 copy_on_change=false
-no_target_directory=
+is_target_a_directory=possibly
 
 usage="\
 Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
@@ -137,46 +122,57 @@ while test $# -ne 0; do
     -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-	shift;;
+        shift;;
 
     --help) echo "$usage"; exit $?;;
 
     -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
+        case $mode in
+          *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+            echo "$0: invalid mode: $mode" >&2
+            exit 1;;
+        esac
+        shift;;
 
     -o) chowncmd="$chownprog $2"
-	shift;;
+        shift;;
 
     -s) stripcmd=$stripprog;;
 
-    -t) dst_arg=$2
-	# Protect names problematic for 'test' and other utilities.
-	case $dst_arg in
-	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
-	esac
-	shift;;
+    -t)
+        is_target_a_directory=always
+        dst_arg=$2
+        # Protect names problematic for 'test' and other utilities.
+        case $dst_arg in
+          -* | [=\(\)!]) dst_arg=./$dst_arg;;
+        esac
+        shift;;
 
-    -T) no_target_directory=true;;
+    -T) is_target_a_directory=never;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    --)	shift
-	break;;
+    --) shift
+        break;;
 
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
+    -*) echo "$0: invalid option: $1" >&2
+        exit 1;;
 
     *)  break;;
   esac
   shift
 done
 
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+  if test -n "$dst_arg"; then
+    echo "$0: target directory not allowed when installing a directory." >&2
+    exit 1
+  fi
+fi
+
 if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
   # When -d is used, all remaining arguments are directories to create.
   # When -t is used, the destination is already specified.
@@ -207,6 +203,15 @@ if test $# -eq 0; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  if test $# -gt 1 || test "$is_target_a_directory" = always; then
+    if test ! -d "$dst_arg"; then
+      echo "$0: $dst_arg: Is not a directory." >&2
+      exit 1
+    fi
+  fi
+fi
+
 if test -z "$dir_arg"; then
   do_exit='(exit $ret); exit $ret'
   trap "ret=129; $do_exit" 1
@@ -223,16 +228,16 @@ if test -z "$dir_arg"; then
 
     *[0-7])
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw='% 200'
+        u_plus_rw='% 200'
       fi
       cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
     *)
       if test -z "$stripcmd"; then
-	u_plus_rw=
+        u_plus_rw=
       else
-	u_plus_rw=,u+rw
+        u_plus_rw=,u+rw
       fi
       cp_umask=$mode$u_plus_rw;;
   esac
@@ -269,41 +274,15 @@ do
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
+      if test "$is_target_a_directory" = never; then
+        echo "$0: $dst_arg: Is a directory" >&2
+        exit 1
       fi
       dstdir=$dst
       dst=$dstdir/`basename "$src"`
       dstdir_status=0
     else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
+      dstdir=`dirname "$dst"`
       test -d "$dstdir"
       dstdir_status=$?
     fi
@@ -314,74 +293,81 @@ do
   if test $dstdir_status != 0; then
     case $posix_mkdir in
       '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
-
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
-	else
-	  mkdir_mode=
-	fi
-
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      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-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
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
+        # Create intermediate dirs using mode 755 as modified by the umask.
+        # This is like FreeBSD 'install' as of 1997-10-28.
+        umask=`umask`
+        case $stripcmd.$umask in
+          # Optimize common cases.
+          *[2367][2367]) mkdir_umask=$umask;;
+          .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+          *[0-7])
+            mkdir_umask=`expr $umask + 22 \
+              - $umask % 100 % 40 + $umask % 20 \
+              - $umask % 10 % 4 + $umask % 2
+            `;;
+          *) mkdir_umask=$umask,go-w;;
+        esac
+
+        # With -d, create the new directory with the user-specified mode.
+        # Otherwise, rely on $mkdir_umask.
+        if test -n "$dir_arg"; then
+          mkdir_mode=-m$mode
+        else
+          mkdir_mode=
+        fi
+
+        posix_mkdir=false
+        case $umask in
+          *[123567][0-7][0-7])
+            # POSIX mkdir -p sets u+wx bits regardless of umask, which
+            # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+            ;;
+          *)
+            # $RANDOM is not portable (e.g. dash);  use it when possible to
+            # lower collision chance
+            tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+            trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+            # As "mkdir -p" follows symlinks and we work in /tmp possibly;  so
+            # create the $tmpdir first (and fail if unsuccessful) to make sure
+            # that nobody tries to guess the $tmpdir name.
+            if (umask $mkdir_umask &&
+                $mkdirprog $mkdir_mode "$tmpdir" &&
+                exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+            then
+              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-writable bit of parent directory when it shouldn't.
+                   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+                   test_tmpdir="$tmpdir/a"
+                   ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+                   case $ls_ld_tmpdir in
+                     d????-?r-*) different_mode=700;;
+                     d????-?--*) different_mode=755;;
+                     *) false;;
+                   esac &&
+                   $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+                     ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+                     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+                   }
+                 }
+              then posix_mkdir=:
+              fi
+              rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+            else
+              # Remove any dirs left behind by ancient mkdir implementations.
+              rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+            fi
+            trap '' 0;;
+        esac;;
     esac
 
     if
       $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+        umask $mkdir_umask &&
+        $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
       )
     then :
     else
@@ -391,53 +377,51 @@ do
       # directory the slow way, step by step, checking for races as we go.
 
       case $dstdir in
-	/*) prefix='/';;
-	[-=\(\)!]*) prefix='./';;
-	*)  prefix='';;
+        /*) prefix='/';;
+        [-=\(\)!]*) prefix='./';;
+        *)  prefix='';;
       esac
 
-      eval "$initialize_posix_glob"
-
       oIFS=$IFS
       IFS=/
-      $posix_glob set -f
+      set -f
       set fnord $dstdir
       shift
-      $posix_glob set +f
+      set +f
       IFS=$oIFS
 
       prefixes=
 
       for d
       do
-	test X"$d" = X && continue
-
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
+        test X"$d" = X && continue
+
+        prefix=$prefix$d
+        if test -d "$prefix"; then
+          prefixes=
+        else
+          if $posix_mkdir; then
+            (umask=$mkdir_umask &&
+             $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+            # Don't fail if two instances are running concurrently.
+            test -d "$prefix" || exit 1
+          else
+            case $prefix in
+              *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+              *) qprefix=$prefix;;
+            esac
+            prefixes="$prefixes '$qprefix'"
+          fi
+        fi
+        prefix=$prefix/
       done
 
       if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
+        # Don't fail if two instances are running concurrently.
+        (umask $mkdir_umask &&
+         eval "\$doit_exec \$mkdirprog $prefixes") ||
+          test -d "$dstdir" || exit 1
+        obsolete_mkdir_used=true
       fi
     fi
   fi
@@ -472,15 +456,12 @@ do
 
     # If -C, don't bother to copy if it wouldn't change the file.
     if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
+       old=`LC_ALL=C ls -dlL "$dst"     2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"  2>/dev/null` &&
+       set -f &&
        set X $old && old=:$2:$4:$5:$6 &&
        set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
+       set +f &&
        test "$old" = "$new" &&
        $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
     then
@@ -493,24 +474,24 @@ do
       # to itself, or perhaps because mv is so ancient that it does not
       # support -f.
       {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
+        # Now remove or move aside any old file at destination location.
+        # We try this two ways since rm can't unlink itself on some
+        # systems and the destination file might be busy for other
+        # reasons.  In this case, the final cleanup might fail but the new
+        # file should still install successfully.
+        {
+          test ! -f "$dst" ||
+          $doit $rmcmd -f "$dst" 2>/dev/null ||
+          { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+            { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+          } ||
+          { echo "$0: cannot unlink or rename $dst" >&2
+            (exit 1); exit 1
+          }
+        } &&
+
+        # Now rename the file to the real destination.
+        $doit $mvcmd "$dsttmp" "$dst"
       }
     fi || exit 1
 
diff --git a/m4/Makefile.am b/m4/Makefile.am
index 53032c3b9c083bb6bb62be9bf3250637073e7589..d3738ca38b328583e3ec7e3fd3be117091d70821 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -27,7 +27,6 @@ EXTRA_DIST = \
 	libfame.m4 \
 	lib-ld.m4 \
 	lib-link.m4 \
-	libmikmod.m4 \
 	lib-prefix.m4 \
 	ogg.m4 \
 	progtest.m4 \
diff --git a/m4/Makefile.in b/m4/Makefile.in
index cdc49b0cccdfb1ab9e23b1ad101b6b642d259669..6e9ab1955f6340cc1deee57d297761b608421de4 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = m4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am README
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -115,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -139,6 +149,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -492,7 +503,6 @@ EXTRA_DIST = \
 	libfame.m4 \
 	lib-ld.m4 \
 	lib-link.m4 \
-	libmikmod.m4 \
 	lib-prefix.m4 \
 	ogg.m4 \
 	progtest.m4 \
@@ -515,7 +525,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu m4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu m4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -690,6 +699,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/m4/libmikmod.m4 b/m4/libmikmod.m4
deleted file mode 100644
index 9368d758c2aab0b7d72da4757932ad1b4c59beff..0000000000000000000000000000000000000000
--- a/m4/libmikmod.m4
+++ /dev/null
@@ -1,216 +0,0 @@
-# Configure paths for libmikmod
-#
-# Derived from glib.m4 (Owen Taylor 97-11-3)
-# Improved by Chris Butler
-#
-
-dnl AM_PATH_LIBMIKMOD([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND ]]])
-dnl Test for libmikmod, and define LIBMIKMOD_CFLAGS, LIBMIKMOD_LIBS and
-dnl LIBMIKMOD_LDADD
-dnl
-AC_DEFUN([AM_PATH_LIBMIKMOD],
-[dnl 
-dnl Get the cflags and libraries from the libmikmod-config script
-dnl
-AC_ARG_WITH(libmikmod-prefix,
-  AC_HELP_STRING([--with-libmikmod-prefix=PFX],
-                 [prefix where libmikmod is installed (optional)]),
-  libmikmod_config_prefix="$withval", libmikmod_config_prefix="")
-
-AC_ARG_WITH(libmikmod-exec-prefix, 
-  AC_HELP_STRING([--with-libmikmod-exec-prefix=PFX],
-                 [exec prefix where libmikmod is installed (optional)]),
-  libmikmod_config_exec_prefix="$withval", libmikmod_config_exec_prefix="")
-
-AC_ARG_ENABLE(libmikmodtest,
-  AC_HELP_STRING([--disable-libmikmodtest],
-                 [Do not try to compile and run a test libmikmod program]),
-  , enable_libmikmodtest=yes)
-
-  if test x$libmikmod_config_exec_prefix != x ; then
-     libmikmod_config_args="$libmikmod_config_args --exec-prefix=$libmikmod_config_exec_prefix"
-     if test x${LIBMIKMOD_CONFIG+set} != xset ; then
-        LIBMIKMOD_CONFIG=$libmikmod_config_exec_prefix/bin/libmikmod-config
-     fi
-  fi
-  if test x$libmikmod_config_prefix != x ; then
-     libmikmod_config_args="$libmikmod_config_args --prefix=$libmikmod_config_prefix"
-     if test x${LIBMIKMOD_CONFIG+set} != xset ; then
-        LIBMIKMOD_CONFIG=$libmikmod_config_prefix/bin/libmikmod-config
-     fi
-  fi
-
-  AC_PATH_PROG(LIBMIKMOD_CONFIG, libmikmod-config, no)
-  min_libmikmod_version=ifelse([$1], ,3.1.5,$1)
-  AC_MSG_CHECKING(for libmikmod - version >= $min_libmikmod_version)
-  no_libmikmod=""
-  if test "$LIBMIKMOD_CONFIG" = "no" ; then
-    no_libmikmod=yes
-  else
-    LIBMIKMOD_CFLAGS=`$LIBMIKMOD_CONFIG $libmikmod_config_args --cflags`
-    LIBMIKMOD_LIBS=`$LIBMIKMOD_CONFIG $libmikmod_config_args --libs`
-    LIBMIKMOD_LDADD=`$LIBMIKMOD_CONFIG $libmikmod_config_args --ldadd`
-    libmikmod_config_major_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\1/'`
-    libmikmod_config_minor_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\2/'`
-    libmikmod_config_micro_version=`$LIBMIKMOD_CONFIG $libmikmod_config_args --version | \
-           sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\).*/\3/'`
-    if test "x$enable_libmikmodtest" = "xyes" ; then
-      ac_save_CFLAGS="$CFLAGS"
-      ac_save_LIBS="$LIBS"
-	  AC_LANG_SAVE
-	  AC_LANG_C
-      CFLAGS="$CFLAGS $LIBMIKMOD_CFLAGS $LIBMIKMOD_LDADD"
-      LIBS="$LIBMIKMOD_LIBS $LIBS"
-dnl
-dnl Now check if the installed libmikmod is sufficiently new. (Also sanity
-dnl checks the results of libmikmod-config to some extent
-dnl
-      rm -f conf.mikmodtest
-      AC_TRY_RUN([
-#include <mikmod.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-char* my_strdup (char *str)
-{
-  char *new_str;
-
-  if (str) {
-    new_str = malloc ((strlen (str) + 1) * sizeof(char));
-    strcpy (new_str, str);
-  } else
-    new_str = NULL;
-
-  return new_str;
-}
-
-int main()
-{
-  int major,minor,micro;
-  int libmikmod_major_version,libmikmod_minor_version,libmikmod_micro_version;
-  char *tmp_version;
-
-  system("touch conf.mikmodtest");
-
-  /* HP/UX 9 (%@#!) writes to sscanf strings */
-  tmp_version = my_strdup("$min_libmikmod_version");
-  if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
-     printf("%s, bad version string\n", "$min_libmikmod_version");
-     exit(1);
-   }
-
-  libmikmod_major_version=(MikMod_GetVersion() >> 16) & 255;
-  libmikmod_minor_version=(MikMod_GetVersion() >>  8) & 255;
-  libmikmod_micro_version=(MikMod_GetVersion()      ) & 255;
-
-  if ((libmikmod_major_version != $libmikmod_config_major_version) ||
-      (libmikmod_minor_version != $libmikmod_config_minor_version) ||
-      (libmikmod_micro_version != $libmikmod_config_micro_version))
-    {
-      printf("\n*** 'libmikmod-config --version' returned %d.%d.%d, but libmikmod (%d.%d.%d)\n", 
-             $libmikmod_config_major_version, $libmikmod_config_minor_version, $libmikmod_config_micro_version,
-             libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
-      printf ("*** was found! If libmikmod-config was correct, then it is best\n");
-      printf ("*** to remove the old version of libmikmod. You may also be able to fix the error\n");
-      printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
-      printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
-      printf("*** required on your system.\n");
-      printf("*** If libmikmod-config was wrong, set the environment variable LIBMIKMOD_CONFIG\n");
-      printf("*** to point to the correct copy of libmikmod-config, and remove the file config.cache\n");
-      printf("*** before re-running configure\n");
-    } 
-  else if ((libmikmod_major_version != LIBMIKMOD_VERSION_MAJOR) ||
-	   (libmikmod_minor_version != LIBMIKMOD_VERSION_MINOR) ||
-           (libmikmod_micro_version != LIBMIKMOD_REVISION))
-    {
-      printf("*** libmikmod header files (version %ld.%ld.%ld) do not match\n",
-	     LIBMIKMOD_VERSION_MAJOR, LIBMIKMOD_VERSION_MINOR, LIBMIKMOD_REVISION);
-      printf("*** library (version %d.%d.%d)\n",
-	     libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
-    }
-  else
-    {
-      if ((libmikmod_major_version > major) ||
-        ((libmikmod_major_version == major) && (libmikmod_minor_version > minor)) ||
-        ((libmikmod_major_version == major) && (libmikmod_minor_version == minor) && (libmikmod_micro_version >= micro)))
-      {
-        return 0;
-       }
-     else
-      {
-        printf("\n*** An old version of libmikmod (%d.%d.%d) was found.\n",
-               libmikmod_major_version, libmikmod_minor_version, libmikmod_micro_version);
-        printf("*** You need a version of libmikmod newer than %d.%d.%d.\n",
-	       major, minor, micro);
-        printf("***\n");
-        printf("*** If you have already installed a sufficiently new version, this error\n");
-        printf("*** probably means that the wrong copy of the libmikmod-config shell script is\n");
-        printf("*** being found. The easiest way to fix this is to remove the old version\n");
-        printf("*** of libmikmod, but you can also set the LIBMIKMOD_CONFIG environment to point to the\n");
-        printf("*** correct copy of libmikmod-config. (In this case, you will have to\n");
-        printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
-        printf("*** so that the correct libraries are found at run-time))\n");
-      }
-    }
-  return 1;
-}
-],, no_libmikmod=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
-       CFLAGS="$ac_save_CFLAGS"
-       LIBS="$ac_save_LIBS"
-	   AC_LANG_RESTORE
-     fi
-  fi
-  if test "x$no_libmikmod" = x ; then
-     AC_MSG_RESULT([yes, `$LIBMIKMOD_CONFIG --version`])
-     ifelse([$2], , :, [$2])     
-  else
-     AC_MSG_RESULT(no)
-     if test "$LIBMIKMOD_CONFIG" = "no" ; then
-       echo "*** The libmikmod-config script installed by libmikmod could not be found"
-       echo "*** If libmikmod was installed in PREFIX, make sure PREFIX/bin is in"
-       echo "*** your path, or set the LIBMIKMOD_CONFIG environment variable to the"
-       echo "*** full path to libmikmod-config."
-     else
-       if test -f conf.mikmodtest ; then
-        :
-       else
-          echo "*** Could not run libmikmod test program, checking why..."
-          CFLAGS="$CFLAGS $LIBMIKMOD_CFLAGS"
-          LIBS="$LIBS $LIBMIKMOD_LIBS"
-		  AC_LANG_SAVE
-		  AC_LANG_C
-          AC_TRY_LINK([
-#include <mikmod.h>
-#include <stdio.h>
-],      [ return (MikMod_GetVersion()!=0); ],
-        [ echo "*** The test program compiled, but did not run. This usually means"
-          echo "*** that the run-time linker is not finding libmikmod or finding the wrong"
-          echo "*** version of libmikmod. If it is not finding libmikmod, you'll need to set your"
-          echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
-          echo "*** to the installed location. Also, make sure you have run ldconfig if that"
-          echo "*** is required on your system."
-	  echo "***"
-          echo "*** If you have an old version installed, it is best to remove it, although"
-          echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
-        [ echo "*** The test program failed to compile or link. See the file config.log for the"
-          echo "*** exact error that occured. This usually means libmikmod was incorrectly installed"
-          echo "*** or that you have moved libmikmod since it was installed. In the latter case, you"
-          echo "*** may want to edit the libmikmod-config script: $LIBMIKMOD_CONFIG" ])
-          CFLAGS="$ac_save_CFLAGS"
-          LIBS="$ac_save_LIBS"
-		  AC_LANG_RESTORE
-       fi
-     fi
-     LIBMIKMOD_CFLAGS=""
-     LIBMIKMOD_LIBS=""
-     LIBMIKMOD_LDADD=""
-     ifelse([$3], , :, [$3])
-  fi
-  AC_SUBST(LIBMIKMOD_CFLAGS)
-  AC_SUBST(LIBMIKMOD_LIBS)
-  AC_SUBST(LIBMIKMOD_LDADD)
-  rm -f conf.mikmodtest
-])
diff --git a/missing b/missing
index db98974ff5d59295d7e0edfec2eb2069dc78ef1a..f62bbae306c7e1bc28896aab8fe7bfb700a9a33e 100755
--- a/missing
+++ b/missing
@@ -3,7 +3,7 @@
 
 scriptversion=2013-10-28.13; # UTC
 
-# Copyright (C) 1996-2013 Free Software Foundation, Inc.
+# Copyright (C) 1996-2014 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
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index ec802f5c6cf4d2595ba4d82e683be753396be82e..713c60c99f45b619a0d3a53eff6fc18088479a3a 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,8 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = pkgconfig
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(srcdir)/gstreamer-plugins-good-uninstalled.pc.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -116,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = gstreamer-plugins-good-uninstalled.pc
@@ -140,6 +149,8 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(srcdir)/gstreamer-plugins-good-uninstalled.pc.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -502,7 +513,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu pkgconfig/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu pkgconfig/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -682,6 +692,8 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags-am uninstall \
 	uninstall-am
 
+.PRECIOUS: Makefile
+
 
 ### all-local: $(pcverfiles) $(pcverfiles_uninstalled)
 all-local: $(pcverfiles_uninstalled)
diff --git a/po/af.gmo b/po/af.gmo
index a772c8e3f36fedec328dc5088efdd31c498a3ddd..335ce3b6b6183239fed29ce5a7644b533baa58c6 100644
Binary files a/po/af.gmo and b/po/af.gmo differ
diff --git a/po/af.po b/po/af.po
index 7ded82c6906f7dc5f757ebb273364c8fc286d6d0..dfa126a523ba6765c2d428f7c3362ebb33347cad 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2004-03-18 14:16+0200\n"
 "Last-Translator: Petri Jooste <rkwjpj@puk.ac.za>\n"
 "Language-Team: Afrikaans <i18n@af.org.za>\n"
@@ -49,7 +49,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/az.gmo b/po/az.gmo
index b294945d02b2739adba9f08f027bbdb4ade112e1..57699c806d9b770d67071c79974e0bd2710fa823 100644
Binary files a/po/az.gmo and b/po/az.gmo differ
diff --git a/po/az.po b/po/az.po
index 633b34e04942170bbb089cd57005140d4d30c199..ee3339e6efe660ee48611b5242603ea92cbe5084 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2004-03-19 18:29+0200\n"
 "Last-Translator: Metin Amiroff <metin@karegen.com>\n"
 "Language-Team: Azerbaijani <translation-team-az@lists.sourceforge.net>\n"
@@ -50,7 +50,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/bg.gmo b/po/bg.gmo
index 635822d88da26a8514f0106cfd6a4b313aada759..6601033683ff395c86eeb94bcf23c9e43e89b095 100644
Binary files a/po/bg.gmo and b/po/bg.gmo differ
diff --git a/po/bg.po b/po/bg.po
index 2e75e64ded5fd3318ba3b9e78a5a0e60654e2cf6..76e1a28ebc27df5f4e647562beb379265fdec9ae 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\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"
@@ -47,8 +47,9 @@ msgstr "Не може да се осъществи връзка към сърв
 msgid "Secure connection setup failed."
 msgstr "Неуспешно осъществяване на шифрирана връзка."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Възникна мрежова грешка или сървърът неочаквано прекъсна връзката."
 
 msgid "Server sent bad data."
diff --git a/po/ca.gmo b/po/ca.gmo
index cddc8625099c13f20d14c2c71c2473246e9f52f2..a93c07407ca40de8342883011e7093eba96e8331 100644
Binary files a/po/ca.gmo and b/po/ca.gmo differ
diff --git a/po/ca.po b/po/ca.po
index c826dffbe314d363b2203fc6d460b7e51e5ac24a..84400eb6346f5611f09fa0d984720cac221e0d47 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2012-01-01 14:19+0100\n"
 "Last-Translator: Gil Forcada <gforcada@gnome.org>\n"
 "Language-Team: Catalan <ca@dodds.net>\n"
@@ -48,8 +48,9 @@ msgstr "No s'ha pogut establir la connexió al servidor."
 msgid "Secure connection setup failed."
 msgstr "Ha fallat la configuració de connexió segura."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "S'ha produït un error de xarxa, o el servidor ha tancat la connexió "
 "inesperadament."
diff --git a/po/cs.gmo b/po/cs.gmo
index f9cc72ac6bdfff21128d2d67ef64e0f5252f2a20..6fe7b6099c28611a6c4ebdd101869f8c6414c839 100644
Binary files a/po/cs.gmo and b/po/cs.gmo differ
diff --git a/po/cs.po b/po/cs.po
index ca2fb78d74c70f2a7bc0d0b62ac933b5152de0c5..3a3f7a65a855a236950cfcc2065df9168c6373a4 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2015-02-16 10:40+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -50,8 +50,9 @@ msgstr "Nezdařilo se navázání spojení se serverem."
 msgid "Secure connection setup failed."
 msgstr "Selhalo nastavení zabezpečeného připojení."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Došlo k chybě sítě nebo server neočekávaně ukončil spojení."
 
 msgid "Server sent bad data."
diff --git a/po/da.gmo b/po/da.gmo
index 00377121dbe3bc541c04a9d1b19e398bba197013..ac9ddcd52c5efc3b67845e351eddfb7ad0f82c39 100644
Binary files a/po/da.gmo and b/po/da.gmo differ
diff --git a/po/da.po b/po/da.po
index 2f9288cdf3f5685a912602376f8a7d3a71fe0263..1ee9523f3d7f8fd45560c649d2d5b8e5da3b8726 100644
--- a/po/da.po
+++ b/po/da.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 23:54+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -49,8 +49,9 @@ msgstr "Kunne ikke skabe kontakt til serveren."
 msgid "Secure connection setup failed."
 msgstr "Opsætning af sikker forbindelse mislykkedes."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Der opstod en netværksfejl, eller serveren lukkede uventet forbindelsen."
 
diff --git a/po/de.gmo b/po/de.gmo
index 6efa97af99b23f32257ce827d09daa7bdb21e60c..f4f8d447ab2502e006a161770f99b722d67aee55 100644
Binary files a/po/de.gmo and b/po/de.gmo differ
diff --git a/po/de.po b/po/de.po
index 977d1fcf0972e0276067e2980e904d169732bb7a..3cec309e542872dcbc264db326b3406fd56dc39f 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 21:20+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -54,8 +54,9 @@ msgstr "Es konnte keine Verbindung zum Server hergestellt werden."
 msgid "Secure connection setup failed."
 msgstr "Aufbau einer sichern Verbindung ist gescheitert."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Ein Netzwerkfehler ist aufgetreten, oder der Server schloss die Verbindung "
 "unerwartet."
diff --git a/po/el.gmo b/po/el.gmo
index f3f92529570301800fb527b479198982fb590f17..ccc46631bbb6218c88b4aaff32631665ba50f433 100644
Binary files a/po/el.gmo and b/po/el.gmo differ
diff --git a/po/el.po b/po/el.po
index 2e714768fa3c894d7dd0eba64579663d69f6d517..5dbd69728c2f20f68302abfdf4868408577d0ff2 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2012-05-05 19:05+0100\n"
 "Last-Translator: Savvas Radevic <vicedar@gmail.com>\n"
 "Language-Team: Greek <team@lists.gnome.gr>\n"
@@ -48,8 +48,9 @@ msgstr "Δεν ήταν δυνατή η σύνδεση με τον διακομ
 msgid "Secure connection setup failed."
 msgstr "Αποτυχία εκκίνησης ασφαλούς σύνδεσης."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Προέκυψε ένα σφάλμα δικτύου ή ο διακομιστής έκλεισε ξαφνικά τη σύνδεση."
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index b413274a785f97c2ccf0b3b156db5d30b5f431d8..c21129f15404fedd1811f9ab17aed75d07699512 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 38e0e6694f922455cb32f9a7a7f85f26b8d7e297..4df67bef98c945ef1f684db97aef557001515d3a 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2004-04-26 10:41-0400\n"
 "Last-Translator: Gareth Owen <gowen72@yahoo.com>\n"
 "Language-Team: English (British) <en_gb@li.org>\n"
@@ -49,7 +49,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/eo.gmo b/po/eo.gmo
index 3c0d8cd302c391ceb6cfca5925f3669899808e32..45aa4b0820c95e063d0f7a3b7e4b9262729c4b6f 100644
Binary files a/po/eo.gmo and b/po/eo.gmo differ
diff --git a/po/eo.po b/po/eo.po
index cba611bf5373639b4417729da57de114fcea3252..5e5fc9aeee5ddbd89c59fb8b5d860748de3759f4 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2011-06-04 21:48+0100\n"
 "Last-Translator: Kristjan SCHMIDT <kristjan.schmidt@googlemail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -47,7 +47,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/es.gmo b/po/es.gmo
index 499d8b400e5865be1e79a65688cac3582a733159..77b58cc7cc6ef1bece894ea2c3178a0757d81d64 100644
Binary files a/po/es.gmo and b/po/es.gmo differ
diff --git a/po/es.po b/po/es.po
index 501abead2609bdeac20e7f18c1c97d97e1e25572..b8e4f288d986ebb9565f2a228b5c9b8035bb299a 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2011-02-12 18:30+0100\n"
 "Last-Translator: Jorge González González <aloriel@gmail.com>\n"
 "Language-Team: Spanish <es@li.org>\n"
@@ -47,8 +47,9 @@ msgstr "No se pudo establecer la conexión con el servidor."
 msgid "Secure connection setup failed."
 msgstr "Falló la configuración de la conexión segura."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Ocurrió un error de red o el servidor cerró la conexión de forma inesperada."
 
diff --git a/po/eu.gmo b/po/eu.gmo
index 2279a900c6840f4711b86882868650a7fc13a99e..2e43d4e6c91b1ac94271c5c53ca80c40f052ff88 100644
Binary files a/po/eu.gmo and b/po/eu.gmo differ
diff --git a/po/eu.po b/po/eu.po
index 74f0233291ee67a0bb08b94ed1d14ed6b8f7728d..ca7881ddd9129085ad8b8f78578cbc48c3d9c51e 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2010-03-25 12:37+0100\n"
 "Last-Translator: Mikel Olasagasti Uranga <hey_neken@mundurat.net>\n"
 "Language-Team: Basque <translation-team-eu@lists.sourceforge.net>\n"
@@ -51,7 +51,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/fi.gmo b/po/fi.gmo
index 54f7732b4e5fa3b60ab243c78fd589bbf6e96039..f1b98d761b50329f79a9dd4882d7ee7df3031491 100644
Binary files a/po/fi.gmo and b/po/fi.gmo differ
diff --git a/po/fi.po b/po/fi.po
index 63fa0ce9f2b50f693aaad538c0b72f4f6744796d..f562bb831b7e80d658192dcd9b86a07719cf7749 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2010-11-17 23:03+0200\n"
 "Last-Translator: Tommi Vainikainen <Tommi.Vainikainen@iki.fi>\n"
 "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
@@ -50,8 +50,9 @@ msgstr "Yhteyttä palvelimeen ei voitu avata."
 msgid "Secure connection setup failed."
 msgstr "Turvallisen yhteyden avaus epäonnistui."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Tapahtui verkkovirhe tai palvelin sulki yhteyden yllättäen."
 
 msgid "Server sent bad data."
diff --git a/po/fr.gmo b/po/fr.gmo
index da0d7d92fd9856880fedfa5817bbcf7d99ae4925..e3244c6fe57bde7f9b3d66dfc39c650d449e6158 100644
Binary files a/po/fr.gmo and b/po/fr.gmo differ
diff --git a/po/fr.po b/po/fr.po
index 10b4c2a5d5665811fb2acd378dd2b571b020bbc7..e925fcca74bbbdf7d1293d289497d7a676803a0a 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2015-04-26 19:35+0200\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -48,8 +48,9 @@ msgstr "Impossible d'établir une connexion vers le serveur."
 msgid "Secure connection setup failed."
 msgstr "La configuration d'une connexion sécurisée a échoué."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Une erreur réseau s'est produite ou le serveur a fermé abruptement la "
 "connexion."
diff --git a/po/gl.gmo b/po/gl.gmo
index f278cc2a0fbb8787863f0ac34bd93f8017600fe1..b7ef272e168ab31025119b2115496b2ceabf6b41 100644
Binary files a/po/gl.gmo and b/po/gl.gmo differ
diff --git a/po/gl.po b/po/gl.po
index 64b8857e7ee8e511f13de530096a080b47eb40bc..0ef1c85e60d4eaf29ea21086556d69014821dcbe 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2012-12-15 03:46+0200\n"
 "Last-Translator: Fran Dieguez <frandieguez@ubuntu.com>\n"
 "Language-Team: Galician <proxecto@trasno.net>\n"
@@ -48,8 +48,9 @@ msgstr "Non foi posíbel estabelecer a conexión co servidor."
 msgid "Secure connection setup failed."
 msgstr "Produciuse un fallo de configuración da conexión segura."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Produciuse un erro de rede ou o servidor pechou a conexión de forma "
 "inesperada."
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index 02865216f24ec01a85b84079ea99b7a236f44017..2d9b42995720a5556e4d96419bb6e0f12839400c 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.5.2\n"
+"Project-Id-Version: gst-plugins-good 1.5.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,10 +20,10 @@ msgstr ""
 msgid "Jack server not found"
 msgstr ""
 
-#: ext/jpeg/gstjpegdec.c:921 ext/jpeg/gstjpegdec.c:1174
-#: ext/jpeg/gstjpegdec.c:1186 ext/jpeg/gstjpegdec.c:1215
-#: ext/jpeg/gstjpegdec.c:1224 ext/jpeg/gstjpegdec.c:1233
-#: ext/jpeg/gstjpegdec.c:1241
+#: ext/jpeg/gstjpegdec.c:925 ext/jpeg/gstjpegdec.c:1178
+#: ext/jpeg/gstjpegdec.c:1190 ext/jpeg/gstjpegdec.c:1219
+#: ext/jpeg/gstjpegdec.c:1228 ext/jpeg/gstjpegdec.c:1237
+#: ext/jpeg/gstjpegdec.c:1245
 msgid "Failed to decode JPEG image"
 msgstr ""
 
@@ -37,36 +37,36 @@ msgstr ""
 msgid "Could not connect to server"
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:893
+#: ext/soup/gstsouphttpsrc.c:911
 msgid "No URL set."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1252
+#: ext/soup/gstsouphttpsrc.c:1270
 msgid "Server does not support seeking."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1527
+#: ext/soup/gstsouphttpsrc.c:1545
 msgid "Could not resolve server name."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1533
+#: ext/soup/gstsouphttpsrc.c:1551
 msgid "Could not establish connection to server."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1538
+#: ext/soup/gstsouphttpsrc.c:1556
 msgid "Secure connection setup failed."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1548
+#: ext/soup/gstsouphttpsrc.c:1566
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1555
+#: ext/soup/gstsouphttpsrc.c:1573
 msgid "Server sent bad data."
 msgstr ""
 
-#: gst/avi/gstavidemux.c:5672
+#: gst/avi/gstavidemux.c:5674
 msgid "Internal data stream error."
 msgstr ""
 
@@ -74,76 +74,73 @@ msgstr ""
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:607 gst/isomp4/qtdemux.c:611
+#: gst/isomp4/qtdemux.c:635 gst/isomp4/qtdemux.c:639
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:657 gst/isomp4/qtdemux.c:5107
-#: gst/isomp4/qtdemux.c:5174 gst/isomp4/qtdemux.c:5412
+#: gst/isomp4/qtdemux.c:685 gst/isomp4/qtdemux.c:5570 gst/isomp4/qtdemux.c:5637
+#: gst/isomp4/qtdemux.c:5876
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2355
+#: gst/isomp4/qtdemux.c:2433
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3059 gst/isomp4/qtdemux.c:6119
-#: gst/isomp4/qtdemux.c:6126 gst/isomp4/qtdemux.c:6845
-#: gst/isomp4/qtdemux.c:7272 gst/isomp4/qtdemux.c:7279
-#: gst/isomp4/qtdemux.c:9442
+#: gst/isomp4/qtdemux.c:3498 gst/isomp4/qtdemux.c:6593
+#: gst/isomp4/qtdemux.c:6600 gst/isomp4/qtdemux.c:7374
+#: gst/isomp4/qtdemux.c:7803 gst/isomp4/qtdemux.c:7810
+#: gst/isomp4/qtdemux.c:10089
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3301
+#: gst/isomp4/qtdemux.c:3740
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3377
+#: gst/isomp4/qtdemux.c:3818
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:8094
+#: gst/isomp4/qtdemux.c:8733
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:9483
+#: gst/isomp4/qtdemux.c:10130
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#: gst/multifile/gstsplitmuxsrc.c:556 gst/wavparse/gstwavparse.c:2248
+#: gst/multifile/gstsplitmuxsrc.c:532 gst/wavparse/gstwavparse.c:2248
 msgid "Internal data flow error."
 msgstr ""
 
-#: gst/rtsp/gstrtspsrc.c:6750
+#: gst/rtsp/gstrtspsrc.c:6869
 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:6755
+#: gst/rtsp/gstrtspsrc.c:6874
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
 "plugin."
 msgstr ""
 
-#: sys/oss4/oss4-sink.c:493 sys/oss4/oss4-source.c:358
-#: sys/oss/gstosssink.c:384
+#: sys/oss4/oss4-sink.c:493 sys/oss4/oss4-source.c:358 sys/oss/gstosssink.c:384
 msgid ""
 "Could not open audio device for playback. Device is being used by another "
 "application."
 msgstr ""
 
-#: sys/oss4/oss4-sink.c:503 sys/oss4/oss4-source.c:368
-#: sys/oss/gstosssink.c:391
+#: sys/oss4/oss4-sink.c:503 sys/oss4/oss4-source.c:368 sys/oss/gstosssink.c:391
 msgid ""
 "Could not open audio device for playback. You don't have permission to open "
 "the device."
 msgstr ""
 
-#: sys/oss4/oss4-sink.c:514 sys/oss4/oss4-source.c:379
-#: sys/oss/gstosssink.c:399
+#: sys/oss4/oss4-sink.c:514 sys/oss4/oss4-source.c:379 sys/oss/gstosssink.c:399
 msgid "Could not open audio device for playback."
 msgstr ""
 
@@ -251,7 +248,7 @@ msgstr ""
 msgid "AUX 2 Out"
 msgstr ""
 
-#: sys/v4l2/gstv4l2bufferpool.c:1663
+#: sys/v4l2/gstv4l2bufferpool.c:1672
 #, c-format
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
@@ -261,75 +258,75 @@ msgstr ""
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2574
+#: sys/v4l2/gstv4l2object.c:2577
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2582
+#: sys/v4l2/gstv4l2object.c:2585
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2589
+#: sys/v4l2/gstv4l2object.c:2592
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3210 sys/v4l2/gstv4l2object.c:3221
+#: sys/v4l2/gstv4l2object.c:3214 sys/v4l2/gstv4l2object.c:3225
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3227 sys/v4l2/gstv4l2object.c:3239
+#: sys/v4l2/gstv4l2object.c:3231 sys/v4l2/gstv4l2object.c:3243
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3250
+#: sys/v4l2/gstv4l2object.c:3254
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3263
+#: sys/v4l2/gstv4l2object.c:3267
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3274
+#: sys/v4l2/gstv4l2object.c:3278
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3282
+#: sys/v4l2/gstv4l2object.c:3286
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3387
+#: sys/v4l2/gstv4l2object.c:3391
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3393
+#: sys/v4l2/gstv4l2object.c:3397
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3401
+#: sys/v4l2/gstv4l2object.c:3405
 msgid "Video devices uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3408
+#: sys/v4l2/gstv4l2object.c:3412
 msgid "Video devices uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3820
+#: sys/v4l2/gstv4l2object.c:3824
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3826
+#: sys/v4l2/gstv4l2object.c:3830
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3841
+#: sys/v4l2/gstv4l2object.c:3845
 msgid "No downstream pool to import from."
 msgstr ""
 
diff --git a/po/hr.gmo b/po/hr.gmo
index 3be8676fb42766f984e74b63d36313259069a623..1cb87925681d534f3e392e1699d67280311b54c2 100644
Binary files a/po/hr.gmo and b/po/hr.gmo differ
diff --git a/po/hr.po b/po/hr.po
index 07f2bbebf103ce68389c7105bfc20f988f55bc71..d80d8a4a43704c67de4acf86269807d25841561b 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\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"
@@ -46,8 +46,9 @@ msgstr "Ne mogu ostvariti vezu prema poslužitelju."
 msgid "Secure connection setup failed."
 msgstr "Postavljanje sigurne veze nije uspjelo."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Dogodila se greška mreže, ili je poslužitelj neočekivano zatvorio vezu."
 
diff --git a/po/hu.gmo b/po/hu.gmo
index 5faee7557055ddff778ebf00c7f720701ddd7a4b..0f1b624e1d410e69d9738001c8d54143833cbe7b 100644
Binary files a/po/hu.gmo and b/po/hu.gmo differ
diff --git a/po/hu.po b/po/hu.po
index c635f263bf5945e6e3af1819db095f960d347053..ee70dd09d742b2c2398221c2904fa494ec2f3a37 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 12:56+0200\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -51,8 +51,9 @@ msgstr "Nem hozható létre kapcsolat a kiszolgálóhoz."
 msgid "Secure connection setup failed."
 msgstr "A biztonságos kapcsolat kialakítása meghiúsult."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Hálózati hiba történt, vagy a kiszolgáló váratlanul lezárta a kapcsolatot."
 
diff --git a/po/id.gmo b/po/id.gmo
index b296158e5e023b89d547909b5248cd29f92e44af..da1a17ece06cb613c77ae419c4604836598949e9 100644
Binary files a/po/id.gmo and b/po/id.gmo differ
diff --git a/po/id.po b/po/id.po
index ae28a5a7b3d521127ffe9f1b4c77b3c2d6bae418..592d0d5019335db3d8035aab02c27240b1240bca 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-07-06 21:37+0700\n"
 "Last-Translator: Andhika Padmawan <andhika.padmawan@gmail.com>\n"
 "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n"
@@ -48,8 +48,9 @@ msgstr "Tak dapat membangun koneksi ke server."
 msgid "Secure connection setup failed."
 msgstr "Pengaturan koneksi aman gagal."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Terjadi sebuah galat jaringan, atau server menutup koneksi secara tiba-tiba."
 
diff --git a/po/it.gmo b/po/it.gmo
index 8b66c8de26ef02115d7cad38a32e8da68efb1613..0caeeddfe6fac91a3a6ba12387bd4f7104badab0 100644
Binary files a/po/it.gmo and b/po/it.gmo differ
diff --git a/po/it.po b/po/it.po
index 6aea8332f4f4bde10d74a1919daa05ee05ffdda2..ecbb19f1b3b1e00142f498e2212c337658e41d29 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2010-10-25 10:11+0200\n"
 "Last-Translator: Luca Ferretti <elle.uca@infinito.it>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -45,8 +45,9 @@ msgstr "Impossibile stabilire la connessione al server."
 msgid "Secure connection setup failed."
 msgstr "Impostazione della connessione sicura non riuscita."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Si è verificato un errore di rete, oppure il server ha chiuso la connessione "
 "in modo inatteso."
diff --git a/po/ja.gmo b/po/ja.gmo
index a37abb9229dbd136034210f6db88f3d74d4cdbc7..d974b9161a96a3c3d1851b4b4b984d487a1f7e72 100644
Binary files a/po/ja.gmo and b/po/ja.gmo differ
diff --git a/po/ja.po b/po/ja.po
index a3fb0c09a4d13e81cafe1e6e91d3303f63d971e2..f2b28920a5b16833d13b82f39e9371363eb911ef 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2012-12-22 20:13+0900\n"
 "Last-Translator: Takeshi Hamasaki <hmatrjp@users.sourceforge.jp>\n"
 "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n"
@@ -48,8 +48,9 @@ msgstr "サーバーへの接続を確立できません。"
 msgid "Secure connection setup failed."
 msgstr "セキュア接続のセットアップに失敗しました。"
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "ネットワークエラーが発生したか、サーバーが予期せず接続を閉じました。"
 
 msgid "Server sent bad data."
diff --git a/po/lt.gmo b/po/lt.gmo
index 9412c32f05dde333f059d89d71abb613372f9dc9..1e3ec4db692058370ec14cb1438728b6efeef6f0 100644
Binary files a/po/lt.gmo and b/po/lt.gmo differ
diff --git a/po/lt.po b/po/lt.po
index 97f9df58f6d6fb2ffc2bacf775ad2d1747bd6305..55247e0b81499db7ee99559854c71e9d518f537e 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2010-07-16 19:34+0300\n"
 "Last-Translator: Žygimantas Beručka <uid0@akl.lt>\n"
 "Language-Team: Lithuanian <komp_lt@konferencijos.lt>\n"
@@ -51,7 +51,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/lv.gmo b/po/lv.gmo
index 0adb13c1c501b61729f83f1a8c15e1f96e5b21f0..55eb5249d071ebd47c7f45463c34e910cd566e32 100644
Binary files a/po/lv.gmo and b/po/lv.gmo differ
diff --git a/po/lv.po b/po/lv.po
index 9591bf46b73b0b9cad5806483b923341dceed59b..0ab02b1ace85e519108933e6588c86ed3b5bb987 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-04-20 16:38+0300\n"
 "Last-Translator: Rihards Prieditis <rprieditis@gmail.com>\n"
 "Language-Team: Latvian <translation-team-lv@lists.sourceforge.net>\n"
@@ -50,8 +50,9 @@ msgstr "Nevar izveidot savienojumu ar serveri."
 msgid "Secure connection setup failed."
 msgstr "Neizdevās izveidot drošo savienojumu."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Notika tīkla kļūda, vai serveris negaidīti aizvēra savienojumu."
 
 msgid "Server sent bad data."
diff --git a/po/mt.gmo b/po/mt.gmo
index 068b7ae752c11fe14a36fa8d6c95e04fd557731a..92768c03378d6425ae5c74a67d0ba077ea284a64 100644
Binary files a/po/mt.gmo and b/po/mt.gmo differ
diff --git a/po/mt.po b/po/mt.po
index c665077401d575c78ebe57cc46662a92c22d5b6c..a52d2b977487c5e6c2f054dd06d03cea0529b746 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2008-10-26 19:09+0100\n"
 "Last-Translator: Michel Bugeja <michelbugeja@rabatmalta.com>\n"
 "Language-Team: Maltese <translation-team-mt@lists.sourceforge.net>\n"
@@ -49,7 +49,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/nb.gmo b/po/nb.gmo
index 10c6376dddf04fd45c631edf9de3bc661656bb52..7a62c6e05e74dd074f9ba7bb412e8ddeb8cd9901 100644
Binary files a/po/nb.gmo and b/po/nb.gmo differ
diff --git a/po/nb.po b/po/nb.po
index a5e90b636ceb1b62ba3c3c2bb80b196dee0325df..cc8c34f4b0f02ace530759cc49533884f1687596 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-07-22 13:14+0100\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
@@ -47,8 +47,9 @@ msgstr "Kunne ikke etablere tilkobling til tjener."
 msgid "Secure connection setup failed."
 msgstr "Oppsett av sikker tilkobling feilet."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Et nettverk feil oppstod, eller tjeneren lukket uventet tilkoblingen."
 
 msgid "Server sent bad data."
diff --git a/po/nl.gmo b/po/nl.gmo
index 6eeace24ce5737cdd583815f6ea225b20d9992e6..81cad0a5158080bdb01d93f1fee9e497984b5bdb 100644
Binary files a/po/nl.gmo and b/po/nl.gmo differ
diff --git a/po/nl.po b/po/nl.po
index e775c0a32b4a369943bd702d2f4c8f57f692fb94..8ec26c106c7fb6885f8c4cb1809a03f050380703 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.5.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2015-06-13 10:55+0200\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -46,8 +46,9 @@ msgstr "Kan geen verbinding maken met de server"
 msgid "Secure connection setup failed."
 msgstr "Beveiligde verbinding opzetten is mislukt."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Er trad een netwerkfout op of de server heeft de verbinding onverwacht "
 "afgesloten."
diff --git a/po/or.gmo b/po/or.gmo
index d3557c1b6350cf9eb8026c8e5de5a5c8ae78aebb..8608c162e28af4ce356dba302a9c4288c6fd7144 100644
Binary files a/po/or.gmo and b/po/or.gmo differ
diff --git a/po/or.po b/po/or.po
index 4fb49a2863359c3e1c1e68ad596a8680c7bd3686..218e8cfd422d0ddae168dd4162f238281eca946d 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2004-09-27 13:32+0530\n"
 "Last-Translator: Gora Mohanty <gora_mohanty@yahoo.co.in>\n"
 "Language-Team: Oriya <gora_mohanty@yahoo.co.in>\n"
@@ -51,7 +51,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/pl.gmo b/po/pl.gmo
index 088392e1f5fa9f2fd3891233bd21685f8e1053f9..1bd860307d5f564395f1ea424f133198ce1ce5a4 100644
Binary files a/po/pl.gmo and b/po/pl.gmo differ
diff --git a/po/pl.po b/po/pl.po
index dbfbbe7de710e9d1c502ce70dfa5bcdcd88d7579..fbbcc5bccc3d39bbe2c4cb775f93d946282fe3d9 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 10:45+0200\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -44,8 +44,9 @@ msgstr "Nie udało się nawiązać połączenia z serwerem."
 msgid "Secure connection setup failed."
 msgstr "Ustanowienie bezpiecznego połączenia nie powiodło się."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Wystąpił błąd sieciowy lub serwer nieoczekiwanie zamknął połączenie."
 
 msgid "Server sent bad data."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index cf358faef3b473b61bd5e4b93d077762acb02f23..4e4977a87bb1f20ae8d2781b0c661543d33862a7 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 48828789d4e0867df9aed0dbae1f1d9b17fa3027..8b42eface085665561f1f13069bebb9fea0ef8aa 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2015-02-01 23:02-0200\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -53,8 +53,9 @@ msgstr "Não foi possível estabelecer uma conexão com servidor."
 msgid "Secure connection setup failed."
 msgstr "Configuração de conexão segura falhou."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Um erro de rede ocorreu, ou o servidor fechou a conexão inesperadamente."
 
diff --git a/po/ro.gmo b/po/ro.gmo
index e4aabf9a92af6427b223d237bf23496e1f5187db..1386488bedecf35fd3aa83267cc9a23f52aae527 100644
Binary files a/po/ro.gmo and b/po/ro.gmo differ
diff --git a/po/ro.po b/po/ro.po
index d806f61e2752d31c39de037618c8a45161fefe8c..fb226c60c44cd26d5dc069c744e744f18292932e 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2010-08-16 03:22+0300\n"
 "Last-Translator: Lucian Adrian Grijincu <lucian.grijincu@gmail.com>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -50,7 +50,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/ru.gmo b/po/ru.gmo
index 717cb3d32b7a1b0749a2514bb04a8a59799aef5a..5ded247abcc0c2827ad9f9e4b24a0bd143414fb1 100644
Binary files a/po/ru.gmo and b/po/ru.gmo differ
diff --git a/po/ru.po b/po/ru.po
index 913e9e3f694e7dfa0eaa43de54ee9300e8cb74cb..d0d4c98c51b0d00affbd2ae03dc1e65b4c10b901 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 18:59+0400\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@mx.ru>\n"
@@ -50,8 +50,9 @@ msgstr "Не удалось установить соединение с сер
 msgid "Secure connection setup failed."
 msgstr "Не удалось настроить защищённое соединение."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Произошла сетевая ошибка или сервер неожиданно закрыл соединение."
 
 msgid "Server sent bad data."
diff --git a/po/sk.gmo b/po/sk.gmo
index 70b7e25baee3d5a1f598e749134a514a5f7a754b..d9f067bca551f7edca7ccf3d010e62afa29bdf92 100644
Binary files a/po/sk.gmo and b/po/sk.gmo differ
diff --git a/po/sk.po b/po/sk.po
index 9479e22bc04f19bda310457e5ab074cc6db10f47..90ee3447018aa0c87f8f476ff703bd02819630e1 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-01-30 11:08+0100\n"
 "Last-Translator: Peter Tuharsky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -47,8 +47,9 @@ msgstr "Nepodarilo sa nadviazať spojenie so serverom."
 msgid "Secure connection setup failed."
 msgstr "Nastavenie bezpečného pripojenia zlyhalo."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Vyskytla sa sieťová chyba, alebo server nečakane uzavrel spojenie."
 
 msgid "Server sent bad data."
diff --git a/po/sl.gmo b/po/sl.gmo
index 53e5fb0a02bd8a0e621c14f031a4c5b4a4911007..c2b7becc99f6b11d05ec5a33c7782b036c579937 100644
Binary files a/po/sl.gmo and b/po/sl.gmo differ
diff --git a/po/sl.po b/po/sl.po
index 49b2afb60d909bbf4ccbaa2a9ec26f7fdf5a34b1..ee158ab02e42ad11b1c6849c8d864ad853a3a874 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-04-09 22:52+0100\n"
 "Last-Translator: Klemen Košir <klemen913@gmail.com>\n"
 "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n"
@@ -50,8 +50,9 @@ msgstr "Ni mogoče vzpostaviti povezave s strežnikom."
 msgid "Secure connection setup failed."
 msgstr "Nastavitev varne povezave je spodletela."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Prišlo je do omrežne napake ali pa je povezava nepričakovano prekinjena."
 
diff --git a/po/sq.gmo b/po/sq.gmo
index 66f57e3c656ac12d3d078d73048c3b574176f460..b7d5ac56828396e04ae5eef3aa85fcb38faacb7b 100644
Binary files a/po/sq.gmo and b/po/sq.gmo differ
diff --git a/po/sq.po b/po/sq.po
index 83237a74edfa8dac2dc22ec8f1c7deb3f51d4d31..64c7dee9065c2fcc27505e35fce70babf3c5e366 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2004-08-07 20:29+0200\n"
 "Last-Translator: Laurent Dhima <laurenti@alblinux.net>\n"
 "Language-Team: Albanian <begraj@hotmail.com>\n"
@@ -49,7 +49,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/sr.gmo b/po/sr.gmo
index 7c54affc353b0ca1673994ff9a93652a2dc4ebc1..0de3d776dc31bed2fdc19cf95f840d92a413a758 100644
Binary files a/po/sr.gmo and b/po/sr.gmo differ
diff --git a/po/sr.po b/po/sr.po
index af67108deaf81019ae9ba441725afac56c6fcb9a..fc7b0e5b60ad60b45c870b08738c0ed31318794e 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-09-13 10:50+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -47,8 +47,9 @@ msgstr "Не могу да успоставим везу са сервером."
 msgid "Secure connection setup failed."
 msgstr "Подешавање безбедне везе није успело."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Дошло је до грешке на мрежи, или је сервер неочекивано затворио везу."
 
 msgid "Server sent bad data."
diff --git a/po/sv.gmo b/po/sv.gmo
index a1e35b916bdb2019ba97285c1640d22f26d6a58e..432ad8c54fd96299c030e92d33da23b9c1e4a2ff 100644
Binary files a/po/sv.gmo and b/po/sv.gmo differ
diff --git a/po/sv.po b/po/sv.po
index a84421e1502a0ffdb511af34fd6fc81a6604ffbd..6e3b3d75a1d374753b5133de4350808805a97af8 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-07-11 02:52+0200\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -47,8 +47,9 @@ msgstr "Kunde inte etablera anslutning till servern."
 msgid "Secure connection setup failed."
 msgstr "Säker anslutning misslyckades."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Ett nätverksfel inträffade eller servern stängde anslutningen oväntat."
 
 msgid "Server sent bad data."
diff --git a/po/tr.gmo b/po/tr.gmo
index 6318e943aa71cec40dc6e9086f82df98f83bcb64..96a910a4ef3b47cf09d6dfe85773495ea825ad06 100644
Binary files a/po/tr.gmo and b/po/tr.gmo differ
diff --git a/po/tr.po b/po/tr.po
index fe30ac1d720ca8cdb4938249f8928b307c7e30e1..44d09f96fa49b456beaf1c16ab686159b103bd9b 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2015-01-10 21:07+0100\n"
 "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n"
 "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n"
@@ -48,8 +48,9 @@ msgstr "Sunucuyla bağlantı kurulumayor."
 msgid "Secure connection setup failed."
 msgstr "Güvenli bağlantı ayarı yapılamadı."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Bir ağ hatası meydana geldi, veya sunucu bağlantıyı beklenmeyen bir şekilde "
 "kesti."
diff --git a/po/uk.gmo b/po/uk.gmo
index f630c7a43633f625395003f27fa4c62f1c05606a..b308ed51f621dd5dabcc0c7809e29417124b07b7 100644
Binary files a/po/uk.gmo and b/po/uk.gmo differ
diff --git a/po/uk.po b/po/uk.po
index ac257f159f13a7b2d21d9442dc3dc715ba07fcf8..2e249d3b7af1a1cd0139e4dfe6adf92b643edd8a 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-29 11:40+0300\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -48,8 +48,9 @@ msgstr "Не вдалося встановити з'єднання з серве
 msgid "Secure connection setup failed."
 msgstr "Помилка під час спроби налаштування безпечного з’єднання."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 "Сталася помилка роботи з мережею або з’єднання було несподівано розірвано з "
 "боку сервера."
diff --git a/po/vi.gmo b/po/vi.gmo
index 1fc5f306ada813193f70d4ec7184d043de1948d2..c79122587eee64d020941b8371beec9e39485b77 100644
Binary files a/po/vi.gmo and b/po/vi.gmo differ
diff --git a/po/vi.po b/po/vi.po
index c8c15795c937079a467cd2ad620c47a8e1718262..4557dc042a76abbdda9e48f1b6ddbb4cfee88b1e 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2014-06-30 09:12+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -52,8 +52,9 @@ msgstr "Không thể thiết lập kết nối tới máy chủ."
 msgid "Secure connection setup failed."
 msgstr "Cài đặt kết nối an toàn gặp lỗi."
 
+#, fuzzy
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr "Có lỗi mạng đã xảy ra, hoặc máy chủ đóng kết nối bất ngờ."
 
 msgid "Server sent bad data."
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 53c3a198a39008068bedb0e7677f8d2481e82c22..05561aa2e345897228d76d8d3e5d5511919bed0f 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 0c2c2cab8d07aba60f4f25cbdd5092f656f2727a..72a6649080ca8f784cc383f9a8a945a05222a2da 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\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"
@@ -49,7 +49,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index f74ffdea8cf098026ae07ddfe83fe8b0bb1c7bb0..c15df7144ac7eea8cf28fa50f03029404d129ec8 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 fd32c9fbd8c50a9b076a901231fe6936cd471b2e..46df66548d1bd51103af5c53804bd1b5a86b95af 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (Hong Kong) <community@linuxhall.org>\n"
@@ -45,7 +45,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index a72c5be510c4b4fcf02c4850b50c769d0db813c0..bd0ce7f5ac5029b8dd3bde704e7261c1e06e3dbd 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 fff2db4f9b0dbe7bd0eaf872e9be99edbac99b22..f6918d623081c42e01bc38eb69fd110368c68cac 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: 2015-06-24 22:51+0200\n"
+"POT-Creation-Date: 2015-08-19 12:42+0300\n"
 "PO-Revision-Date: 2006-08-29 01:08+0800\n"
 "Last-Translator: Abel Cheung <abelcheung@gmail.com>\n"
 "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n"
@@ -45,7 +45,7 @@ msgid "Secure connection setup failed."
 msgstr ""
 
 msgid ""
-"A network error occured, or the server closed the connection unexpectedly."
+"A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
 msgid "Server sent bad data."
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 6c75203920ffe6f83d99da3337ee4d887750aa3a..420483410fb2965a66388c6c64730b614d0c5305 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -25,7 +25,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -89,8 +99,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = sys
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -127,6 +135,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -185,6 +194,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -593,7 +604,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -602,7 +612,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -889,6 +899,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index def59cd8e5e77c036ff253ee7ba76da22d96a277..7463239864fc16d758594a8431a1020aead8d9c4 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/directsound
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -229,6 +239,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -587,7 +598,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/directsound/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/directsound/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -904,6 +914,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c
index bee96d16ab8be467e34434780e972b76895a713a..39cb0921fead282d78115d29c0b414fc528c421b 100644
--- a/sys/directsound/gstdirectsoundsink.c
+++ b/sys/directsound/gstdirectsoundsink.c
@@ -101,6 +101,10 @@ static gdouble gst_directsound_sink_get_volume (GstDirectSoundSink * sink);
 static void gst_directsound_sink_set_mute (GstDirectSoundSink * sink,
     gboolean mute);
 static gboolean gst_directsound_sink_get_mute (GstDirectSoundSink * sink);
+static const gchar *gst_directsound_sink_get_device (GstDirectSoundSink *
+    dsoundsink);
+static void gst_directsound_sink_set_device (GstDirectSoundSink * dsoundsink,
+    const gchar * device_id);
 
 static gboolean gst_directsound_sink_is_spdif_format (GstAudioRingBufferSpec *
     spec);
@@ -124,7 +128,8 @@ enum
 {
   PROP_0,
   PROP_VOLUME,
-  PROP_MUTE
+  PROP_MUTE,
+  PROP_DEVICE
 };
 
 #define gst_directsound_sink_parent_class parent_class
@@ -137,6 +142,9 @@ gst_directsound_sink_finalize (GObject * object)
 {
   GstDirectSoundSink *dsoundsink = GST_DIRECTSOUND_SINK (object);
 
+  g_free (dsoundsink->device_id);
+  dsoundsink->device_id = NULL;
+
   g_mutex_clear (&dsoundsink->dsound_lock);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -189,6 +197,12 @@ gst_directsound_sink_class_init (GstDirectSoundSinkClass * klass)
           "Mute state of this stream", DEFAULT_MUTE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class,
+      PROP_DEVICE,
+      g_param_spec_string ("device", "Device",
+          "DirectSound playback device as a GUID string",
+          NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gst_element_class_set_static_metadata (element_class,
       "Direct Sound Audio Sink", "Sink/Audio",
       "Output to a sound card via Direct Sound",
@@ -203,6 +217,7 @@ gst_directsound_sink_init (GstDirectSoundSink * dsoundsink)
 {
   dsoundsink->volume = 100;
   dsoundsink->mute = FALSE;
+  dsoundsink->device_id = NULL;
   dsoundsink->pDS = NULL;
   dsoundsink->cached_caps = NULL;
   dsoundsink->pDSBSecondary = NULL;
@@ -226,6 +241,9 @@ gst_directsound_sink_set_property (GObject * object,
     case PROP_MUTE:
       gst_directsound_sink_set_mute (sink, g_value_get_boolean (value));
       break;
+    case PROP_DEVICE:
+      gst_directsound_sink_set_device (sink, g_value_get_string (value));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -245,6 +263,9 @@ gst_directsound_sink_get_property (GObject * object,
     case PROP_MUTE:
       g_value_set_boolean (value, gst_directsound_sink_get_mute (sink));
       break;
+    case PROP_DEVICE:
+      g_value_set_string (value, gst_directsound_sink_get_device (sink));
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -378,22 +399,51 @@ gst_directsound_sink_query (GstBaseSink * sink, GstQuery * query)
   return res;
 }
 
+static LPGUID
+string_to_guid (const gchar * str)
+{
+  HRESULT ret;
+  gunichar2 *wstr;
+  LPGUID out;
+
+  wstr = g_utf8_to_utf16 (str, -1, NULL, NULL, NULL);
+  if (!wstr)
+    return NULL;
+
+  out = g_new (GUID, 1);
+  ret = CLSIDFromString ((LPOLESTR) wstr, out);
+  g_free (wstr);
+  if (ret != NOERROR) {
+    g_free (out);
+    return NULL;
+  }
+
+  return out;
+}
+
 static gboolean
 gst_directsound_sink_open (GstAudioSink * asink)
 {
   GstDirectSoundSink *dsoundsink;
   HRESULT hRes;
+  LPGUID lpGuid = NULL;
 
   dsoundsink = GST_DIRECTSOUND_SINK (asink);
 
+  if (dsoundsink->device_id)
+    lpGuid = string_to_guid (dsoundsink->device_id);
+
   /* create and initialize a DirecSound object */
-  if (FAILED (hRes = DirectSoundCreate (NULL, &dsoundsink->pDS, NULL))) {
+  if (FAILED (hRes = DirectSoundCreate (lpGuid, &dsoundsink->pDS, NULL))) {
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
         ("gst_directsound_sink_open: DirectSoundCreate: %s",
             DXGetErrorString9 (hRes)), (NULL));
+    g_free (lpGuid);
     return FALSE;
   }
 
+  g_free (lpGuid);
+
   if (FAILED (hRes = IDirectSound_SetCooperativeLevel (dsoundsink->pDS,
               GetDesktopWindow (), DSSCL_PRIORITY))) {
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
@@ -874,3 +924,17 @@ gst_directsound_sink_get_mute (GstDirectSoundSink * dsoundsink)
 {
   return FALSE;
 }
+
+static const gchar *
+gst_directsound_sink_get_device (GstDirectSoundSink * dsoundsink)
+{
+  return dsoundsink->device_id;
+}
+
+static void
+gst_directsound_sink_set_device (GstDirectSoundSink * dsoundsink,
+    const gchar * device_id)
+{
+  g_free (dsoundsink->device_id);
+  dsoundsink->device_id = g_strdup (device_id);
+}
diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h
index 3a83181940afa1cf0f1f860c55c4c749262271ae..c9f587927b239593117b5004179834347ac01433 100644
--- a/sys/directsound/gstdirectsoundsink.h
+++ b/sys/directsound/gstdirectsoundsink.h
@@ -74,6 +74,9 @@ struct _GstDirectSoundSink
   /* current volume setup by mixer interface */
   glong volume;
   gboolean mute;
+  
+  /* current directsound device ID */
+  gchar * device_id;
 
   GstCaps *cached_caps;
   /* lock used to protect writes and resets */
diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in
index ff98d28e2617b8d52e9d66323ca57b73d24573db..b0352fedcd82d7506475e84170e76592291c4b26 100644
--- a/sys/oss/Makefile.in
+++ b/sys/oss/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/oss
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -588,7 +599,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/oss/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/oss/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -921,6 +931,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in
index dd0c211ecc43faa6b615f591ad72b89354f65b8f..ca4c4c1ac4629fefd5c0da60fad49c3ac7306723 100644
--- a/sys/oss4/Makefile.in
+++ b/sys/oss4/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/oss4
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -590,7 +601,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/oss4/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/oss4/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -923,6 +933,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in
index 8b07172512976c3d27d877917fcc368096800c31..1320f1a1c9f29843c08e107525d0b9b7f68c772b 100644
--- a/sys/osxaudio/Makefile.in
+++ b/sys/osxaudio/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@ host_triplet = @host@
 target_triplet = @target@
 @HAVE_IOS_FALSE@am__append_1 = -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
 subdir = sys/osxaudio
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -233,6 +243,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -604,7 +615,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/osxaudio/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/osxaudio/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -961,6 +971,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/osxaudio/gstosxaudioringbuffer.c b/sys/osxaudio/gstosxaudioringbuffer.c
index fff06728a2459957d1d71eeb98367caae5406a84..2afcb5678ad54a8480389870d77e004b067cd8a4 100644
--- a/sys/osxaudio/gstosxaudioringbuffer.c
+++ b/sys/osxaudio/gstosxaudioringbuffer.c
@@ -220,10 +220,9 @@ gst_osx_audio_ring_buffer_acquire (GstAudioRingBuffer * buf,
   GST_DEBUG_OBJECT (osxbuf, "Format: " CORE_AUDIO_FORMAT,
       CORE_AUDIO_FORMAT_ARGS (format));
 
-  if (GST_IS_OSX_AUDIO_SINK (GST_OBJECT_PARENT (buf))) {
-    gst_audio_ring_buffer_set_channel_positions (buf,
-        GST_OSX_AUDIO_SINK (GST_OBJECT_PARENT (buf))->channel_positions);
-  }
+  /* gst_audio_ring_buffer_set_channel_positions is not called
+   * since the AUs perform channel reordering themselves.
+   * (see gst_core_audio_set_channel_layout) */
 
   buf->size = spec->segtotal * spec->segsize;
   buf->memory = g_malloc0 (buf->size);
@@ -249,7 +248,7 @@ gst_osx_audio_ring_buffer_release (GstAudioRingBuffer * buf)
 
   osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
 
-  gst_core_audio_unitialize (osxbuf->core_audio);
+  gst_core_audio_uninitialize (osxbuf->core_audio);
 
   g_free (buf->memory);
   buf->memory = NULL;
diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c
index 23f0982a0e2a8528fca6122d4a7cc1378d958d66..b0a3431b3a7ca9f8c7dc6e72fa7ad6880ed370a0 100644
--- a/sys/osxaudio/gstosxaudiosink.c
+++ b/sys/osxaudio/gstosxaudiosink.c
@@ -116,7 +116,6 @@ gst_osx_audio_sink_change_state (GstElement * element,
 
 static gboolean gst_osx_audio_sink_query (GstBaseSink * base, GstQuery * query);
 
-static gboolean gst_osx_audio_sink_stop (GstBaseSink * base);
 static GstCaps *gst_osx_audio_sink_getcaps (GstBaseSink * base,
     GstCaps * filter);
 static gboolean gst_osx_audio_sink_acceptcaps (GstOsxAudioSink * sink,
@@ -128,7 +127,6 @@ static GstAudioRingBuffer
     * gst_osx_audio_sink_create_ringbuffer (GstAudioBaseSink * sink);
 static void gst_osx_audio_sink_osxelement_init (gpointer g_iface,
     gpointer iface_data);
-static void gst_osx_audio_sink_probe_caps (GstOsxAudioSink * sink);
 static void gst_osx_audio_sink_set_volume (GstOsxAudioSink * sink);
 
 static OSStatus gst_osx_audio_sink_io_proc (GstOsxAudioRingBuffer * buf,
@@ -191,7 +189,6 @@ gst_osx_audio_sink_class_init (GstOsxAudioSinkClass * klass)
           0, 1.0, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_osx_audio_sink_getcaps);
-  gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_osx_audio_sink_stop);
 
   gstaudiobasesink_class->create_ringbuffer =
       GST_DEBUG_FUNCPTR (gst_osx_audio_sink_create_ringbuffer);
@@ -210,19 +207,10 @@ gst_osx_audio_sink_class_init (GstOsxAudioSinkClass * klass)
 static void
 gst_osx_audio_sink_init (GstOsxAudioSink * sink)
 {
-  gint i;
-
   GST_DEBUG ("Initialising object");
 
   sink->device_id = kAudioDeviceUnknown;
-  sink->cached_caps = NULL;
-
   sink->volume = DEFAULT_VOLUME;
-
-  sink->channels = 0;
-  for (i = 0; i < GST_OSX_AUDIO_MAX_CHANNEL; i++) {
-    sink->channel_positions[i] = GST_AUDIO_CHANNEL_POSITION_INVALID;
-  }
 }
 
 static void
@@ -330,28 +318,14 @@ gst_osx_audio_sink_query (GstBaseSink * base, GstQuery * query)
   return ret;
 }
 
-static gboolean
-gst_osx_audio_sink_stop (GstBaseSink * base)
-{
-  GstOsxAudioSink *sink = GST_OSX_AUDIO_SINK (base);
-
-  if (sink->cached_caps) {
-    gst_caps_unref (sink->cached_caps);
-    sink->cached_caps = NULL;
-  }
-
-  return GST_CALL_PARENT_WITH_DEFAULT (GST_BASE_SINK_CLASS, stop, (base), TRUE);
-}
-
 static GstCaps *
 gst_osx_audio_sink_getcaps (GstBaseSink * sink, GstCaps * filter)
 {
-  GstElementClass *gstelement_class;
   GstOsxAudioSink *osxsink;
   GstAudioRingBuffer *buf;
-  GstCaps *ret = NULL;
+  GstOsxAudioRingBuffer *osxbuf;
+  GstCaps *caps, *filtered_caps;
 
-  gstelement_class = GST_ELEMENT_GET_CLASS (sink);
   osxsink = GST_OSX_AUDIO_SINK (sink);
 
   GST_OBJECT_LOCK (osxsink);
@@ -360,33 +334,51 @@ gst_osx_audio_sink_getcaps (GstBaseSink * sink, GstCaps * filter)
     gst_object_ref (buf);
   GST_OBJECT_UNLOCK (osxsink);
 
-  if (buf) {
-    GST_OBJECT_LOCK (buf);
+  if (!buf) {
+    GST_DEBUG_OBJECT (sink, "no ring buffer, returning NULL caps");
+    return GST_BASE_SINK_CLASS (parent_class)->get_caps (sink, filter);
+  }
 
-    if (buf->open && !osxsink->cached_caps) {
-      /* Device is open, let's probe its caps */
-      gst_osx_audio_sink_probe_caps (osxsink);
-    }
+  osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
 
-    if (osxsink->cached_caps)
-      ret = gst_caps_ref (osxsink->cached_caps);
+  /* protect against cached_caps going away */
+  GST_OBJECT_LOCK (buf);
 
-    GST_OBJECT_UNLOCK (buf);
+  if (osxbuf->core_audio->cached_caps_valid) {
+    GST_LOG_OBJECT (sink, "Returning cached caps");
+    caps = gst_caps_ref (osxbuf->core_audio->cached_caps);
+  } else if (buf->open) {
+    GstCaps *template_caps;
 
-    gst_object_unref (buf);
-  }
+    /* Get template caps */
+    template_caps =
+        gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (osxsink));
 
-  if (!ret)
-    ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SINK_PAD (osxsink));
+    /* Device is open, let's probe its caps */
+    caps = gst_core_audio_probe_caps (osxbuf->core_audio, template_caps);
+    gst_caps_replace (&osxbuf->core_audio->cached_caps, caps);
 
-  if (filter) {
-    GstCaps *tmp;
-    tmp = gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
-    gst_caps_unref (ret);
-    ret = tmp;
+    gst_caps_unref (template_caps);
+  } else {
+    GST_DEBUG_OBJECT (sink, "ring buffer not open, returning NULL caps");
+    caps = NULL;
   }
 
-  return ret;
+  GST_OBJECT_UNLOCK (buf);
+
+  gst_object_unref (buf);
+
+  if (!caps)
+    return NULL;
+
+  if (!filter)
+    return caps;
+
+  /* Take care of filtered caps */
+  filtered_caps =
+      gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+  gst_caps_unref (caps);
+  return filtered_caps;
 }
 
 static gboolean
@@ -586,85 +578,3 @@ gst_osx_audio_sink_set_volume (GstOsxAudioSink * sink)
 
   gst_core_audio_set_volume (osxbuf->core_audio, sink->volume);
 }
-
-static void
-gst_osx_audio_sink_probe_caps (GstOsxAudioSink * osxsink)
-{
-  gint i, channels;
-  gboolean spdif_allowed;
-  AudioChannelLayout *layout;
-  GstElementClass *element_class;
-  GstPadTemplate *pad_template;
-  GstCaps *caps, *in_caps;
-  guint64 channel_mask = 0;
-  GstAudioChannelPosition *pos = osxsink->channel_positions;
-
-  /* First collect info about the HW capabilites and preferences */
-  spdif_allowed =
-      gst_core_audio_audio_device_is_spdif_avail (osxsink->device_id);
-  layout = gst_core_audio_audio_device_get_channel_layout (osxsink->device_id,
-      TRUE);
-
-  GST_DEBUG_OBJECT (osxsink, "Selected device ID: %u SPDIF allowed: %d",
-      (unsigned) osxsink->device_id, spdif_allowed);
-
-  if (layout) {
-    channels = MIN (layout->mNumberChannelDescriptions,
-        GST_OSX_AUDIO_MAX_CHANNEL);
-  } else {
-    GST_WARNING_OBJECT (osxsink, "This driver does not support "
-        "kAudioDevicePropertyPreferredChannelLayout.");
-    channels = 2;
-  }
-
-  if (!gst_core_audio_parse_channel_layout (layout, channels, &channel_mask,
-          pos)) {
-    GST_WARNING_OBJECT (osxsink, "Failed to parse channel layout");
-  }
-
-  g_free (layout);
-
-  if (!gst_audio_channel_positions_to_mask (pos, channels, TRUE, &channel_mask)) {
-    GST_WARNING_OBJECT (osxsink, "Probably unsupported channel order");
-  }
-
-  /* Recover the template caps */
-  element_class = GST_ELEMENT_GET_CLASS (osxsink);
-  pad_template = gst_element_class_get_pad_template (element_class, "sink");
-  in_caps = gst_pad_template_get_caps (pad_template);
-
-  /* Create the allowed subset  */
-  caps = gst_caps_new_empty ();
-  for (i = 0; i < gst_caps_get_size (in_caps); i++) {
-    GstStructure *in_s, *out_s;
-
-    in_s = gst_caps_get_structure (in_caps, i);
-
-    if (gst_structure_has_name (in_s, "audio/x-ac3") ||
-        gst_structure_has_name (in_s, "audio/x-dts")) {
-      if (spdif_allowed) {
-        gst_caps_append_structure (caps, gst_structure_copy (in_s));
-      }
-    } else {
-      out_s = gst_structure_copy (in_s);
-
-      gst_structure_remove_fields (out_s, "channels", NULL);
-      gst_structure_set (out_s, "channels", G_TYPE_INT, channels, NULL);
-
-      if (channel_mask) {
-        gst_structure_remove_fields (out_s, "channel-mask", NULL);
-        gst_structure_set (out_s, "channel-mask", GST_TYPE_BITMASK,
-            channel_mask, NULL);
-      }
-
-      gst_caps_append_structure (caps, out_s);
-    }
-  }
-
-  if (osxsink->cached_caps) {
-    gst_caps_unref (osxsink->cached_caps);
-  }
-
-  osxsink->cached_caps = caps;
-  osxsink->channels = channels;
-}
diff --git a/sys/osxaudio/gstosxaudiosink.h b/sys/osxaudio/gstosxaudiosink.h
index 01d99662fe07bb5d60f27de905d304f25967215f..1428d763a024a8bd351d9d8e7c36c59290850ab4 100644
--- a/sys/osxaudio/gstosxaudiosink.h
+++ b/sys/osxaudio/gstosxaudiosink.h
@@ -77,10 +77,8 @@ struct _GstOsxAudioSink
 
   AudioUnit audiounit;
   double volume;
-  GstCaps *cached_caps;
 
   guint channels;
-  GstAudioChannelPosition channel_positions[GST_OSX_AUDIO_MAX_CHANNEL];
 };
 
 struct _GstOsxAudioSinkClass
diff --git a/sys/osxaudio/gstosxaudiosrc.c b/sys/osxaudio/gstosxaudiosrc.c
index 8b98dc27072b6d3fe67e1150df4e1f5e856e9557..0deda90a9cf04149d29486a04226196769822a68 100644
--- a/sys/osxaudio/gstosxaudiosrc.c
+++ b/sys/osxaudio/gstosxaudiosrc.c
@@ -97,7 +97,6 @@ static GstStateChangeReturn
 gst_osx_audio_src_change_state (GstElement * element,
     GstStateChange transition);
 
-static void gst_osx_audio_src_probe_caps (GstOsxAudioSrc * src);
 static GstCaps *gst_osx_audio_src_get_caps (GstBaseSrc * src, GstCaps * filter);
 
 static GstAudioRingBuffer *gst_osx_audio_src_create_ringbuffer (GstAudioBaseSrc
@@ -171,7 +170,6 @@ gst_osx_audio_src_init (GstOsxAudioSrc * src)
   gst_base_src_set_live (GST_BASE_SRC (src), TRUE);
 
   src->device_id = kAudioDeviceUnknown;
-  src->cached_caps = NULL;
 }
 
 static void
@@ -241,72 +239,14 @@ out:
   return ret;
 }
 
-static void
-gst_osx_audio_src_probe_caps (GstOsxAudioSrc * osxsrc)
-{
-  GstOsxAudioRingBuffer *ringbuffer =
-      GST_OSX_AUDIO_RING_BUFFER (GST_AUDIO_BASE_SRC (osxsrc)->ringbuffer);
-  GstCoreAudio *core_audio = ringbuffer->core_audio;
-  GstCaps *caps;
-  gint channels;
-  AudioChannelLayout *layout;
-  AudioStreamBasicDescription asbd_in;
-  UInt32 propertySize;
-  OSStatus status;
-
-  propertySize = sizeof (asbd_in);
-  status = AudioUnitGetProperty (core_audio->audiounit,
-      kAudioUnitProperty_StreamFormat,
-      kAudioUnitScope_Input, 1, &asbd_in, &propertySize);
-  if (status)
-    goto fail;
-
-  layout = gst_core_audio_audio_device_get_channel_layout (osxsrc->device_id,
-      FALSE);
-
-  if (layout) {
-    channels = MIN (layout->mNumberChannelDescriptions,
-        GST_OSX_AUDIO_MAX_CHANNEL);
-  } else {
-    GST_WARNING_OBJECT (osxsrc, "This driver does not support "
-        "kAudioDevicePropertyPreferredChannelLayout.");
-    channels = 2;
-  }
-
-  caps = gst_core_audio_asbd_to_caps (&asbd_in, layout);
-  if (!caps) {
-    GST_WARNING_OBJECT (osxsrc, "Could not get caps from stream description");
-    g_free (layout);
-    goto fail;
-  } else {
-    GST_DEBUG_OBJECT (osxsrc, "Got caps on device: %p", caps);
-  }
-
-  g_free (layout);
-
-  if (osxsrc->cached_caps)
-    gst_caps_unref (osxsrc->cached_caps);
-
-  osxsrc->cached_caps = caps;
-
-  return;
-
-fail:
-  AudioComponentInstanceDispose (core_audio->audiounit);
-  core_audio->audiounit = NULL;
-  GST_WARNING_OBJECT (osxsrc,
-      "Unable to obtain device properties: %d", (int) status);
-}
-
 static GstCaps *
 gst_osx_audio_src_get_caps (GstBaseSrc * src, GstCaps * filter)
 {
-  GstElementClass *gstelement_class;
   GstOsxAudioSrc *osxsrc;
   GstAudioRingBuffer *buf;
-  GstCaps *ret = NULL;
+  GstOsxAudioRingBuffer *osxbuf;
+  GstCaps *caps, *filtered_caps;
 
-  gstelement_class = GST_ELEMENT_GET_CLASS (src);
   osxsrc = GST_OSX_AUDIO_SRC (src);
 
   GST_OBJECT_LOCK (osxsrc);
@@ -315,31 +255,51 @@ gst_osx_audio_src_get_caps (GstBaseSrc * src, GstCaps * filter)
     gst_object_ref (buf);
   GST_OBJECT_UNLOCK (osxsrc);
 
-  if (buf) {
-    GST_OBJECT_LOCK (buf);
+  if (!buf) {
+    GST_DEBUG_OBJECT (src, "no ring buffer, using template caps");
+    return GST_BASE_SRC_CLASS (parent_class)->get_caps (src, filter);
+  }
 
-    if (buf->open && !osxsrc->cached_caps) {
-      /* Device is open, let's probe its caps */
-      gst_osx_audio_src_probe_caps (osxsrc);
-    }
+  osxbuf = GST_OSX_AUDIO_RING_BUFFER (buf);
 
-    GST_OBJECT_UNLOCK (buf);
-    gst_object_unref (buf);
-  }
+  /* protect against cached_caps going away */
+  GST_OBJECT_LOCK (buf);
+
+  if (osxbuf->core_audio->cached_caps_valid) {
+    GST_LOG_OBJECT (src, "Returning cached caps");
+    caps = gst_caps_ref (osxbuf->core_audio->cached_caps);
+  } else if (buf->open) {
+    GstCaps *template_caps;
 
-  if (osxsrc->cached_caps)
-    ret = gst_caps_ref (osxsrc->cached_caps);
-  else
-    ret = gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SRC_PAD (osxsrc));
+    /* Get template caps */
+    template_caps =
+        gst_pad_get_pad_template_caps (GST_AUDIO_BASE_SRC_PAD (osxsrc));
 
-  if (filter) {
-    GstCaps *tmp;
-    tmp = gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
-    gst_caps_unref (ret);
-    ret = tmp;
+    /* Device is open, let's probe its caps */
+    caps = gst_core_audio_probe_caps (osxbuf->core_audio, template_caps);
+    gst_caps_replace (&osxbuf->core_audio->cached_caps, caps);
+
+    gst_caps_unref (template_caps);
+  } else {
+    GST_DEBUG_OBJECT (src, "ring buffer not open, using template caps");
+    caps = GST_BASE_SRC_CLASS (parent_class)->get_caps (src, NULL);
   }
 
-  return ret;
+  GST_OBJECT_UNLOCK (buf);
+
+  gst_object_unref (buf);
+
+  if (!caps)
+    return NULL;
+
+  if (!filter)
+    return caps;
+
+  /* Take care of filtered caps */
+  filtered_caps =
+      gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);
+  gst_caps_unref (caps);
+  return filtered_caps;
 }
 
 static GstAudioRingBuffer *
diff --git a/sys/osxaudio/gstosxaudiosrc.h b/sys/osxaudio/gstosxaudiosrc.h
index 82e9361bd22c4ee144c12db8533531dcde18225d..fb32aa2a4b7f24359eac123c8bd44e803437f0e7 100644
--- a/sys/osxaudio/gstosxaudiosrc.h
+++ b/sys/osxaudio/gstosxaudiosrc.h
@@ -68,8 +68,6 @@ struct _GstOsxAudioSrc
   GstAudioBaseSrc src;
 
   AudioDeviceID device_id;
-
-  GstCaps *cached_caps;
 };
 
 struct _GstOsxAudioSrcClass
diff --git a/sys/osxaudio/gstosxcoreaudio.c b/sys/osxaudio/gstosxcoreaudio.c
index a29a58d4821903c696e191ceaada99816a724359..d516e6d20ec2c0acc84bbd642dde035e240795da 100644
--- a/sys/osxaudio/gstosxcoreaudio.c
+++ b/sys/osxaudio/gstosxcoreaudio.c
@@ -48,12 +48,54 @@ gst_core_audio_init (GstCoreAudio * core_audio)
   core_audio->device_id = kAudioDeviceUnknown;
   core_audio->is_src = FALSE;
   core_audio->audiounit = NULL;
+  core_audio->cached_caps = NULL;
+  core_audio->cached_caps_valid = FALSE;
 #ifndef HAVE_IOS
   core_audio->hog_pid = -1;
   core_audio->disabled_mixing = FALSE;
 #endif
 }
 
+static gboolean
+_is_outer_scope (AudioUnitScope scope, AudioUnitElement element)
+{
+  return
+      (scope == kAudioUnitScope_Input && element == 1) ||
+      (scope == kAudioUnitScope_Output && element == 0);
+}
+
+static void
+_audio_unit_property_listener (void *inRefCon, AudioUnit inUnit,
+    AudioUnitPropertyID inID, AudioUnitScope inScope,
+    AudioUnitElement inElement)
+{
+  GstCoreAudio *core_audio;
+
+  core_audio = GST_CORE_AUDIO (inRefCon);
+  g_assert (inUnit == core_audio->audiounit);
+
+  switch (inID) {
+    case kAudioUnitProperty_AudioChannelLayout:
+    case kAudioUnitProperty_StreamFormat:
+      if (_is_outer_scope (inScope, inElement)) {
+        /* We don't push gst_event_new_caps here (for src),
+         * nor gst_event_new_reconfigure (for sink), since Core Audio continues
+         * to happily function with the old format, doing conversion/resampling
+         * as needed.
+         * This merely "refreshes" our PREFERRED caps. */
+
+        /* This function is called either from a Core Audio thread
+         * or as a result of a Core Audio API (e.g. AudioUnitInitialize)
+         * from our own thread. In the latter case, osxbuf can be
+         * already locked (GStreamer's mutex is not recursive).
+         * For this reason we use a boolean flag instead of nullifying
+         * cached_caps. */
+        core_audio->cached_caps_valid = FALSE;
+      }
+      break;
+  }
+}
+
 /**************************
  *       Public API       *
  *************************/
@@ -65,12 +107,34 @@ gst_core_audio_new (GstObject * osxbuf)
 
   core_audio = g_object_new (GST_TYPE_CORE_AUDIO, NULL);
   core_audio->osxbuf = osxbuf;
+  core_audio->cached_caps = NULL;
   return core_audio;
 }
 
 gboolean
 gst_core_audio_close (GstCoreAudio * core_audio)
 {
+  OSStatus status;
+
+  /* Uninitialize the AudioUnit */
+  status = AudioUnitUninitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to uninitialize AudioUnit: %d",
+        (int) status);
+    return FALSE;
+  }
+
+  AudioUnitRemovePropertyListenerWithUserData (core_audio->audiounit,
+      kAudioUnitProperty_AudioChannelLayout, _audio_unit_property_listener,
+      core_audio);
+  AudioUnitRemovePropertyListenerWithUserData (core_audio->audiounit,
+      kAudioUnitProperty_StreamFormat, _audio_unit_property_listener,
+      core_audio);
+
+  /* core_audio->osxbuf is already locked at this point */
+  core_audio->cached_caps_valid = FALSE;
+  gst_caps_replace (&core_audio->cached_caps, NULL);
+
   AudioComponentInstanceDispose (core_audio->audiounit);
   core_audio->audiounit = NULL;
   return TRUE;
@@ -79,7 +143,41 @@ gst_core_audio_close (GstCoreAudio * core_audio)
 gboolean
 gst_core_audio_open (GstCoreAudio * core_audio)
 {
-  return gst_core_audio_open_impl (core_audio);
+  OSStatus status;
+
+  /* core_audio->osxbuf is already locked at this point */
+  core_audio->cached_caps_valid = FALSE;
+  gst_caps_replace (&core_audio->cached_caps, NULL);
+
+  if (!gst_core_audio_open_impl (core_audio))
+    return FALSE;
+
+  /* Add property listener */
+  status = AudioUnitAddPropertyListener (core_audio->audiounit,
+      kAudioUnitProperty_AudioChannelLayout, _audio_unit_property_listener,
+      core_audio);
+  if (status != noErr) {
+    GST_ERROR_OBJECT (core_audio, "Failed to add audio channel layout property "
+        "listener for AudioUnit: %d", (int) status);
+  }
+  status = AudioUnitAddPropertyListener (core_audio->audiounit,
+      kAudioUnitProperty_StreamFormat, _audio_unit_property_listener,
+      core_audio);
+  if (status != noErr) {
+    GST_ERROR_OBJECT (core_audio, "Failed to add stream format property "
+        "listener for AudioUnit: %d", (int) status);
+  }
+
+  /* Initialize the AudioUnit. We keep the audio unit initialized early so that
+   * we can probe the underlying device. */
+  status = AudioUnitInitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to initialize AudioUnit: %d",
+        (int) status);
+    return FALSE;
+  }
+
+  return TRUE;
 }
 
 gboolean
@@ -113,7 +211,6 @@ gst_core_audio_initialize (GstCoreAudio * core_audio,
     AudioStreamBasicDescription format, GstCaps * caps, gboolean is_passthrough)
 {
   guint32 frame_size;
-  OSStatus status;
 
   GST_DEBUG_OBJECT (core_audio,
       "Initializing: passthrough:%d caps:%" GST_PTR_FORMAT, is_passthrough,
@@ -121,7 +218,7 @@ gst_core_audio_initialize (GstCoreAudio * core_audio,
 
   if (!gst_core_audio_initialize_impl (core_audio, format, caps,
           is_passthrough, &frame_size)) {
-    goto error;
+    return FALSE;
   }
 
   if (core_audio->is_src) {
@@ -133,26 +230,12 @@ gst_core_audio_initialize (GstCoreAudio * core_audio,
         !(format.mFormatFlags & kAudioFormatFlagIsNonInterleaved));
   }
 
-  /* Initialize the AudioUnit */
-  status = AudioUnitInitialize (core_audio->audiounit);
-  if (status) {
-    GST_ERROR_OBJECT (core_audio, "Failed to initialise AudioUnit: %d",
-        (int) status);
-    goto error;
-  }
   return TRUE;
-
-error:
-  buffer_list_free (core_audio->recBufferList);
-  core_audio->recBufferList = NULL;
-  return FALSE;
 }
 
 void
-gst_core_audio_unitialize (GstCoreAudio * core_audio)
+gst_core_audio_uninitialize (GstCoreAudio * core_audio)
 {
-  AudioUnitUninitialize (core_audio->audiounit);
-
   buffer_list_free (core_audio->recBufferList);
   core_audio->recBufferList = NULL;
 }
@@ -183,79 +266,143 @@ gst_core_audio_audio_device_is_spdif_avail (AudioDeviceID device_id)
   return gst_core_audio_audio_device_is_spdif_avail_impl (device_id);
 }
 
+/* Does the channel have at least one positioned channel?
+ * (GStreamer is more strict than Core Audio, in that it requires either
+ * all channels to be positioned, or all unpositioned.) */
+static gboolean
+_is_core_audio_layout_positioned (AudioChannelLayout * layout)
+{
+  guint i;
+
+  g_assert (layout->mChannelLayoutTag ==
+      kAudioChannelLayoutTag_UseChannelDescriptions);
+
+  for (i = 0; i < layout->mNumberChannelDescriptions; ++i) {
+    GstAudioChannelPosition p =
+        gst_core_audio_channel_label_to_gst
+        (layout->mChannelDescriptions[i].mChannelLabel, i, FALSE);
+
+    if (p >= 0)                 /* not special positition */
+      return TRUE;
+  }
+
+  return FALSE;
+}
+
+static void
+_core_audio_parse_channel_descriptions (AudioChannelLayout * layout,
+    guint * channels, guint64 * channel_mask, GstAudioChannelPosition * pos)
+{
+  gboolean positioned;
+  guint i;
+
+  g_assert (layout->mChannelLayoutTag ==
+      kAudioChannelLayoutTag_UseChannelDescriptions);
+
+  positioned = _is_core_audio_layout_positioned (layout);
+  *channel_mask = 0;
+
+  /* Go over all labels, either taking only positioned or only
+   * unpositioned channels, up to GST_OSX_AUDIO_MAX_CHANNEL channels.
+   *
+   * The resulting 'pos' array will contain either:
+   *  - only regular (>= 0) positions
+   *  - only GST_AUDIO_CHANNEL_POSITION_NONE positions
+   * in a compact form, skipping over all unsupported positions.
+   */
+  *channels = 0;
+  for (i = 0; i < layout->mNumberChannelDescriptions; ++i) {
+    GstAudioChannelPosition p =
+        gst_core_audio_channel_label_to_gst
+        (layout->mChannelDescriptions[i].mChannelLabel, i, TRUE);
+
+    /* In positioned layouts, skip all unpositioned channels.
+     * In unpositioned layouts, skip all invalid channels. */
+    if ((positioned && p >= 0) ||
+        (!positioned && p == GST_AUDIO_CHANNEL_POSITION_NONE)) {
+
+      if (pos)
+        pos[*channels] = p;
+      *channel_mask |= G_GUINT64_CONSTANT (1) << p;
+      ++(*channels);
+
+      if (*channels == GST_OSX_AUDIO_MAX_CHANNEL)
+        break;                  /* not to overflow */
+    }
+  }
+}
+
 gboolean
 gst_core_audio_parse_channel_layout (AudioChannelLayout * layout,
-    gint channels, guint64 * channel_mask, GstAudioChannelPosition * pos)
+    guint * channels, guint64 * channel_mask, GstAudioChannelPosition * pos)
 {
-  gint i;
-  gboolean ret = TRUE;
-
-  g_return_val_if_fail (channels <= GST_OSX_AUDIO_MAX_CHANNEL, FALSE);
+  g_assert (channels != NULL);
+  g_assert (channel_mask != NULL);
+  g_assert (layout != NULL);
+
+  if (layout->mChannelLayoutTag !=
+      kAudioChannelLayoutTag_UseChannelDescriptions) {
+    GST_ERROR
+        ("Only kAudioChannelLayoutTag_UseChannelDescriptions is supported.");
+    *channels = 0;
+    *channel_mask = 0;
+    return FALSE;
+  }
 
-  switch (channels) {
+  switch (layout->mNumberChannelDescriptions) {
     case 0:
-      pos[0] = GST_AUDIO_CHANNEL_POSITION_NONE;
-      break;
+      if (pos)
+        pos[0] = GST_AUDIO_CHANNEL_POSITION_NONE;
+      *channels = 0;
+      *channel_mask = 0;
+      return TRUE;
     case 1:
-      pos[0] = GST_AUDIO_CHANNEL_POSITION_MONO;
-      break;
+      if (pos)
+        pos[0] = GST_AUDIO_CHANNEL_POSITION_MONO;
+      *channels = 1;
+      *channel_mask = 0;
+      return TRUE;
     case 2:
-      pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
-      pos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
-      *channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT);
-      *channel_mask |= GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT);
-      break;
-    default:
-      for (i = 0; i < channels; i++) {
-        switch (layout->mChannelDescriptions[i].mChannelLabel) {
-          case kAudioChannelLabel_Left:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
-            break;
-          case kAudioChannelLabel_Right:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
-            break;
-          case kAudioChannelLabel_Center:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER;
-            break;
-          case kAudioChannelLabel_LFEScreen:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_LFE1;
-            break;
-          case kAudioChannelLabel_LeftSurround:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT;
-            break;
-          case kAudioChannelLabel_RightSurround:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT;
-            break;
-          case kAudioChannelLabel_RearSurroundLeft:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT;
-            break;
-          case kAudioChannelLabel_RearSurroundRight:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT;
-            break;
-          case kAudioChannelLabel_CenterSurround:
-            pos[i] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER;
-            break;
-          default:
-            GST_WARNING ("unrecognized channel: %d",
-                (int) layout->mChannelDescriptions[i].mChannelLabel);
-            *channel_mask = 0;
-            ret = FALSE;
-            break;
-        }
+      if (pos) {
+        pos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
+        pos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
       }
+      *channels = 2;
+      *channel_mask =
+          GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT) |
+          GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT);
+      return TRUE;
+    default:
+      _core_audio_parse_channel_descriptions (layout, channels, channel_mask,
+          pos);
+      return TRUE;
   }
-
-  return ret;
 }
 
+/* Converts an AudioStreamBasicDescription to preferred caps.
+ *
+ * These caps will indicate the AU element's canonical format, which won't
+ * make Core Audio resample nor convert.
+ *
+ * NOTE ON MULTI-CHANNEL AUDIO:
+ *
+ * If layout is not NULL, resulting caps will only include the subset
+ * of channels supported by GStreamer. If the Core Audio layout contained
+ * ANY positioned channels, then ONLY positioned channels will be included
+ * in the resulting caps. Otherwise, resulting caps will be unpositioned,
+ * and include only unpositioned channels.
+ * (Channels with unsupported AudioChannelLabel will be skipped either way.)
+ *
+ * Naturally, the number of channels indicated by 'channels' can be lower
+ * than the AU element's total number of channels.
+ */
 GstCaps *
 gst_core_audio_asbd_to_caps (AudioStreamBasicDescription * asbd,
     AudioChannelLayout * layout)
 {
   GstAudioInfo info;
   GstAudioFormat format = GST_AUDIO_FORMAT_UNKNOWN;
-  GstAudioChannelPosition pos[64] = { GST_AUDIO_CHANNEL_POSITION_INVALID, };
-  gint rate, channels, bps, endianness;
+  guint rate, channels, bps, endianness;
   guint64 channel_mask;
   gboolean sign, interleaved;
 
@@ -275,13 +422,9 @@ gst_core_audio_asbd_to_caps (AudioStreamBasicDescription * asbd,
   }
 
   rate = asbd->mSampleRate;
-  if (rate == kAudioStreamAnyRate)
-    rate = GST_AUDIO_DEF_RATE;
-
-  channels = asbd->mChannelsPerFrame;
-  if (channels == 0) {
-    /* The documentation says this should not happen! */
-    channels = 1;
+  if (rate == kAudioStreamAnyRate) {
+    GST_WARNING ("No sample rate");
+    goto error;
   }
 
   bps = asbd->mBitsPerChannel;
@@ -313,16 +456,212 @@ gst_core_audio_asbd_to_caps (AudioStreamBasicDescription * asbd,
     goto error;
   }
 
-  if (!gst_core_audio_parse_channel_layout (layout, channels, &channel_mask,
-          pos)) {
-    GST_WARNING ("Failed to parse channel layout");
-    goto error;
-  }
+  if (layout) {
+    GstAudioChannelPosition pos[GST_OSX_AUDIO_MAX_CHANNEL];
+
+    if (!gst_core_audio_parse_channel_layout (layout, &channels, &channel_mask,
+            pos)) {
+      GST_WARNING ("Failed to parse channel layout");
+      goto error;
+    }
+
+    /* The AU can have arbitrary channel order, but we're using GstAudioInfo
+     * which supports only the GStreamer channel order.
+     * Also, we're eventually producing caps, which only have channel-mask
+     * (whose implied order is the GStreamer channel order). */
+    gst_audio_channel_positions_to_valid_order (pos, channels);
 
-  gst_audio_info_set_format (&info, format, rate, channels, pos);
+    gst_audio_info_set_format (&info, format, rate, channels, pos);
+  } else {
+    channels = MIN (asbd->mChannelsPerFrame, GST_OSX_AUDIO_MAX_CHANNEL);
+    gst_audio_info_set_format (&info, format, rate, channels, NULL);
+  }
 
   return gst_audio_info_to_caps (&info);
 
 error:
   return NULL;
 }
+
+static gboolean
+_core_audio_get_property (GstCoreAudio * core_audio, gboolean outer,
+    AudioUnitPropertyID inID, void *inData, UInt32 * inDataSize)
+{
+  OSStatus status;
+  AudioUnitScope scope;
+  AudioUnitElement element;
+
+  scope = outer ?
+      CORE_AUDIO_OUTER_SCOPE (core_audio) : CORE_AUDIO_INNER_SCOPE (core_audio);
+  element = CORE_AUDIO_ELEMENT (core_audio);
+
+  status =
+      AudioUnitGetProperty (core_audio->audiounit, inID, scope, element, inData,
+      inDataSize);
+
+  return status == noErr;
+}
+
+static gboolean
+_core_audio_get_stream_format (GstCoreAudio * core_audio,
+    AudioStreamBasicDescription * asbd, gboolean outer)
+{
+  UInt32 size;
+
+  size = sizeof (AudioStreamBasicDescription);
+  return _core_audio_get_property (core_audio, outer,
+      kAudioUnitProperty_StreamFormat, asbd, &size);
+}
+
+AudioChannelLayout *
+gst_core_audio_get_channel_layout (GstCoreAudio * core_audio, gboolean outer)
+{
+  UInt32 size;
+  AudioChannelLayout *layout;
+
+  if (core_audio->is_src) {
+    GST_WARNING_OBJECT (core_audio,
+        "gst_core_audio_get_channel_layout not supported on source.");
+    return NULL;
+  }
+
+  if (!_core_audio_get_property (core_audio, outer,
+          kAudioUnitProperty_AudioChannelLayout, NULL, &size)) {
+    GST_WARNING_OBJECT (core_audio, "unable to get channel layout");
+    return NULL;
+  }
+
+  layout = g_malloc (size);
+  if (!_core_audio_get_property (core_audio, outer,
+          kAudioUnitProperty_AudioChannelLayout, layout, &size)) {
+    GST_WARNING_OBJECT (core_audio, "unable to get channel layout");
+    g_free (layout);
+    return NULL;
+  }
+
+  return layout;
+}
+
+#define STEREO_CHANNEL_MASK \
+  (GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_LEFT) | \
+   GST_AUDIO_CHANNEL_POSITION_MASK (FRONT_RIGHT))
+
+GstCaps *
+gst_core_audio_probe_caps (GstCoreAudio * core_audio, GstCaps * in_caps)
+{
+  guint i, channels;
+  gboolean spdif_allowed;
+  AudioChannelLayout *layout;
+  AudioStreamBasicDescription outer_asbd;
+  gboolean got_outer_asbd;
+  GstCaps *caps = NULL;
+  guint64 channel_mask;
+
+  /* Get the ASBD of the outer scope (i.e. input scope of Input,
+   * output scope of Output).
+   * This ASBD indicates the hardware format. */
+  got_outer_asbd =
+      _core_audio_get_stream_format (core_audio, &outer_asbd, TRUE);
+
+  /* Collect info about the HW capabilites and preferences */
+  spdif_allowed =
+      gst_core_audio_audio_device_is_spdif_avail (core_audio->device_id);
+  if (!core_audio->is_src)
+    layout = gst_core_audio_get_channel_layout (core_audio, TRUE);
+  else
+    layout = NULL;              /* no supported for sources */
+
+  GST_DEBUG_OBJECT (core_audio, "Selected device ID: %u SPDIF allowed: %d",
+      (unsigned) core_audio->device_id, spdif_allowed);
+
+  if (layout) {
+    if (!gst_core_audio_parse_channel_layout (layout, &channels, &channel_mask,
+            NULL)) {
+      GST_WARNING_OBJECT (core_audio, "Failed to parse channel layout");
+      channel_mask = 0;
+    }
+
+    /* If available, start with the preferred caps. */
+    if (got_outer_asbd)
+      caps = gst_core_audio_asbd_to_caps (&outer_asbd, layout);
+
+    g_free (layout);
+  } else if (got_outer_asbd) {
+    channels = outer_asbd.mChannelsPerFrame;
+    channel_mask = 0;
+    /* If available, start with the preferred caps */
+    caps = gst_core_audio_asbd_to_caps (&outer_asbd, NULL);
+  } else {
+    GST_ERROR_OBJECT (core_audio,
+        "Unable to get any information about hardware");
+    return NULL;
+  }
+
+  /* Append the allowed subset based on the template caps  */
+  if (!caps)
+    caps = gst_caps_new_empty ();
+  for (i = 0; i < gst_caps_get_size (in_caps); i++) {
+    GstStructure *in_s;
+
+    in_s = gst_caps_get_structure (in_caps, i);
+
+    if (gst_structure_has_name (in_s, "audio/x-ac3") ||
+        gst_structure_has_name (in_s, "audio/x-dts")) {
+      if (spdif_allowed) {
+        gst_caps_append_structure (caps, gst_structure_copy (in_s));
+      }
+    } else {
+      GstStructure *out_s;
+
+      out_s = gst_structure_copy (in_s);
+      gst_structure_set (out_s, "channels", G_TYPE_INT, channels, NULL);
+      if (channel_mask != 0) {
+        /* positioned layout */
+        gst_structure_set (out_s,
+            "channel-mask", GST_TYPE_BITMASK, channel_mask, NULL);
+      } else {
+        /* unpositioned layout */
+        gst_structure_remove_field (out_s, "channel-mask");
+      }
+
+#ifndef HAVE_IOS
+      if (core_audio->is_src && got_outer_asbd
+          && outer_asbd.mSampleRate != kAudioStreamAnyRate) {
+        /* According to Core Audio engineer, AUHAL does not support sample rate conversion.
+         * on sources. Therefore, we fixate the sample rate.
+         *
+         * "You definitely cannot do rate conversion as part of getting input from AUHAL.
+         *  That's the most common cause of those "cannot do in current context" errors."
+         * http://lists.apple.com/archives/coreaudio-api/2006/Sep/msg00088.html
+         */
+        gst_structure_set (out_s, "rate", G_TYPE_INT,
+            (gint) outer_asbd.mSampleRate, NULL);
+      }
+#endif
+
+      /* Special cases for upmixing and downmixing.
+       * Other than that, the AUs don't upmix or downmix multi-channel audio,
+       * e.g. if you push 5.1-surround audio to a stereo configuration,
+       * the left and right channels will be played accordingly,
+       * and the rest will be dropped. */
+
+      if (channels == 1 || (channels == 2 &&
+              (channel_mask == 0 || channel_mask == STEREO_CHANNEL_MASK))) {
+
+        /* If have stereo channels, then also offer mono since CoreAudio
+         * upmixes it. If mono, then also offer stereo since CoreAudio
+         * downmixes to it */
+
+        gst_structure_set (out_s, "channels", GST_TYPE_INT_RANGE, 1, 2, NULL);
+
+        if (channels == 1)
+          gst_structure_set (out_s, "channel-mask", GST_TYPE_BITMASK,
+              STEREO_CHANNEL_MASK, NULL);
+      }
+
+      gst_caps_append_structure (caps, out_s);
+    }
+  }
+
+  return caps;
+}
diff --git a/sys/osxaudio/gstosxcoreaudio.h b/sys/osxaudio/gstosxcoreaudio.h
index b319ced0e4ad33c5af4a924294adafd07efbdb5b..ee88e3cf472775c0815f00d38c8ed84e5f58d82a 100644
--- a/sys/osxaudio/gstosxcoreaudio.h
+++ b/sys/osxaudio/gstosxcoreaudio.h
@@ -63,6 +63,7 @@ G_BEGIN_DECLS
 #define GST_IS_CORE_AUDIO_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CORE_AUDIO))
 
+/* TODO: Consider raising to 64 */
 #define GST_OSX_AUDIO_MAX_CHANNEL (9)
 
 #define CORE_AUDIO_FORMAT_IS_SPDIF(f) ((f).mFormat.mFormatID == 'IAC3' || (f).mFormat.mFormatID == 'iac3' || (f).mFormat.mFormatID == kAudioFormat60958AC3 || (f).mFormat.mFormatID == kAudioFormatAC3)
@@ -70,6 +71,10 @@ G_BEGIN_DECLS
 #define CORE_AUDIO_FORMAT "FormatID: %" GST_FOURCC_FORMAT " rate: %f flags: 0x%x BytesPerPacket: %u FramesPerPacket: %u BytesPerFrame: %u ChannelsPerFrame: %u BitsPerChannel: %u"
 #define CORE_AUDIO_FORMAT_ARGS(f) GST_FOURCC_ARGS((unsigned int)(f).mFormatID),(f).mSampleRate,(unsigned int)(f).mFormatFlags,(unsigned int)(f).mBytesPerPacket,(unsigned int)(f).mFramesPerPacket,(unsigned int)(f).mBytesPerFrame,(unsigned int)(f).mChannelsPerFrame,(unsigned int)(f).mBitsPerChannel
 
+#define CORE_AUDIO_INNER_SCOPE(core_audio) ((core_audio)->is_src ? kAudioUnitScope_Output : kAudioUnitScope_Input)
+#define CORE_AUDIO_OUTER_SCOPE(core_audio) ((core_audio)->is_src ? kAudioUnitScope_Input : kAudioUnitScope_Output)
+#define CORE_AUDIO_ELEMENT(core_audio) ((core_audio)->is_src ? 1 : 0)
+
 typedef struct _GstCoreAudio GstCoreAudio;
 typedef struct _GstCoreAudioClass GstCoreAudioClass;
 
@@ -83,6 +88,8 @@ struct _GstCoreAudio
   gboolean is_src;
   gboolean is_passthrough;
   AudioDeviceID device_id;
+  gboolean cached_caps_valid; /* thread-safe flag */
+  GstCaps *cached_caps;
   gint stream_idx;
   gboolean io_proc_active;
   gboolean io_proc_needs_deactivation;
@@ -123,7 +130,7 @@ gboolean gst_core_audio_initialize                           (GstCoreAudio *core
                                                               GstCaps *caps,
                                                               gboolean is_passthrough);
 
-void gst_core_audio_unitialize                               (GstCoreAudio *core_audio);
+void gst_core_audio_uninitialize                             (GstCoreAudio *core_audio);
 
 gboolean gst_core_audio_start_processing                     (GstCoreAudio *core_audio);
 
@@ -144,10 +151,14 @@ gboolean gst_core_audio_audio_device_is_spdif_avail          (AudioDeviceID devi
 
 gboolean gst_core_audio_select_device                        (GstCoreAudio * core_audio);
 
-AudioChannelLayout * gst_core_audio_audio_device_get_channel_layout (AudioDeviceID device_id, gboolean output);
+GstCaps *
+gst_core_audio_probe_caps (GstCoreAudio * core_audio, GstCaps * in_caps);
+
+AudioChannelLayout *
+gst_core_audio_get_channel_layout (GstCoreAudio * core_audio, gboolean outer);
 
 gboolean gst_core_audio_parse_channel_layout (AudioChannelLayout * layout,
-    gint channels, guint64 * channel_mask, GstAudioChannelPosition * pos);
+    guint * channels, guint64 * channel_mask, GstAudioChannelPosition * pos);
 GstCaps * gst_core_audio_asbd_to_caps (AudioStreamBasicDescription * asbd,
     AudioChannelLayout * layout);
 
diff --git a/sys/osxaudio/gstosxcoreaudiocommon.c b/sys/osxaudio/gstosxcoreaudiocommon.c
index 24f778d116dc1bf232b32243d956fc32ed910a5a..39d03ac5b422d686e9ab8f0428f4c800a119bdbf 100644
--- a/sys/osxaudio/gstosxcoreaudiocommon.c
+++ b/sys/osxaudio/gstosxcoreaudiocommon.c
@@ -157,6 +157,7 @@ buffer_list_alloc (UInt32 channels, UInt32 size, gboolean interleaved)
   UInt32 num_buffers, n;
 
   num_buffers = interleaved ? 1 : channels;
+  /* AudioBufferList member mBuffers is variable-length array */
   list_size = G_STRUCT_OFFSET (AudioBufferList, mBuffers[num_buffers]);
   list = (AudioBufferList *) g_malloc (list_size);
 
@@ -213,39 +214,67 @@ audiounit_error:
   return FALSE;
 }
 
+static gboolean
+_core_audio_set_property (GstCoreAudio * core_audio, AudioUnitPropertyID inID,
+    void *inData, UInt32 inDataSize)
+{
+  OSStatus status;
+  AudioUnitScope scope;
+  AudioUnitElement element;
+
+  scope = CORE_AUDIO_INNER_SCOPE (core_audio);
+  element = CORE_AUDIO_ELEMENT (core_audio);
+
+  status =
+      AudioUnitSetProperty (core_audio->audiounit, inID, scope, element, inData,
+      inDataSize);
+
+  if (status != noErr) {
+    GST_WARNING_OBJECT (core_audio->osxbuf,
+        "Failed to set Audio Unit property: %d", (int) status);
+    return FALSE;;
+  }
+
+  return TRUE;
+}
+
+/* The AudioUnit must be uninitialized before calling this */
 gboolean
 gst_core_audio_set_channel_layout (GstCoreAudio * core_audio,
     gint channels, GstCaps * caps)
 {
-  /* Configure the output stream and allocate ringbuffer memory */
   AudioChannelLayout *layout = NULL;
-  OSStatus status;
-  int layoutSize, element, i;
-  AudioUnitScope scope;
+  gboolean ret;
+  gsize layoutSize;
+  gint i;
   GstStructure *structure;
-  GstAudioChannelPosition *positions = NULL;
+  GstAudioChannelPosition positions[GST_OSX_AUDIO_MAX_CHANNEL];
   guint64 channel_mask;
 
-  /* Describe channels */
-  layoutSize = sizeof (AudioChannelLayout) +
-      channels * sizeof (AudioChannelDescription);
-  layout = g_malloc (layoutSize);
+  g_return_val_if_fail (channels <= GST_OSX_AUDIO_MAX_CHANNEL, FALSE);
 
+  /* Determine the channel positions */
   structure = gst_caps_get_structure (caps, 0);
-  if (gst_structure_get (structure, "channel-mask", GST_TYPE_BITMASK,
-          &channel_mask, NULL)) {
-    positions = g_new (GstAudioChannelPosition, channels);
+  channel_mask = 0;
+  gst_structure_get (structure, "channel-mask", GST_TYPE_BITMASK, &channel_mask,
+      NULL);
+
+  if (channel_mask != 0)
     gst_audio_channel_positions_from_mask (channels, channel_mask, positions);
-  }
 
+  /* AudioChannelLayout member mChannelDescriptions is variable-length array */
+  layoutSize =
+      G_STRUCT_OFFSET (AudioChannelLayout, mChannelDescriptions[channels]);
+  layout = g_malloc (layoutSize);
+
+  /* Fill out the AudioChannelLayout */
   layout->mChannelLayoutTag = kAudioChannelLayoutTag_UseChannelDescriptions;
   layout->mChannelBitmap = 0;   /* Not used */
   layout->mNumberChannelDescriptions = channels;
   for (i = 0; i < channels; i++) {
-    if (positions) {
+    if (channel_mask != 0) {
       layout->mChannelDescriptions[i].mChannelLabel =
-          gst_audio_channel_position_to_coreaudio_channel_label (positions[i],
-          i);
+          gst_audio_channel_position_to_core_audio (positions[i], i);
     } else {
       /* Discrete channel numbers are ORed into this */
       layout->mChannelDescriptions[i].mChannelLabel =
@@ -253,61 +282,31 @@ gst_core_audio_set_channel_layout (GstCoreAudio * core_audio,
     }
 
     /* Others unused */
-    layout->mChannelDescriptions[i].mChannelFlags = 0;
+    layout->mChannelDescriptions[i].mChannelFlags = kAudioChannelFlags_AllOff;
     layout->mChannelDescriptions[i].mCoordinates[0] = 0.f;
     layout->mChannelDescriptions[i].mCoordinates[1] = 0.f;
     layout->mChannelDescriptions[i].mCoordinates[2] = 0.f;
   }
 
-  if (positions) {
-    g_free (positions);
-    positions = NULL;
-  }
-
-  scope = core_audio->is_src ? kAudioUnitScope_Output : kAudioUnitScope_Input;
-  element = core_audio->is_src ? 1 : 0;
-
-  if (layoutSize) {
-    status = AudioUnitSetProperty (core_audio->audiounit,
-        kAudioUnitProperty_AudioChannelLayout,
-        scope, element, layout, layoutSize);
-    if (status) {
-      GST_WARNING_OBJECT (core_audio->osxbuf,
-          "Failed to set output channel layout: %d", (int) status);
-      return FALSE;
-    }
-  }
+  /* Sets GStreamer-ordered channel layout on the inner scope.
+   * Reordering between the inner scope and outer scope is handled
+   * by the Audio Unit itself. */
+  ret = _core_audio_set_property (core_audio,
+      kAudioUnitProperty_AudioChannelLayout, layout, layoutSize);
 
   g_free (layout);
-  return TRUE;
+  return ret;
 }
 
+/* The AudioUnit must be uninitialized before calling this */
 gboolean
 gst_core_audio_set_format (GstCoreAudio * core_audio,
     AudioStreamBasicDescription format)
 {
-  /* Configure the output stream and allocate ringbuffer memory */
-  OSStatus status;
-  UInt32 propertySize;
-  int element;
-  AudioUnitScope scope;
-
   GST_DEBUG_OBJECT (core_audio->osxbuf, "Setting format for AudioUnit");
 
-  scope = core_audio->is_src ? kAudioUnitScope_Output : kAudioUnitScope_Input;
-  element = core_audio->is_src ? 1 : 0;
-
-  propertySize = sizeof (AudioStreamBasicDescription);
-  status = AudioUnitSetProperty (core_audio->audiounit,
-      kAudioUnitProperty_StreamFormat, scope, element, &format, propertySize);
-
-  if (status) {
-    GST_WARNING_OBJECT (core_audio->osxbuf,
-        "Failed to set audio description: %d", (int) status);
-    return FALSE;
-  }
-
-  return TRUE;
+  return _core_audio_set_property (core_audio, kAudioUnitProperty_StreamFormat,
+      &format, sizeof (AudioStreamBasicDescription));
 }
 
 gboolean
@@ -375,14 +374,10 @@ gst_core_audio_open_device (GstCoreAudio * core_audio, OSType sub_type,
 }
 
 AudioChannelLabel
-gst_audio_channel_position_to_coreaudio_channel_label (GstAudioChannelPosition
+gst_audio_channel_position_to_core_audio (GstAudioChannelPosition
     position, int channel)
 {
   switch (position) {
-    case GST_AUDIO_CHANNEL_POSITION_NONE:
-      return kAudioChannelLabel_Discrete_0 | channel;
-    case GST_AUDIO_CHANNEL_POSITION_MONO:
-      return kAudioChannelLabel_Mono;
     case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
       return kAudioChannelLabel_Left;
     case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
@@ -397,19 +392,141 @@ gst_audio_channel_position_to_coreaudio_channel_label (GstAudioChannelPosition
       return kAudioChannelLabel_LFEScreen;
     case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
       return kAudioChannelLabel_Center;
-    case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
-      return kAudioChannelLabel_Center; // ???
-    case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
-      return kAudioChannelLabel_Center; // ???
     case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
       return kAudioChannelLabel_LeftSurroundDirect;
     case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
       return kAudioChannelLabel_RightSurroundDirect;
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER:
+      return kAudioChannelLabel_LeftCenter;
+    case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER:
+      return kAudioChannelLabel_RightCenter;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT:
+      return kAudioChannelLabel_TopBackLeft;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER:
+      return kAudioChannelLabel_TopBackCenter;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT:
+      return kAudioChannelLabel_TopBackRight;
+    case GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT:
+      return kAudioChannelLabel_LeftWide;
+    case GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT:
+      return kAudioChannelLabel_RightWide;
+    case GST_AUDIO_CHANNEL_POSITION_LFE2:
+      return kAudioChannelLabel_LFE2;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT:
+      return kAudioChannelLabel_VerticalHeightLeft;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT:
+      return kAudioChannelLabel_VerticalHeightRight;
+    case GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER:
+      return kAudioChannelLabel_VerticalHeightCenter;
+
+      /* Special position values */
+    case GST_AUDIO_CHANNEL_POSITION_NONE:
+      return kAudioChannelLabel_Discrete_0 | channel;
+    case GST_AUDIO_CHANNEL_POSITION_MONO:
+      return kAudioChannelLabel_Mono;
+
+      /* Following positions are unmapped --
+       * i.e. mapped to kAudioChannelLabel_Unknown: */
+    case GST_AUDIO_CHANNEL_POSITION_TOP_CENTER:
+    case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_LEFT:
+    case GST_AUDIO_CHANNEL_POSITION_TOP_SIDE_RIGHT:
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_CENTER:
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_LEFT:
+    case GST_AUDIO_CHANNEL_POSITION_BOTTOM_FRONT_RIGHT:
+    case GST_AUDIO_CHANNEL_POSITION_SURROUND_LEFT:
+    case GST_AUDIO_CHANNEL_POSITION_SURROUND_RIGHT:
     default:
       return kAudioChannelLabel_Unknown;
   }
 }
 
+/* Performs a best-effort conversion. 'channel' is used for warnings only. */
+GstAudioChannelPosition
+gst_core_audio_channel_label_to_gst (AudioChannelLabel label,
+    int channel, gboolean warn)
+{
+  switch (label) {
+    case kAudioChannelLabel_Left:
+      return GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT;
+    case kAudioChannelLabel_Right:
+      return GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT;
+    case kAudioChannelLabel_Center:
+      return GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER;
+    case kAudioChannelLabel_LFEScreen:
+      return GST_AUDIO_CHANNEL_POSITION_LFE1;
+    case kAudioChannelLabel_LeftSurround:
+      return GST_AUDIO_CHANNEL_POSITION_REAR_LEFT;
+    case kAudioChannelLabel_RightSurround:
+      return GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT;
+    case kAudioChannelLabel_LeftSurroundDirect:
+      return GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT;
+    case kAudioChannelLabel_RightSurroundDirect:
+      return GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT;
+    case kAudioChannelLabel_CenterSurround:
+      return GST_AUDIO_CHANNEL_POSITION_REAR_CENTER;
+    case kAudioChannelLabel_LeftCenter:
+      return GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER;
+    case kAudioChannelLabel_RightCenter:
+      return GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER;
+    case kAudioChannelLabel_TopBackLeft:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_REAR_LEFT;
+    case kAudioChannelLabel_TopBackCenter:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_REAR_CENTER;
+    case kAudioChannelLabel_TopBackRight:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_REAR_RIGHT;
+    case kAudioChannelLabel_LeftWide:
+      return GST_AUDIO_CHANNEL_POSITION_WIDE_LEFT;
+    case kAudioChannelLabel_RightWide:
+      return GST_AUDIO_CHANNEL_POSITION_WIDE_RIGHT;
+    case kAudioChannelLabel_LFE2:
+      return GST_AUDIO_CHANNEL_POSITION_LFE2;
+    case kAudioChannelLabel_VerticalHeightLeft:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_LEFT;
+    case kAudioChannelLabel_VerticalHeightRight:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_RIGHT;
+    case kAudioChannelLabel_VerticalHeightCenter:
+      return GST_AUDIO_CHANNEL_POSITION_TOP_FRONT_CENTER;
+
+      /* Special position values */
+
+    case kAudioChannelLabel_Mono:
+      /* GST_AUDIO_CHANNEL_POSITION_MONO is only for 1-channel layouts */
+      return GST_AUDIO_CHANNEL_POSITION_INVALID;
+    case kAudioChannelLabel_Discrete:
+      return GST_AUDIO_CHANNEL_POSITION_NONE;
+
+      /*
+         Following labels are unmapped --
+         i.e. mapped to GST_AUDIO_CHANNEL_POSITION_INVALID:
+       */
+    case kAudioChannelLabel_RearSurroundLeft:
+    case kAudioChannelLabel_RearSurroundRight:
+    case kAudioChannelLabel_TopCenterSurround:
+    case kAudioChannelLabel_LeftTotal:
+    case kAudioChannelLabel_RightTotal:
+    case kAudioChannelLabel_HearingImpaired:
+    case kAudioChannelLabel_Narration:
+    case kAudioChannelLabel_DialogCentricMix:
+    case kAudioChannelLabel_CenterSurroundDirect:
+    case kAudioChannelLabel_Haptic:
+    default:
+      if (label >> 16 != 0) {   /* kAudioChannelLabel_Discrete_N */
+        /* no way to store discrete channel order */
+        if (warn)
+          GST_WARNING
+              ("Core Audio channel %u labeled kAudioChannelLabel_Discrete_%u -- discrete order will be lost",
+              channel, ((unsigned int) label) & 0xFFFF);
+        return GST_AUDIO_CHANNEL_POSITION_NONE;
+      } else {
+        if (warn)
+          GST_WARNING
+              ("Core Audio channel %u has unsupported label %d and will be skipped",
+              channel, (int) label);
+        return GST_AUDIO_CHANNEL_POSITION_INVALID;
+      }
+  }
+}
+
 void
 gst_core_audio_dump_channel_layout (AudioChannelLayout * channel_layout)
 {
diff --git a/sys/osxaudio/gstosxcoreaudiocommon.h b/sys/osxaudio/gstosxcoreaudiocommon.h
index 8e7936ac3b574658801f0706a446d670fad56272..c4602a6b301292aa2c635e862ba4c08f7df9123a 100644
--- a/sys/osxaudio/gstosxcoreaudiocommon.h
+++ b/sys/osxaudio/gstosxcoreaudiocommon.h
@@ -61,5 +61,6 @@ OSStatus gst_core_audio_render_notify                     (GstCoreAudio * core_a
                                                            unsigned int inNumberFrames,
                                                            AudioBufferList * ioData);
 
-AudioChannelLabel gst_audio_channel_position_to_coreaudio_channel_label (GstAudioChannelPosition position, int channel);
+AudioChannelLabel gst_audio_channel_position_to_core_audio (GstAudioChannelPosition position, int channel);
 
+GstAudioChannelPosition gst_core_audio_channel_label_to_gst (AudioChannelLabel label, int channel, gboolean warn);
diff --git a/sys/osxaudio/gstosxcoreaudiohal.c b/sys/osxaudio/gstosxcoreaudiohal.c
index 776d765995fab9cf1d6e3b6e4c198d0526360e80..c1fefcc3c95ecf17f734008169c9e76fac6e3655 100644
--- a/sys/osxaudio/gstosxcoreaudiohal.c
+++ b/sys/osxaudio/gstosxcoreaudiohal.c
@@ -319,7 +319,8 @@ _audio_device_has_output (AudioDeviceID device_id)
   return TRUE;
 }
 
-AudioChannelLayout *
+#ifdef GST_CORE_AUDIO_DEBUG
+static AudioChannelLayout *
 gst_core_audio_audio_device_get_channel_layout (AudioDeviceID device_id,
     gboolean output)
 {
@@ -384,6 +385,7 @@ failed:
   g_free (layout);
   return NULL;
 }
+#endif
 
 static inline AudioStreamID *
 _audio_device_get_streams (AudioDeviceID device_id, gint * nstreams)
@@ -1121,6 +1123,15 @@ gst_core_audio_initialize_impl (GstCoreAudio * core_audio,
     gboolean is_passthrough, guint32 * frame_size)
 {
   gboolean ret = FALSE;
+  OSStatus status;
+
+  /* Uninitialize the AudioUnit before changing formats */
+  status = AudioUnitUninitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to uninitialize AudioUnit: %d",
+        (int) status);
+    return FALSE;
+  }
 
   core_audio->is_passthrough = is_passthrough;
   if (is_passthrough) {
@@ -1155,9 +1166,18 @@ gst_core_audio_initialize_impl (GstCoreAudio * core_audio,
   ret = TRUE;
 
 done:
+  /* Format changed, initialise the AudioUnit again */
+  status = AudioUnitInitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to initialize AudioUnit: %d",
+        (int) status);
+    ret = FALSE;
+  }
+
   if (ret) {
     GST_DEBUG_OBJECT (core_audio, "osxbuf ring buffer acquired");
   }
+
   return ret;
 }
 
diff --git a/sys/osxaudio/gstosxcoreaudioremoteio.c b/sys/osxaudio/gstosxcoreaudioremoteio.c
index 81a8aa2e3ce5edbbd4021b3ca3537b48dd875dd1..76b0eba32d254526f8a3c0e9437e81f7287ec138 100644
--- a/sys/osxaudio/gstosxcoreaudioremoteio.c
+++ b/sys/osxaudio/gstosxcoreaudioremoteio.c
@@ -84,10 +84,22 @@ gst_core_audio_initialize_impl (GstCoreAudio * core_audio,
     AudioStreamBasicDescription format, GstCaps * caps,
     gboolean is_passthrough, guint32 * frame_size)
 {
+  gboolean ret = FALSE;
+  OSStatus status;
+
+  /* Uninitialize the AudioUnit before changing formats */
+  status = AudioUnitUninitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to uninitialize AudioUnit: %d",
+        (int) status);
+    return FALSE;
+  }
+
   core_audio->is_passthrough = is_passthrough;
   core_audio->stream_idx = 0;
+
   if (!gst_core_audio_set_format (core_audio, format))
-    return FALSE;
+    goto done;
 
   /* FIXME: Use kAudioSessionProperty_CurrentHardwareSampleRate and
    * kAudioSessionProperty_CurrentHardwareIOBufferDuration with property
@@ -96,14 +108,18 @@ gst_core_audio_initialize_impl (GstCoreAudio * core_audio,
   *frame_size = 4196;
 
   GST_DEBUG_OBJECT (core_audio, "osxbuf ring buffer acquired");
-  return TRUE;
-}
+  ret = TRUE;
 
-AudioChannelLayout *
-gst_core_audio_audio_device_get_channel_layout (AudioDeviceID device_id,
-    gboolean output)
-{
-  return NULL;
+done:
+  /* Format changed, initialise the AudioUnit again */
+  status = AudioUnitInitialize (core_audio->audiounit);
+  if (status) {
+    GST_ERROR_OBJECT (core_audio, "Failed to initialize AudioUnit: %d",
+        (int) status);
+    ret = FALSE;
+  }
+
+  return ret;
 }
 
 static gboolean
diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in
index dc2e5d3436b9d8d4a8a1845c9b15d242bbacfc89..53583051929e8a2cacb282eea6eb2876ca13c8cd 100644
--- a/sys/osxvideo/Makefile.in
+++ b/sys/osxvideo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/osxvideo
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -584,7 +595,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/osxvideo/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/osxvideo/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -901,6 +911,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in
index 878e94df2f599f2723e5ae137e0275c025529ea0..fabb04126aaf79c0ff7f57c967822efd368122da 100644
--- a/sys/sunaudio/Makefile.in
+++ b/sys/sunaudio/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/sunaudio
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -231,6 +241,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -596,7 +607,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/sunaudio/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/sunaudio/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -953,6 +963,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in
index 218230345e66aeee3ef10cd01ebb5de4448e1910..addd32d7048ab29b5d752f1c2325e257226081ea 100644
--- a/sys/v4l2/Makefile.in
+++ b/sys/v4l2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -24,7 +24,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -88,9 +98,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/gst-glib-gen.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS) README
 subdir = sys/v4l2
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -127,6 +134,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -253,6 +262,9 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/gst-glib-gen.mak $(top_srcdir)/depcomp \
+	README
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -655,7 +667,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/v4l2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/v4l2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -664,7 +675,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/gst-glib-gen.mak:
+$(top_srcdir)/common/gst-glib-gen.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -1101,6 +1112,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # these are all the rules generating the relevant files
 $(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index bcf167d58433f901fbf27b4d7002f26af7146ef7..6c89bd19161eafb137fedfa3351b284b76c1b877 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -149,6 +149,9 @@ gst_v4l2_buffer_pool_copy_buffer (GstV4l2BufferPool * pool, GstBuffer * dest,
     gst_buffer_resize (dest, 0, gst_buffer_get_size (src));
   }
 
+  gst_buffer_copy_into (dest, src,
+      GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+
   GST_CAT_LOG_OBJECT (GST_CAT_PERFORMANCE, pool, "slow copy into buffer %p",
       dest);
 
@@ -1058,6 +1061,7 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf)
 {
   GstV4l2MemoryGroup *group = NULL;
   const GstV4l2Object *obj = pool->obj;
+  GstClockTime timestamp;
   gint index;
 
   if (!gst_v4l2_is_buffer_valid (buf, &group)) {
@@ -1098,6 +1102,11 @@ gst_v4l2_buffer_pool_qbuf (GstV4l2BufferPool * pool, GstBuffer * buf)
     group->buffer.field = field;
   }
 
+  if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
+    timestamp = GST_BUFFER_TIMESTAMP (buf);
+    GST_TIME_TO_TIMEVAL (timestamp, group->buffer.timestamp);
+  }
+
   if (!gst_v4l2_allocator_qbuf (pool->vallocator, group))
     goto queue_failed;
 
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index ce2882d0c8b184c0e8f5990d0e3edbbf5336e395..17847e69fccd9f7def9a8f4c8cc004b5dffe9ced 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -1336,7 +1336,7 @@ gst_v4l2_object_v4l2fourcc_to_structure (guint32 fourcc)
       gst_structure_set (template,
           "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
           "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-          "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
+          "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
     }
     break;
   }
@@ -1369,7 +1369,7 @@ gst_v4l2_object_get_caps_helper (GstV4L2FormatFlags flags)
         gst_structure_set (structure,
             "width", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
             "height", GST_TYPE_INT_RANGE, 1, GST_V4L2_MAX_SIZE,
-            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1, NULL);
+            "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL);
       }
 
       switch (gst_v4l2_formats[i].format) {
@@ -1771,16 +1771,19 @@ gst_v4l2_object_get_colorspace (enum v4l2_colorspace colorspace,
     case V4L2_YCBCR_ENC_XV601:
     case V4L2_YCBCR_ENC_SYCC:
       GST_FIXME ("XV601 and SYCC not defined, assuming 601");
+      /* fallthrough */
     case V4L2_YCBCR_ENC_601:
       cinfo->matrix = GST_VIDEO_COLOR_MATRIX_BT601;
       break;
     case V4L2_YCBCR_ENC_XV709:
       GST_FIXME ("XV709 not defined, assuming 709");
+      /* fallthrough */
     case V4L2_YCBCR_ENC_709:
       cinfo->matrix = GST_VIDEO_COLOR_MATRIX_BT709;
       break;
     case V4L2_YCBCR_ENC_BT2020_CONST_LUM:
       GST_FIXME ("BT2020 with constant lumma is not defined, assuming BT2020");
+      /* fallthrough */
     case V4L2_YCBCR_ENC_BT2020:
       cinfo->matrix = GST_VIDEO_COLOR_MATRIX_BT2020;
       break;
@@ -2143,8 +2146,8 @@ return_data:
     gst_structure_take_value (s, "framerate", &rates);
   } else if (v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE ||
       v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
-    gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, 100, 1,
-        NULL);
+    gst_structure_set (s, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT,
+        1, NULL);
   }
   return s;
 
@@ -2441,7 +2444,7 @@ default_frame_sizes:
         v4l2object->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) {
       /* if norm can't be used, copy the template framerate */
       gst_structure_set (tmp, "framerate", GST_TYPE_FRACTION_RANGE, 0, 1,
-          100, 1, NULL);
+          G_MAXINT, 1, NULL);
     }
 
     if (min_w == max_w)
@@ -2938,6 +2941,7 @@ gst_v4l2_object_set_format_full (GstV4l2Object * v4l2object, GstCaps * caps,
       case GST_VIDEO_TRANSFER_GAMMA28:
         GST_WARNING_OBJECT (v4l2object->element,
             "GAMMA 18, 20, 22, 28 transfer functions not supported");
+        /* fallthrough */
       case GST_VIDEO_TRANSFER_GAMMA10:
         transfer = V4L2_XFER_FUNC_NONE;
         break;
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index 633e46fb612ed0d045ac7be3e28f5f849ad1faa8..e8bfb187a28ac1976ebb2584e68bf8eb2987d154 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -270,7 +270,7 @@ gst_v4l2src_fixate (GstBaseSrc * basesrc, GstCaps * caps)
 
     if (gst_structure_has_field (structure, "framerate"))
       gst_structure_fixate_field_nearest_fraction (structure, "framerate",
-          G_MAXINT, 1);
+          100, 1);
 
     if (gst_structure_has_field (structure, "format"))
       gst_structure_fixate_field (structure, "format");
diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c
index f7b0233b3a6f1ab6d761f02980d258ca3d3adae6..b3a6b42472c125acb0b55737021cd7a4c542ede4 100644
--- a/sys/v4l2/gstv4l2transform.c
+++ b/sys/v4l2/gstv4l2transform.c
@@ -761,6 +761,7 @@ gst_v4l2_transform_fixate_caps (GstBaseTransform * trans,
               &to_par_n, &to_par_d)) {
         GST_ELEMENT_ERROR (trans, CORE, NEGOTIATION, (NULL),
             ("Error calculating the output scaled size - integer overflow"));
+        gst_structure_free (tmp);
         goto done;
       }
 
diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in
index f86e8fedf86c21d6b1ac275475ff46da9081ca6b..87d50a49c28f11cf581d05897d1c679a7c57e2f5 100644
--- a/sys/waveform/Makefile.in
+++ b/sys/waveform/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/waveform
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -227,6 +237,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -582,7 +593,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/waveform/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/waveform/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -899,6 +909,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index e629713c6627903aa8d4fef95de4a201783aa07f..3f8b3161243a732c6d745069fff18377752c00ec 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = sys/ximage
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -228,6 +238,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -584,7 +595,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu sys/ximage/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu sys/ximage/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -901,6 +911,8 @@ uninstall-am: uninstall-pluginLTLIBRARIES
 	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
 	uninstall-pluginLTLIBRARIES
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c
index add04225b823a0352f0b74e83e0c47a207ea3aca..ac2fd49f0c3483aeded1bdf597392ac0559c8084 100644
--- a/sys/ximage/ximageutil.c
+++ b/sys/ximage/ximageutil.c
@@ -36,6 +36,15 @@ gst_meta_ximage_api_get_type (void)
   return type;
 }
 
+static gboolean
+gst_meta_ximage_transform (GstBuffer * dest, GstMeta * meta,
+    GstBuffer * buffer, GQuark type, gpointer data)
+{
+  /* ximage metadata can't be transformed or copied */
+
+  return FALSE;
+}
+
 const GstMetaInfo *
 gst_meta_ximage_get_info (void)
 {
@@ -45,7 +54,7 @@ gst_meta_ximage_get_info (void)
     const GstMetaInfo *meta =
         gst_meta_register (gst_meta_ximage_api_get_type (), "GstMetaXImageSrc",
         sizeof (GstMetaXImage), (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL);
+        (GstMetaFreeFunction) NULL, gst_meta_ximage_transform);
     g_once_init_leave (&meta_ximage_info, meta);
   }
   return meta_ximage_info;
diff --git a/test-driver b/test-driver
index d30605660a0612aa12702dd7e0d0a3c86e7f7dad..8e575b017d93702e9ec30bc6c3f0e08839e805e8 100755
--- a/test-driver
+++ b/test-driver
@@ -3,7 +3,7 @@
 
 scriptversion=2013-07-13.22; # UTC
 
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2014 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
@@ -106,11 +106,14 @@ trap "st=143; $do_exit" 15
 # Test script is run here.
 "$@" >$log_file 2>&1
 estatus=$?
+
 if test $enable_hard_errors = no && test $estatus -eq 99; then
-  estatus=1
+  tweaked_estatus=1
+else
+  tweaked_estatus=$estatus
 fi
 
-case $estatus:$expect_failure in
+case $tweaked_estatus:$expect_failure in
   0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
   0:*)   col=$grn res=PASS  recheck=no  gcopy=no;;
   77:*)  col=$blu res=SKIP  recheck=no  gcopy=yes;;
@@ -119,6 +122,12 @@ case $estatus:$expect_failure in
   *:*)   col=$red res=FAIL  recheck=yes gcopy=yes;;
 esac
 
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>$log_file
+
 # Report outcome to console.
 echo "${col}${res}${std}: $test_name"
 
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 6dab8a3bad9bb1f73021530e33623ffbe6bd1bc4..d338e70cf08e64e8a4be5492a928b240c012ec4f 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -115,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -173,6 +183,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -545,7 +556,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -840,6 +850,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index a64f285ab11addd4c54ea030485ff311624083b7..e577979d383464c87ac2b14fe150dfbfa703452e 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -193,6 +193,7 @@ endif
 
 if USE_PLUGIN_MATROSKA
 check_matroska = \
+	elements/matroskademux \
 	elements/matroskamux \
 	elements/matroskaparse
 else
@@ -215,7 +216,9 @@ check_replaygain =
 endif
 
 if USE_PLUGIN_RTP
-check_rtp = elements/rtp-payloading
+check_rtp = \
+	elements/rtp-payloading \
+	elements/rtph263
 else
 check_rtp =
 endif
@@ -522,6 +525,9 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
 
+elements_rtph263_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph263_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
+
 elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index ea362b58f57d00ca7f945cad3a40e8c705eeda31..3336d38aa67c152f47676d8b28ab34cf38ae0d93 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,9 +89,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/check.mak $(srcdir)/Makefile.in \
-	$(srcdir)/Makefile.am $(top_srcdir)/depcomp \
-	$(top_srcdir)/test-driver
 check_PROGRAMS = generic/states$(EXEEXT) \
 	pipelines/simple-launch-lines$(EXEEXT) \
 	pipelines/tagschecking$(EXEEXT) $(am__EXEEXT_1) \
@@ -135,6 +142,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -202,6 +210,7 @@ libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 @USE_PLUGIN_LAW_TRUE@	elements/mulawenc$(EXEEXT)
 @USE_PLUGIN_LEVEL_TRUE@am__EXEEXT_21 = elements/level$(EXEEXT)
 @USE_PLUGIN_MATROSKA_TRUE@am__EXEEXT_22 =  \
+@USE_PLUGIN_MATROSKA_TRUE@	elements/matroskademux$(EXEEXT) \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskamux$(EXEEXT) \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskaparse$(EXEEXT)
 @USE_PLUGIN_MULTIFILE_TRUE@am__EXEEXT_23 =  \
@@ -211,7 +220,8 @@ libparser_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rganalysis$(EXEEXT) \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rglimiter$(EXEEXT) \
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rgvolume$(EXEEXT)
-@USE_PLUGIN_RTP_TRUE@am__EXEEXT_25 = elements/rtp-payloading$(EXEEXT)
+@USE_PLUGIN_RTP_TRUE@am__EXEEXT_25 = elements/rtp-payloading$(EXEEXT) \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph263$(EXEEXT)
 @USE_PLUGIN_RTPMANAGER_TRUE@am__EXEEXT_26 = elements/rtpaux$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpbin$(EXEEXT) \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpbin_buffer_list$(EXEEXT) \
@@ -510,6 +520,10 @@ elements_level_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_level_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o \
 	$@
+elements_matroskademux_SOURCES = elements/matroskademux.c
+elements_matroskademux_OBJECTS = elements/matroskademux.$(OBJEXT)
+elements_matroskademux_LDADD = $(LDADD)
+elements_matroskademux_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_matroskamux_SOURCES = elements/matroskamux.c
 elements_matroskamux_OBJECTS = elements/matroskamux.$(OBJEXT)
 elements_matroskamux_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -621,6 +635,15 @@ elements_rtpcollision_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_rtpcollision_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_rtph263_SOURCES = elements/rtph263.c
+elements_rtph263_OBJECTS =  \
+	elements/elements_rtph263-rtph263.$(OBJEXT)
+elements_rtph263_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_rtph263_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_rtph263_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 elements_rtpjitterbuffer_SOURCES = elements/rtpjitterbuffer.c
 elements_rtpjitterbuffer_OBJECTS =  \
 	elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT)
@@ -878,20 +901,21 @@ SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/gdkpixbufsink.c elements/icydemux.c \
 	elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \
 	elements/interleave.c elements/jpegdec.c elements/jpegenc.c \
-	elements/level.c elements/matroskamux.c \
-	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
-	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
-	elements/rgvolume.c elements/rtp-payloading.c \
-	elements/rtpaux.c elements/rtpbin.c \
+	elements/level.c elements/matroskademux.c \
+	elements/matroskamux.c elements/matroskaparse.c \
+	elements/mpegaudioparse.c elements/mulawdec.c \
+	elements/mulawenc.c elements/multifile.c elements/qtmux.c \
+	elements/rganalysis.c elements/rglimiter.c elements/rgvolume.c \
+	elements/rtp-payloading.c elements/rtpaux.c elements/rtpbin.c \
 	$(elements_rtpbin_buffer_list_SOURCES) elements/rtpcollision.c \
-	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
-	elements/rtpsession.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/splitmux.c \
-	elements/sunaudio.c elements/udpsink.c elements/udpsrc.c \
-	elements/videobox.c elements/videocrop.c \
-	elements/videofilter.c elements/videomixer.c elements/vp8dec.c \
-	elements/vp8enc.c elements/wavpackdec.c elements/wavpackenc.c \
+	elements/rtph263.c elements/rtpjitterbuffer.c \
+	elements/rtpmux.c elements/rtprtx.c elements/rtpsession.c \
+	elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/splitmux.c elements/sunaudio.c \
+	elements/udpsink.c elements/udpsrc.c elements/videobox.c \
+	elements/videocrop.c elements/videofilter.c \
+	elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \
+	elements/wavpackdec.c elements/wavpackenc.c \
 	elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \
 	generic/states.c $(nodist_orc_deinterlace_SOURCES) \
 	$(nodist_orc_videobox_SOURCES) \
@@ -915,20 +939,21 @@ DIST_SOURCES = $(libparser_la_SOURCES) elements/aacparse.c \
 	elements/gdkpixbufsink.c elements/icydemux.c \
 	elements/id3demux.c elements/id3v2mux.c elements/imagefreeze.c \
 	elements/interleave.c elements/jpegdec.c elements/jpegenc.c \
-	elements/level.c elements/matroskamux.c \
-	elements/matroskaparse.c elements/mpegaudioparse.c \
-	elements/mulawdec.c elements/mulawenc.c elements/multifile.c \
-	elements/qtmux.c elements/rganalysis.c elements/rglimiter.c \
-	elements/rgvolume.c elements/rtp-payloading.c \
-	elements/rtpaux.c elements/rtpbin.c \
+	elements/level.c elements/matroskademux.c \
+	elements/matroskamux.c elements/matroskaparse.c \
+	elements/mpegaudioparse.c elements/mulawdec.c \
+	elements/mulawenc.c elements/multifile.c elements/qtmux.c \
+	elements/rganalysis.c elements/rglimiter.c elements/rgvolume.c \
+	elements/rtp-payloading.c elements/rtpaux.c elements/rtpbin.c \
 	$(elements_rtpbin_buffer_list_SOURCES) elements/rtpcollision.c \
-	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
-	elements/rtpsession.c elements/shapewipe.c \
-	elements/souphttpsrc.c elements/spectrum.c elements/splitmux.c \
-	elements/sunaudio.c elements/udpsink.c elements/udpsrc.c \
-	elements/videobox.c elements/videocrop.c \
-	elements/videofilter.c elements/videomixer.c elements/vp8dec.c \
-	elements/vp8enc.c elements/wavpackdec.c elements/wavpackenc.c \
+	elements/rtph263.c elements/rtpjitterbuffer.c \
+	elements/rtpmux.c elements/rtprtx.c elements/rtpsession.c \
+	elements/shapewipe.c elements/souphttpsrc.c \
+	elements/spectrum.c elements/splitmux.c elements/sunaudio.c \
+	elements/udpsink.c elements/udpsrc.c elements/videobox.c \
+	elements/videocrop.c elements/videofilter.c \
+	elements/videomixer.c elements/vp8dec.c elements/vp8enc.c \
+	elements/wavpackdec.c elements/wavpackenc.c \
 	elements/wavpackparse.c elements/wavparse.c elements/y4menc.c \
 	generic/states.c pipelines/effectv.c pipelines/flacdec.c \
 	pipelines/simple-launch-lines.c pipelines/tagschecking.c \
@@ -1161,6 +1186,8 @@ TEST_LOGS = $(am__test_logs2:.test.log=.log)
 TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
 TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
 	$(TEST_LOG_FLAGS)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/common/check.mak \
+	$(top_srcdir)/depcomp $(top_srcdir)/test-driver
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -1601,6 +1628,7 @@ CLEANFILES = core.* test-registry.*
 @USE_PLUGIN_LEVEL_TRUE@check_level = elements/level
 @USE_PLUGIN_MATROSKA_FALSE@check_matroska = 
 @USE_PLUGIN_MATROSKA_TRUE@check_matroska = \
+@USE_PLUGIN_MATROSKA_TRUE@	elements/matroskademux \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskamux \
 @USE_PLUGIN_MATROSKA_TRUE@	elements/matroskaparse
 
@@ -1613,7 +1641,10 @@ CLEANFILES = core.* test-registry.*
 @USE_PLUGIN_REPLAYGAIN_TRUE@	elements/rgvolume
 
 @USE_PLUGIN_RTP_FALSE@check_rtp = 
-@USE_PLUGIN_RTP_TRUE@check_rtp = elements/rtp-payloading
+@USE_PLUGIN_RTP_TRUE@check_rtp = \
+@USE_PLUGIN_RTP_TRUE@	elements/rtp-payloading \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph263
+
 @USE_PLUGIN_RTPMANAGER_FALSE@check_rtpmanager = 
 @USE_PLUGIN_RTPMANAGER_TRUE@check_rtpmanager = \
 @USE_PLUGIN_RTPMANAGER_TRUE@	elements/rtpaux \
@@ -1778,6 +1809,8 @@ elements_rtpbin_buffer_list_LDADD = $(GST_PLUGINS_BASE_LIBS) \
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
+elements_rtph263_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph263_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 elements_rtpmux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
 elements_rtpmux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 elements_souphttpsrc_CFLAGS = $(SOUP_CFLAGS) $(AM_CFLAGS)
@@ -1849,7 +1882,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/check/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/check/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1858,7 +1890,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/check.mak:
+$(top_srcdir)/common/check.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -2127,6 +2159,12 @@ elements/elements_level-level.$(OBJEXT): elements/$(am__dirstamp) \
 elements/level$(EXEEXT): $(elements_level_OBJECTS) $(elements_level_DEPENDENCIES) $(EXTRA_elements_level_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/level$(EXEEXT)
 	$(AM_V_CCLD)$(elements_level_LINK) $(elements_level_OBJECTS) $(elements_level_LDADD) $(LIBS)
+elements/matroskademux.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/matroskademux$(EXEEXT): $(elements_matroskademux_OBJECTS) $(elements_matroskademux_DEPENDENCIES) $(EXTRA_elements_matroskademux_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/matroskademux$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_matroskademux_OBJECTS) $(elements_matroskademux_LDADD) $(LIBS)
 elements/matroskamux.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2217,6 +2255,12 @@ elements/elements_rtpcollision-rtpcollision.$(OBJEXT):  \
 elements/rtpcollision$(EXEEXT): $(elements_rtpcollision_OBJECTS) $(elements_rtpcollision_DEPENDENCIES) $(EXTRA_elements_rtpcollision_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpcollision$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rtpcollision_LINK) $(elements_rtpcollision_OBJECTS) $(elements_rtpcollision_LDADD) $(LIBS)
+elements/elements_rtph263-rtph263.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/rtph263$(EXEEXT): $(elements_rtph263_OBJECTS) $(elements_rtph263_DEPENDENCIES) $(EXTRA_elements_rtph263_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/rtph263$(EXEEXT)
+	$(AM_V_CCLD)$(elements_rtph263_LINK) $(elements_rtph263_OBJECTS) $(elements_rtph263_LDADD) $(LIBS)
 elements/elements_rtpjitterbuffer-rtpjitterbuffer.$(OBJEXT):  \
 	elements/$(am__dirstamp) elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2481,6 +2525,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpaux-rtpaux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpbin_buffer_list-rtpbin_buffer_list.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpcollision-rtpcollision.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtph263-rtph263.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtpmux-rtpmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_rtprtx-rtprtx.Po@am__quote@
@@ -2499,6 +2544,7 @@ distclean-compile:
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/id3demux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/id3v2mux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/libparser_la-parser.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/matroskademux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/matroskamux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/matroskaparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/mpegaudioparse.Po@am__quote@
@@ -3019,6 +3065,20 @@ elements/elements_rtpcollision-rtpcollision.obj: elements/rtpcollision.c
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpcollision_CFLAGS) $(CFLAGS) -c -o elements/elements_rtpcollision-rtpcollision.obj `if test -f 'elements/rtpcollision.c'; then $(CYGPATH_W) 'elements/rtpcollision.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtpcollision.c'; fi`
 
+elements/elements_rtph263-rtph263.o: elements/rtph263.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph263_CFLAGS) $(CFLAGS) -MT elements/elements_rtph263-rtph263.o -MD -MP -MF elements/$(DEPDIR)/elements_rtph263-rtph263.Tpo -c -o elements/elements_rtph263-rtph263.o `test -f 'elements/rtph263.c' || echo '$(srcdir)/'`elements/rtph263.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph263-rtph263.Tpo elements/$(DEPDIR)/elements_rtph263-rtph263.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph263.c' object='elements/elements_rtph263-rtph263.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph263_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph263-rtph263.o `test -f 'elements/rtph263.c' || echo '$(srcdir)/'`elements/rtph263.c
+
+elements/elements_rtph263-rtph263.obj: elements/rtph263.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph263_CFLAGS) $(CFLAGS) -MT elements/elements_rtph263-rtph263.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtph263-rtph263.Tpo -c -o elements/elements_rtph263-rtph263.obj `if test -f 'elements/rtph263.c'; then $(CYGPATH_W) 'elements/rtph263.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph263.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph263-rtph263.Tpo elements/$(DEPDIR)/elements_rtph263-rtph263.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph263.c' object='elements/elements_rtph263-rtph263.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph263_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph263-rtph263.obj `if test -f 'elements/rtph263.c'; then $(CYGPATH_W) 'elements/rtph263.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph263.c'; fi`
+
 elements/elements_rtpjitterbuffer-rtpjitterbuffer.o: elements/rtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtpjitterbuffer_CFLAGS) $(CFLAGS) -MT elements/elements_rtpjitterbuffer-rtpjitterbuffer.o -MD -MP -MF elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo -c -o elements/elements_rtpjitterbuffer-rtpjitterbuffer.o `test -f 'elements/rtpjitterbuffer.c' || echo '$(srcdir)/'`elements/rtpjitterbuffer.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Tpo elements/$(DEPDIR)/elements_rtpjitterbuffer-rtpjitterbuffer.Po
@@ -3349,7 +3409,7 @@ $(TEST_SUITE_LOG): $(TEST_LOGS)
 	if test -n "$$am__remaking_logs"; then \
 	  echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
 	       "recursion detected" >&2; \
-	else \
+	elif test -n "$$redo_logs"; then \
 	  am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
 	fi; \
 	if $(am__make_dryrun); then :; else \
@@ -3775,6 +3835,13 @@ elements/level.log: elements/level$(EXEEXT)
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/matroskademux.log: elements/matroskademux$(EXEEXT)
+	@p='elements/matroskademux$(EXEEXT)'; \
+	b='elements/matroskademux'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 elements/matroskamux.log: elements/matroskamux$(EXEEXT)
 	@p='elements/matroskamux$(EXEEXT)'; \
 	b='elements/matroskamux'; \
@@ -3831,6 +3898,13 @@ elements/rtp-payloading.log: elements/rtp-payloading$(EXEEXT)
 	--log-file $$b.log --trs-file $$b.trs \
 	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
 	"$$tst" $(AM_TESTS_FD_REDIRECT)
+elements/rtph263.log: elements/rtph263$(EXEEXT)
+	@p='elements/rtph263$(EXEEXT)'; \
+	b='elements/rtph263'; \
+	$(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+	--log-file $$b.log --trs-file $$b.trs \
+	$(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+	"$$tst" $(AM_TESTS_FD_REDIRECT)
 elements/rtpaux.log: elements/rtpaux$(EXEEXT)
 	@p='elements/rtpaux$(EXEEXT)'; \
 	b='elements/rtpaux'; \
@@ -4236,6 +4310,8 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am recheck tags tags-am \
 	uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # keep target around, since it's referenced in the modules' Makefiles
 clean-local-check:
diff --git a/tests/check/elements/aacparse.c b/tests/check/elements/aacparse.c
index 6ec29d624f1cec7c826e6efd60bb46a43734da1a..9022886e27c8e5edd780332d6fa90b11234f533f 100644
--- a/tests/check/elements/aacparse.c
+++ b/tests/check/elements/aacparse.c
@@ -189,7 +189,7 @@ GST_END_TEST;
 
 GST_START_TEST (test_parse_proxy_constraints)
 {
-  GstCaps *caps;
+  GstCaps *caps, *resultcaps;
   GstElement *parse, *filter;
   GstPad *sinkpad;
   GstStructure *s;
@@ -218,12 +218,16 @@ GST_START_TEST (test_parse_proxy_constraints)
 
   /* should accept without the constraint */
   caps = gst_caps_from_string ("audio/mpeg,mpegversion=2");
-  fail_unless (gst_pad_query_accept_caps (sinkpad, caps));
+  resultcaps = gst_pad_query_caps (sinkpad, caps);
+  fail_if (gst_caps_is_empty (resultcaps));
+  gst_caps_unref (resultcaps);
   gst_caps_unref (caps);
 
   /* should not accept with conflicting version */
   caps = gst_caps_from_string ("audio/mpeg,mpegversion=4");
-  fail_if (gst_pad_query_accept_caps (sinkpad, caps));
+  resultcaps = gst_pad_query_caps (sinkpad, caps);
+  fail_unless (gst_caps_is_empty (resultcaps));
+  gst_caps_unref (resultcaps);
   gst_caps_unref (caps);
 
   gst_object_unref (sinkpad);
diff --git a/tests/check/elements/matroskademux.c b/tests/check/elements/matroskademux.c
new file mode 100644
index 0000000000000000000000000000000000000000..93c139a009bbbb485909c49c99b13cd7d6446d70
--- /dev/null
+++ b/tests/check/elements/matroskademux.c
@@ -0,0 +1,124 @@
+/* GStreamer unit test for matroskademux
+ * Copyright (C) 2015 Tim-Philipp Müller <tim@centricular.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
+
+const gchar mkv_sub_base64[] =
+    "GkXfowEAAAAAAAAUQoKJbWF0cm9za2EAQoeBAkKFgQIYU4BnAQAAAAAAAg0RTZt0AQAAAAAAAIxN"
+    "uwEAAAAAAAASU6uEFUmpZlOsiAAAAAAAAACYTbsBAAAAAAAAElOrhBZUrmtTrIgAAAAAAAABEuya"
+    "AQAAAAAAABJTq4QQQ6dwU6yI///////////smgEAAAAAAAASU6uEHFO7a1OsiP//////////TbsB"
+    "AAAAAAAAElOrhBJUw2dTrIgAAAAAAAAB9xVJqWYBAAAAAAAAbnOkkDylQZJlrLziQo8+gsrZVtUq"
+    "17GDD0JARImIQNGUAAAAAABNgJ9HU3RyZWFtZXIgcGx1Z2luIHZlcnNpb24gMS40LjUAV0GZR1N0"
+    "cmVhbWVyIE1hdHJvc2thIG11eGVyAERhiAZfU0rcEwgAFlSuawEAAAAAAAA0rgEAAAAAAAAr14EB"
+    "g4ERc8WIoWF8pYlELidTbolTdWJ0aXRsZQCGjFNfVEVYVC9VVEY4AB9DtnUBAAAAAAAAmeeCA+ig"
+    "AQAAAAAAAA2bggfQoYeBAAAAZm9voAEAAAAAAAAUm4IH0KGOgQu4ADxpPmJhcjwvaT6gAQAAAAAA"
+    "AA2bggfQoYeBF3AAYmF6oAEAAAAAAAAOm4IH0KGIgScQAGbDtgCgAQAAAAAAABWbggfQoY+BMsgA"
+    "PGk+YmFyPC9pPgCgAQAAAAAAAA6bggfQoYiBPoAAYuR6ABJUw2cBAAAAAAAACnNzAQAAAAAAAAA=";
+
+static void
+pad_added_cb (GstElement * matroskademux, GstPad * pad, gpointer user_data)
+{
+  GstHarness *h = user_data;
+
+  GST_LOG_OBJECT (pad, "got new source pad");
+  gst_harness_add_element_src_pad (h, pad);
+}
+
+static void
+pull_and_check_buffer (GstHarness * h, GstClockTime pts, GstClockTime duration,
+    const gchar * output)
+{
+  GstMapInfo map;
+  GstBuffer *buf;
+
+  /* wait for buffer */
+  buf = gst_harness_pull (h);
+
+  /* Make sure there's no 0-terminator in there */
+  fail_unless (gst_buffer_map (buf, &map, GST_MAP_READ));
+  GST_MEMDUMP ("subtitle buffer", map.data, map.size);
+  fail_unless (map.size > 0);
+  fail_unless (map.data[map.size - 1] != '\0');
+  if (output != NULL && memcmp (map.data, output, map.size) != 0) {
+    g_printerr ("Got:\n");
+    gst_util_dump_mem (map.data, map.size);;
+    g_printerr ("Wanted:\n");
+    gst_util_dump_mem ((guint8 *) output, strlen (output));
+    g_error ("Did not get output expected.");
+  }
+
+  gst_buffer_unmap (buf, &map);
+
+  fail_unless_equals_int64 (pts, GST_BUFFER_PTS (buf));
+  fail_unless_equals_int64 (duration, GST_BUFFER_DURATION (buf));
+
+  gst_buffer_unref (buf);
+}
+
+GST_START_TEST (test_sub_terminator)
+{
+  GstHarness *h;
+  GstBuffer *buf;
+  guchar *mkv_data;
+  gsize mkv_size;
+
+  h = gst_harness_new_with_padnames ("matroskademux", "sink", NULL);
+
+  g_signal_connect (h->element, "pad-added", G_CALLBACK (pad_added_cb), h);
+
+  mkv_data = g_base64_decode (mkv_sub_base64, &mkv_size);
+  fail_unless (mkv_data != NULL);
+
+  gst_harness_set_src_caps_str (h, "video/x-matroska");
+
+  buf = gst_buffer_new_wrapped (mkv_data, mkv_size);
+  GST_BUFFER_OFFSET (buf) = 0;
+
+  fail_unless_equals_int (gst_harness_push (h, buf), GST_FLOW_OK);
+  gst_harness_push_event (h, gst_event_new_eos ());
+
+  pull_and_check_buffer (h, 1 * GST_SECOND, 2 * GST_SECOND, "foo");
+  pull_and_check_buffer (h, 4 * GST_SECOND, 2 * GST_SECOND, "<i>bar</i>");
+  pull_and_check_buffer (h, 7 * GST_SECOND, 2 * GST_SECOND, "baz");
+  pull_and_check_buffer (h, 11 * GST_SECOND, 2 * GST_SECOND, "f\303\266");
+  pull_and_check_buffer (h, 14 * GST_SECOND, 2 * GST_SECOND, "<i>bar</i>");
+  /* The input is invalid UTF-8 here, what happens might depend on locale */
+  pull_and_check_buffer (h, 17 * GST_SECOND, 2 * GST_SECOND, NULL);
+
+  fail_unless (gst_harness_try_pull (h) == NULL);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+static Suite *
+matroskademux_suite (void)
+{
+  Suite *s = suite_create ("matroskademux");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_sub_terminator);
+
+  return s;
+}
+
+GST_CHECK_MAIN (matroskademux);
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c
index 7dc9ce07cbd13322a9d3d5f0a170adc83e347b4b..5876c32f2a3c28650333db903e18451e6976c72e 100644
--- a/tests/check/elements/rtp-payloading.c
+++ b/tests/check/elements/rtp-payloading.c
@@ -300,15 +300,10 @@ rtp_pipeline_run (rtp_pipeline * p)
  * @param p Pointer to the RTP pipeline.
  */
 static void
-rtp_pipeline_enable_lists (rtp_pipeline * p, guint mtu_size)
+rtp_pipeline_enable_lists (rtp_pipeline * p)
 {
   GstPad *pad;
 
-  /* set mtu size if needed */
-  if (mtu_size) {
-    g_object_set (p->rtppay, "mtu", mtu_size, NULL);
-  }
-
   /* Add chain list function for the buffer list tests */
   pad = gst_element_get_static_pad (p->rtpdepay, "sink");
   gst_pad_set_chain_list_function (pad,
@@ -344,8 +339,13 @@ rtp_pipeline_test (const guint8 * frame_data, int frame_data_size,
     return;
   }
 
+  /* set mtu size if needed */
+  if (mtu_size > 0) {
+    g_object_set (p->rtppay, "mtu", mtu_size, NULL);
+  }
+
   if (use_lists) {
-    rtp_pipeline_enable_lists (p, mtu_size);
+    rtp_pipeline_enable_lists (p);
     chain_list_bytes_received = 0;
   }
 
@@ -357,7 +357,7 @@ rtp_pipeline_test (const guint8 * frame_data, int frame_data_size,
 
   if (use_lists) {
     /* 'next NAL' indicator is 4 bytes */
-    fail_if (chain_list_bytes_received != bytes_sent * LOOP_COUNT);
+    fail_unless_equals_int (chain_list_bytes_received, bytes_sent * LOOP_COUNT);
   }
 }
 
@@ -464,6 +464,24 @@ GST_START_TEST (rtp_mpa)
 }
 
 GST_END_TEST;
+
+static const guint8 rtp_h261_frame_data[] = {
+  0x00, 0x01, 0x00, 0x06, 0x00, 0x01, 0x11, 0x00, 0x00, 0x4c, 0x40, 0x00,
+  0x15, 0x10,
+};
+
+static int rtp_h261_frame_data_size = 14;
+static int rtp_h261_frame_count = 1;
+
+GST_START_TEST (rtp_h261)
+{
+  rtp_pipeline_test (rtp_h261_frame_data, rtp_h261_frame_data_size,
+      rtp_h261_frame_count, "video/x-h261", "rtph261pay", "rtph261depay",
+      0, 0, FALSE);
+}
+
+GST_END_TEST;
+
 static const guint8 rtp_h263_frame_data[] =
     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -650,6 +668,49 @@ GST_START_TEST (rtp_h264_list_gt_mtu_avc)
 
 GST_END_TEST;
 
+/* KLV data from Day_Flight.mpg */
+static const guint8 rtp_KLV_frame_data[] = {
+  0x06, 0x0e, 0x2b, 0x34, 0x02, 0x0b, 0x01, 0x01,
+  0x0e, 0x01, 0x03, 0x01, 0x01, 0x00, 0x00, 0x00,
+  0x81, 0x91, 0x02, 0x08, 0x00, 0x04, 0x6c, 0x8e,
+  0x20, 0x03, 0x83, 0x85, 0x41, 0x01, 0x01, 0x05,
+  0x02, 0x3d, 0x3b, 0x06, 0x02, 0x15, 0x80, 0x07,
+  0x02, 0x01, 0x52, 0x0b, 0x03, 0x45, 0x4f, 0x4e,
+  0x0c, 0x0e, 0x47, 0x65, 0x6f, 0x64, 0x65, 0x74,
+  0x69, 0x63, 0x20, 0x57, 0x47, 0x53, 0x38, 0x34,
+  0x0d, 0x04, 0x4d, 0xc4, 0xdc, 0xbb, 0x0e, 0x04,
+  0xb1, 0xa8, 0x6c, 0xfe, 0x0f, 0x02, 0x1f, 0x4a,
+  0x10, 0x02, 0x00, 0x85, 0x11, 0x02, 0x00, 0x4b,
+  0x12, 0x04, 0x20, 0xc8, 0xd2, 0x7d, 0x13, 0x04,
+  0xfc, 0xdd, 0x02, 0xd8, 0x14, 0x04, 0xfe, 0xb8,
+  0xcb, 0x61, 0x15, 0x04, 0x00, 0x8f, 0x3e, 0x61,
+  0x16, 0x04, 0x00, 0x00, 0x01, 0xc9, 0x17, 0x04,
+  0x4d, 0xdd, 0x8c, 0x2a, 0x18, 0x04, 0xb1, 0xbe,
+  0x9e, 0xf4, 0x19, 0x02, 0x0b, 0x85, 0x28, 0x04,
+  0x4d, 0xdd, 0x8c, 0x2a, 0x29, 0x04, 0xb1, 0xbe,
+  0x9e, 0xf4, 0x2a, 0x02, 0x0b, 0x85, 0x38, 0x01,
+  0x2e, 0x39, 0x04, 0x00, 0x8d, 0xd4, 0x29, 0x01,
+  0x02, 0x1c, 0x5f
+};
+
+GST_START_TEST (rtp_klv)
+{
+  rtp_pipeline_test (rtp_KLV_frame_data, G_N_ELEMENTS (rtp_KLV_frame_data), 1,
+      "meta/x-klv, parsed=(bool)true", "rtpklvpay", "rtpklvdepay", 0, 0, FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (rtp_klv_fragmented)
+{
+  /* force super-small mtu of 60 to fragment KLV unit */
+  rtp_pipeline_test (rtp_KLV_frame_data, sizeof (rtp_KLV_frame_data), 1,
+      "meta/x-klv, parsed=(bool)true", "rtpklvpay", "rtpklvdepay",
+      sizeof (rtp_KLV_frame_data), 60, FALSE);
+}
+
+GST_END_TEST;
+
 static const guint8 rtp_L16_frame_data[] =
     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -945,6 +1006,7 @@ rtp_payloading_suite (void)
   tcase_add_test (tc_chain, rtp_pcma);
   tcase_add_test (tc_chain, rtp_pcmu);
   tcase_add_test (tc_chain, rtp_mpa);
+  tcase_add_test (tc_chain, rtp_h261);
   tcase_add_test (tc_chain, rtp_h263);
   tcase_add_test (tc_chain, rtp_h263p);
   tcase_add_test (tc_chain, rtp_h264);
@@ -952,6 +1014,8 @@ rtp_payloading_suite (void)
   tcase_add_test (tc_chain, rtp_h264_list_lt_mtu_avc);
   tcase_add_test (tc_chain, rtp_h264_list_gt_mtu);
   tcase_add_test (tc_chain, rtp_h264_list_gt_mtu_avc);
+  tcase_add_test (tc_chain, rtp_klv);
+  tcase_add_test (tc_chain, rtp_klv_fragmented);
   tcase_add_test (tc_chain, rtp_L16);
   tcase_add_test (tc_chain, rtp_L24);
   tcase_add_test (tc_chain, rtp_mp2t);
diff --git a/tests/check/elements/rtpaux.c b/tests/check/elements/rtpaux.c
index 729604aabfe8e89ddae01d7d4c697324df2bbe0f..236e2765b776183f78006817a8adb42ae939884c 100644
--- a/tests/check/elements/rtpaux.c
+++ b/tests/check/elements/rtpaux.c
@@ -202,7 +202,7 @@ GST_START_TEST (test_simple_rtpbin_aux)
   RTXSendData send_rtxdata;
   send_rtxdata.count = 1;
   send_rtxdata.nb_packets = 0;
-  send_rtxdata.drop_every_n_packets = 50;
+  send_rtxdata.drop_every_n_packets = 25;
 
   GST_INFO ("preparing test");
 
@@ -238,7 +238,7 @@ GST_START_TEST (test_simple_rtpbin_aux)
   g_object_set (recvrtp_udpsrc, "port", 5006, NULL);
   rtpcaps =
       gst_caps_from_string
-      ("application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA,payload=(int)8");
+      ("application/x-rtp,media=(string)audio,clock-rate=(int)8000,encoding-name=(string)PCMA,payload=(int)96");
   g_object_set (recvrtp_udpsrc, "caps", rtpcaps, NULL);
   gst_caps_unref (rtpcaps);
   recvrtcp_udpsrc = gst_element_factory_make ("udpsrc", "recvrtcp_udpsrc");
diff --git a/tests/check/elements/rtph263.c b/tests/check/elements/rtph263.c
new file mode 100644
index 0000000000000000000000000000000000000000..2c77ece33b2ce59a3cc9878af26e3981f367132a
--- /dev/null
+++ b/tests/check/elements/rtph263.c
@@ -0,0 +1,116 @@
+/* GStreamer
+ *
+ * Copyright (C) 2015 Pexip AS
+ *   @author Stian Selnes <stian@pexip.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <gst/check/check.h>
+#include <gst/check/gstharness.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#define RTP_H263_CAPS_STR(p)                                            \
+  "application/x-rtp,media=video,encoding-name=H263,clock-rate=90000,"  \
+  "payload=" G_STRINGIFY(p)
+
+static GstBuffer *
+create_rtp_buffer (guint8 * data, gsize size, guint ts, gint seqnum)
+{
+  GstBuffer *buf = gst_rtp_buffer_new_copy_data (data, size);
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+  GST_BUFFER_PTS (buf) = (ts) * (GST_SECOND / 30);
+
+  gst_rtp_buffer_map (buf, GST_MAP_WRITE, &rtp);
+  gst_rtp_buffer_set_seq (&rtp, seqnum);
+  gst_rtp_buffer_unmap (&rtp);
+
+  return buf;
+}
+
+GST_START_TEST (test_h263depay_start_packet_too_small_mode_a)
+{
+  GstHarness *h = gst_harness_new ("rtph263depay");
+  guint8 packet[] = {
+    0x80, 0xa2, 0x17, 0x62, 0x57, 0xbb, 0x48, 0x98, 0x4a, 0x59, 0xe8, 0xdc,
+    0x00, 0x00, 0x80, 0x00
+  };
+
+  gst_harness_set_src_caps_str (h, RTP_H263_CAPS_STR (34));
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, create_rtp_buffer (packet, sizeof (packet), 0, 0)));
+
+  /* Packet should be dropped and depayloader not crash */
+  fail_unless_equals_int (0, gst_harness_buffers_received (h));
+
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_h263depay_start_packet_too_small_mode_b)
+{
+  GstHarness *h = gst_harness_new ("rtph263depay");
+  guint8 packet[] = {
+    0x80, 0xa2, 0x17, 0x62, 0x57, 0xbb, 0x48, 0x98, 0x4a, 0x59, 0xe8, 0xdc,
+    0x80, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00
+  };
+
+  gst_harness_set_src_caps_str (h, RTP_H263_CAPS_STR (34));
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, create_rtp_buffer (packet, sizeof (packet), 0, 0)));
+
+  /* Packet should be dropped and depayloader not crash */
+  fail_unless_equals_int (0, gst_harness_buffers_received (h));
+
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
+GST_START_TEST (test_h263depay_start_packet_too_small_mode_c)
+{
+  GstHarness *h = gst_harness_new ("rtph263depay");
+  guint8 packet[] = {
+    0x80, 0xa2, 0x17, 0x62, 0x57, 0xbb, 0x48, 0x98, 0x4a, 0x59, 0xe8, 0xdc,
+    0xc0, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+  };
+
+  gst_harness_set_src_caps_str (h, RTP_H263_CAPS_STR (34));
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, create_rtp_buffer (packet, sizeof (packet), 0, 0)));
+
+  /* Packet should be dropped and depayloader not crash */
+  fail_unless_equals_int (0, gst_harness_buffers_received (h));
+
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
+static Suite *
+rtph263_suite (void)
+{
+  Suite *s = suite_create ("rtph263");
+  TCase *tc_chain;
+
+  suite_add_tcase (s, (tc_chain = tcase_create ("h263depay")));
+  tcase_add_test (tc_chain, test_h263depay_start_packet_too_small_mode_a);
+  tcase_add_test (tc_chain, test_h263depay_start_packet_too_small_mode_b);
+  tcase_add_test (tc_chain, test_h263depay_start_packet_too_small_mode_c);
+
+  return s;
+}
+
+GST_CHECK_MAIN (rtph263);
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c
index cc1cd020cb7a5e02f97041e0f94cea68dd5aa328..efbe161aa8fd01d1678db96ebc6ddc0619971ce9 100644
--- a/tests/check/elements/rtpjitterbuffer.c
+++ b/tests/check/elements/rtpjitterbuffer.c
@@ -5,6 +5,9 @@
  * Copyright (C) 2012 Cisco Systems, Inc
  *               Authors: Kelley Rogers <kelro@cisco.com>
  *               Havard Graff <hgraff@cisco.com>
+ * Copyright (C) 2013-2015 Pexip AS
+ *               Stian Selnes <stian@pexip>
+ *               Havard Graff <havard@pexip>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -24,6 +27,7 @@
 
 #include <gst/check/gstcheck.h>
 #include <gst/check/gsttestclock.h>
+#include <gst/check/gstharness.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
 
@@ -75,7 +79,8 @@ setup_jitterbuffer (gint num_buffers)
    *    "audio/x-raw,channels=1,rate=8000" ! mulawenc ! rtppcmupay !
    *     fakesink dump=1
    */
-  guint8 in[] = {               /* first 4 bytes are rtp-header, next 4 bytes are timestamp */
+  guint8 in[] = {
+    /* first 4 bytes are rtp-header, next 4 bytes are timestamp */
     0x80, 0x80, 0x1c, 0x24, 0x46, 0xcd, 0xb7, 0x11, 0x3c, 0x3a, 0x7c, 0x5b,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
     0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
@@ -374,10 +379,14 @@ GST_START_TEST (test_clear_pt_map)
 }
 
 GST_END_TEST;
-static const guint payload_size = 160;
-static const guint clock_rate = 8000;
-static const guint pcmu_payload_type = 0;
-static const guint test_ssrc = 0x01BADBAD;
+
+#define PCMU_BUF_CLOCK_RATE 8000
+#define PCMU_BUF_PT 0
+#define PCMU_BUF_SSRC 0x01BADBAD
+#define PCMU_BUF_MS  20
+#define PCMU_BUF_DURATION (PCMU_BUF_MS * GST_MSECOND)
+#define PCMU_BUF_SIZE (64000 * PCMU_BUF_MS / 1000)
+#define PCMU_RTP_TS_DURATION (PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000)
 
 typedef struct
 {
@@ -396,14 +405,14 @@ generate_caps (void)
 {
   return gst_caps_new_simple ("application/x-rtp",
       "media", G_TYPE_STRING, "audio",
-      "clock-rate", G_TYPE_INT, clock_rate,
+      "clock-rate", G_TYPE_INT, PCMU_BUF_CLOCK_RATE,
       "encoding-name", G_TYPE_STRING, "PCMU",
-      "payload", G_TYPE_INT, pcmu_payload_type,
-      "ssrc", G_TYPE_UINT, test_ssrc, NULL);
+      "payload", G_TYPE_INT, PCMU_BUF_PT,
+      "ssrc", G_TYPE_UINT, PCMU_BUF_SSRC, NULL);
 }
 
 static GstBuffer *
-generate_test_buffer (GstClockTime gst_ts,
+generate_test_buffer_full (GstClockTime gst_ts,
     gboolean marker_bit, guint seq_num, guint32 rtp_ts)
 {
   GstBuffer *buf;
@@ -411,19 +420,19 @@ generate_test_buffer (GstClockTime gst_ts,
   guint i;
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
 
-  buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0);
+  buf = gst_rtp_buffer_new_allocate (PCMU_BUF_SIZE, 0, 0);
   GST_BUFFER_DTS (buf) = gst_ts;
   GST_BUFFER_PTS (buf) = gst_ts;
 
   gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
-  gst_rtp_buffer_set_payload_type (&rtp, pcmu_payload_type);
+  gst_rtp_buffer_set_payload_type (&rtp, PCMU_BUF_PT);
   gst_rtp_buffer_set_marker (&rtp, marker_bit);
   gst_rtp_buffer_set_seq (&rtp, seq_num);
   gst_rtp_buffer_set_timestamp (&rtp, rtp_ts);
-  gst_rtp_buffer_set_ssrc (&rtp, test_ssrc);
+  gst_rtp_buffer_set_ssrc (&rtp, PCMU_BUF_SSRC);
 
   payload = gst_rtp_buffer_get_payload (&rtp);
-  for (i = 0; i < payload_size; i++)
+  for (i = 0; i < PCMU_BUF_SIZE; i++)
     payload[i] = 0xff;
 
   gst_rtp_buffer_unmap (&rtp);
@@ -431,6 +440,13 @@ generate_test_buffer (GstClockTime gst_ts,
   return buf;
 }
 
+static GstBuffer *
+generate_test_buffer (guint seq_num)
+{
+  return generate_test_buffer_full (seq_num * PCMU_BUF_DURATION,
+      TRUE, seq_num, seq_num * PCMU_RTP_TS_DURATION);
+}
+
 static GstFlowReturn
 test_sink_pad_chain_cb (GstPad * pad, GstObject * parent, GstBuffer * buffer)
 {
@@ -578,15 +594,13 @@ destroy_testharness (TestData * data)
 
 static void
 verify_lost_event (GstEvent * event, guint32 expected_seqnum,
-    GstClockTime expected_timestamp, GstClockTime expected_duration,
-    gboolean expected_late)
+    GstClockTime expected_timestamp, GstClockTime expected_duration)
 {
   const GstStructure *s = gst_event_get_structure (event);
   const GValue *value;
   guint32 seqnum;
   GstClockTime timestamp;
   GstClockTime duration;
-  gboolean late;
 
   g_assert (gst_structure_get_uint (s, "seqnum", &seqnum));
 
@@ -598,12 +612,9 @@ verify_lost_event (GstEvent * event, guint32 expected_seqnum,
   g_assert (value && G_VALUE_HOLDS_UINT64 (value));
   duration = g_value_get_uint64 (value);
 
-  g_assert (gst_structure_get_boolean (s, "late", &late));
-
-  g_assert_cmpint (seqnum, ==, expected_seqnum);
-  g_assert_cmpint (timestamp, ==, expected_timestamp);
-  g_assert_cmpint (duration, ==, expected_duration);
-  g_assert (late == expected_late);
+  fail_unless_equals_int (seqnum, expected_seqnum);
+  fail_unless_equals_int (timestamp, expected_timestamp);
+  fail_unless_equals_int (duration, expected_duration);
 
   gst_event_unref (event);
 }
@@ -643,86 +654,80 @@ verify_rtx_event (GstEvent * event, guint32 expected_seqnum,
 
 GST_START_TEST (test_only_one_lost_event_on_large_gaps)
 {
-  TestData data;
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
   GstClockID id, test_id;
-  GstBuffer *in_buf, *out_buf;
+  GstBuffer *out_buf;
   GstEvent *out_event;
   gint jb_latency_ms = 200;
-  guint buffer_size_ms = (payload_size * 1000) / clock_rate;
+  gint num_lost_events = jb_latency_ms / PCMU_BUF_MS;
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
 
-  setup_testharness (&data);
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_testclock (h);
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
 
-  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
   /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  gst_harness_push (h, generate_test_buffer (0));
 
   /* wait for the first buffer to be synced to timestamp + latency */
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+  gst_test_clock_wait_for_next_pending_id (testclock, &id);
 
   /* increase the time to timestamp + latency and release the wait */
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
-      jb_latency_ms * GST_MSECOND);
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (test_id == id);
+  gst_test_clock_set_time (testclock, jb_latency_ms * GST_MSECOND);
+  test_id = gst_test_clock_process_next_clock_id (testclock);
+  fail_unless (id == test_id);
   gst_clock_id_unref (test_id);
   gst_clock_id_unref (id);
 
   /* check for the buffer coming out that was pushed in */
-  out_buf = g_async_queue_pop (data.buf_queue);
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, 0);
   g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, 0);
   gst_buffer_unref (out_buf);
 
-  /* move time ahead 10 seconds */
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+  /* move time ahead to just before 10 seconds */
+  gst_test_clock_set_time (testclock, 10 * GST_SECOND - 1);
 
-  /* wait a bit */
-  g_usleep (G_USEC_PER_SEC / 10);
-
-  /* check that no buffers have been pushed out and no pending waits */
-  g_assert_cmpint (g_async_queue_length (data.buf_queue), ==, 0);
-  g_assert (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock),
-          &id) == FALSE);
+  /* check that we have no pending waits */
+  fail_unless_equals_int (0, gst_test_clock_peek_id_count (testclock));
 
   /* a buffer now arrives perfectly on time */
-  in_buf = generate_test_buffer (10 * GST_SECOND, FALSE, 500, 500 * 160);
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  gst_harness_push (h, generate_test_buffer (500));
 
-  /* release the wait */
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-  gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock), GST_MSECOND * 20);
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (id == test_id);
-  gst_clock_id_unref (test_id);
-  gst_clock_id_unref (id);
+  /* release the wait, advancing the clock to 10 sec */
+  gst_harness_crank_single_clock_wait (h);
 
-  /* we should now receive a packet-lost-event for buffers 1 through 489 */
-  out_event = g_async_queue_pop (data.sink_event_queue);
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* we should now receive a packet-lost-event for buffers 1 through 489 ... */
+  out_event = gst_harness_pull_event (h);
   g_assert (out_event != NULL);
-  g_assert_cmpint (data.lost_event_count, ==, 1);
-  verify_lost_event (out_event, 1, 1 * GST_MSECOND * 20, GST_MSECOND * 20 * 490,
-      TRUE);
+  verify_lost_event (out_event, 1, 1 * PCMU_BUF_DURATION,
+      PCMU_BUF_DURATION * 489);
 
-  /* churn through sync_times until the new buffer gets pushed out */
-  while (g_async_queue_length (data.buf_queue) < 1) {
-    if (gst_test_clock_peek_next_pending_id (GST_TEST_CLOCK (data.clock), &id)) {
-      GstClockTime t = gst_clock_id_get_time (id);
-      if (t > gst_clock_get_time (data.clock)) {
-        gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), t);
-      }
-      test_id =
-          gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-      gst_clock_id_unref (test_id);
-      gst_clock_id_unref (id);
-    }
+  /* ... as well as 490 (since at 10 sec 490 is too late) */
+  out_event = gst_harness_pull_event (h);
+  g_assert (out_event != NULL);
+  verify_lost_event (out_event, 490, 490 * PCMU_BUF_DURATION,
+      PCMU_BUF_DURATION);
+
+  /* we get as many lost events as the the number of *
+   * buffers the jitterbuffer is able to wait for */
+  for (int i = 1; i < num_lost_events; i++) {
+    gst_harness_crank_single_clock_wait (h);
+    out_event = gst_harness_pull_event (h);
+    g_assert (out_event != NULL);
+    verify_lost_event (out_event, 490 + i, (490 + i) * PCMU_BUF_DURATION,
+        PCMU_BUF_DURATION);
   }
 
-  out_buf = g_async_queue_pop (data.buf_queue);
+  /* and then the buffer is released */
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
   gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
@@ -732,95 +737,81 @@ GST_START_TEST (test_only_one_lost_event_on_large_gaps)
   g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, (10 * GST_SECOND));
   gst_buffer_unref (out_buf);
 
-  /* we get as many lost events as the the number of buffers the jitterbuffer
-   * is able to wait for (+ the one we already got) */
-  g_assert_cmpint (data.lost_event_count, ==, jb_latency_ms / buffer_size_ms);
-
-  destroy_testharness (&data);
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_two_lost_one_arrives_in_time)
 {
-  TestData data;
-  GstClockID id, test_id;
-  GstBuffer *in_buf, *out_buf;
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstClockID id;
+  GstBuffer *out_buf;
   GstEvent *out_event;
-  gint jb_latency_ms = 100;
-  GstClockTime buffer_time, now;
-  gint b;
+  gint jb_latency_ms = 100;     /* FIXME: setting this to 10 produces a
+                                 * strange result (30ms lost event),
+                                 * find out why! */
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  GstClockTime buffer_time;
+  gint b;
 
-  setup_testharness (&data);
-
-  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_testclock (h);
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
 
-  /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-  now = jb_latency_ms * GST_MSECOND;
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), now);
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (test_id == id);
-  gst_clock_id_unref (test_id);
-  gst_clock_id_unref (id);
-  out_buf = g_async_queue_pop (data.buf_queue);
-  g_assert (out_buf != NULL);
+  /* push the first buffer through */
+  gst_harness_push (h, generate_test_buffer (0));
+  gst_harness_crank_single_clock_wait (h);
+  gst_buffer_unref (gst_harness_pull (h));
 
   /* push some buffers arriving in perfect time! */
   for (b = 1; b < 3; b++) {
-    buffer_time = b * GST_MSECOND * 20;
-    in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
-    gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), now + buffer_time);
-    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
-    gst_buffer_unref (out_buf);
+    buffer_time = b * PCMU_BUF_DURATION;
+    gst_harness_push (h, generate_test_buffer (b));
 
     /* check for the buffer coming out that was pushed in */
-    out_buf = g_async_queue_pop (data.buf_queue);
+    out_buf = gst_harness_pull (h);
     g_assert (out_buf != NULL);
     g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, buffer_time);
     g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, buffer_time);
+    gst_buffer_unref (out_buf);
   }
-  gst_buffer_unref (out_buf);
 
   /* hop over 2 packets and make another one (gap of 2) */
   b = 5;
-  buffer_time = b * GST_MSECOND * 20;
-  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  buffer_time = b * PCMU_BUF_DURATION;
+  gst_harness_push (h, generate_test_buffer (b));
 
   /* verify that the jitterbuffer now wait for the latest moment it can push */
-  /* the first lost buffer (buffer 3) out on (buffer-timestamp (60) + latency (10) = 70) */
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+  /* the first lost buffer (buffer 3) out on
+   * (buffer-timestamp (60) + latency (100) = 160) */
+  gst_test_clock_wait_for_next_pending_id (testclock, &id);
   g_assert_cmpint (gst_clock_id_get_time (id), ==,
-      (3 * GST_MSECOND * 20) + (jb_latency_ms * GST_MSECOND));
+      (3 * PCMU_BUF_DURATION) + (jb_latency_ms * GST_MSECOND));
+  gst_clock_id_unref (id);
 
   /* let the time expire... */
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
-      gst_clock_id_get_time (id));
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (test_id == id);
-  gst_clock_id_unref (test_id);
-  gst_clock_id_unref (id);
+  gst_harness_crank_single_clock_wait (h);
+
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
 
   /* we should now receive a packet-lost-event for buffer 3 */
-  out_event = g_async_queue_pop (data.sink_event_queue);
+  out_event = gst_harness_pull_event (h);
   g_assert (out_event != NULL);
-  g_assert_cmpint (data.lost_event_count, ==, 1);
-  verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20,
-      FALSE);
+  verify_lost_event (out_event, 3, 3 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
 
   /* buffer 4 now arrives just in time (time is 70, buffer 4 expires at 90) */
   b = 4;
-  buffer_time = b * GST_MSECOND * 20;
-  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  buffer_time = b * PCMU_BUF_DURATION;
+  gst_harness_push (h, generate_test_buffer (b));
 
   /* verify that buffer 4 made it through! */
-  out_buf = g_async_queue_pop (data.buf_queue);
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
   gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
@@ -829,7 +820,7 @@ GST_START_TEST (test_two_lost_one_arrives_in_time)
   gst_buffer_unref (out_buf);
 
   /* and see that buffer 5 now arrives in a normal fashion */
-  out_buf = g_async_queue_pop (data.buf_queue);
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert (!GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
   gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
@@ -837,73 +828,66 @@ GST_START_TEST (test_two_lost_one_arrives_in_time)
   gst_rtp_buffer_unmap (&rtp);
   gst_buffer_unref (out_buf);
 
-  /* should still have only seen 1 packet lost event */
-  g_assert_cmpint (data.lost_event_count, ==, 1);
-
-  destroy_testharness (&data);
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_late_packets_still_makes_lost_events)
 {
-  TestData data;
-  GstClockID id, test_id;
-  GstBuffer *in_buf, *out_buf;
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstBuffer *out_buf;
   GstEvent *out_event;
-  gint jb_latency_ms = 10;
+  gint jb_latency_ms = 100;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
   GstClockTime buffer_time;
   gint b;
-  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
 
-  setup_testharness (&data);
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_testclock (h);
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
 
-  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
-
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
-
-  /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  /* advance the clock with 10 seconds */
+  gst_test_clock_set_time (testclock, 10 * GST_SECOND);
 
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (test_id == id);
-  gst_clock_id_unref (id);
-  gst_clock_id_unref (test_id);
-  out_buf = g_async_queue_pop (data.buf_queue);
-  g_assert (out_buf != NULL);
+  /* push the first buffer through */
+  gst_buffer_unref (gst_harness_push_and_pull (h, generate_test_buffer (0)));
 
-  /* push some buffers in! */
+  /* push some buffers arriving in perfect time! */
   for (b = 1; b < 3; b++) {
-    buffer_time = b * GST_MSECOND * 20;
-    in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
-    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
-    gst_buffer_unref (out_buf);
+    buffer_time = b * PCMU_BUF_DURATION;
+    gst_harness_push (h, generate_test_buffer (b));
 
     /* check for the buffer coming out that was pushed in */
-    out_buf = g_async_queue_pop (data.buf_queue);
+    out_buf = gst_harness_pull (h);
     g_assert (out_buf != NULL);
     g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, buffer_time);
     g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, buffer_time);
+    gst_buffer_unref (out_buf);
   }
-  gst_buffer_unref (out_buf);
 
   /* hop over 2 packets and make another one (gap of 2) */
   b = 5;
-  buffer_time = b * GST_MSECOND * 20;
-  in_buf = generate_test_buffer (buffer_time, TRUE, b, b * 160);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  buffer_time = b * PCMU_BUF_DURATION;
+  gst_harness_push (h, generate_test_buffer (b));
 
-  /* we should now receive a packet-lost-event for buffer 3 and 4 */
-  out_event = g_async_queue_pop (data.sink_event_queue);
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* we should now receive packet-lost-events for buffer 3 and 4 */
+  out_event = gst_harness_pull_event (h);
   g_assert (out_event != NULL);
-  g_assert_cmpint (data.lost_event_count, ==, 1);
-  verify_lost_event (out_event, 3, 3 * GST_MSECOND * 20, GST_MSECOND * 20 * 2,
-      TRUE);
+  verify_lost_event (out_event, 3, 3 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
+  out_event = gst_harness_pull_event (h);
+  g_assert (out_event != NULL);
+  verify_lost_event (out_event, 4, 4 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
 
   /* verify that buffer 5 made it through! */
-  out_buf = g_async_queue_pop (data.buf_queue);
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
   gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
@@ -911,74 +895,64 @@ GST_START_TEST (test_late_packets_still_makes_lost_events)
   gst_rtp_buffer_unmap (&rtp);
   gst_buffer_unref (out_buf);
 
-  /* should still have only seen 1 packet lost event */
-  g_assert_cmpint (data.lost_event_count, ==, 1);
-
-  destroy_testharness (&data);
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
 GST_START_TEST (test_all_packets_are_timestamped_zero)
 {
-  TestData data;
-  GstClockID id, test_id;
-  GstBuffer *in_buf, *out_buf;
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstBuffer *out_buf;
   GstEvent *out_event;
-  gint jb_latency_ms = 10;
-  gint b;
+  gint jb_latency_ms = 100;
   GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  gint b;
 
-  setup_testharness (&data);
-
-  g_object_set (data.jitter_buffer, "latency", jb_latency_ms, NULL);
-
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 10 * GST_SECOND);
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_testclock (h);
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
 
-  /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  /* advance the clock with 10 seconds */
+  gst_test_clock_set_time (testclock, 10 * GST_SECOND);
 
-  gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
-  test_id = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
-  g_assert (test_id == id);
-  gst_clock_id_unref (test_id);
-  gst_clock_id_unref (id);
-  out_buf = g_async_queue_pop (data.buf_queue);
-  g_assert (out_buf != NULL);
+  /* push the first buffer through */
+  gst_buffer_unref (gst_harness_push_and_pull (h, generate_test_buffer (0)));
 
-  /* push some buffers in! */
+  /* push some buffers in, all timestamped 0 */
   for (b = 1; b < 3; b++) {
-    in_buf = generate_test_buffer (0, TRUE, b, 0);
-    g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
-    gst_buffer_unref (out_buf);
+    gst_harness_push (h, generate_test_buffer_full (0 * GST_MSECOND, TRUE, b,
+            0));
 
     /* check for the buffer coming out that was pushed in */
-    out_buf = g_async_queue_pop (data.buf_queue);
+    out_buf = gst_harness_pull (h);
     g_assert (out_buf != NULL);
     g_assert_cmpint (GST_BUFFER_DTS (out_buf), ==, 0);
     g_assert_cmpint (GST_BUFFER_PTS (out_buf), ==, 0);
+    gst_buffer_unref (out_buf);
   }
-  gst_buffer_unref (out_buf);
 
   /* hop over 2 packets and make another one (gap of 2) */
   b = 5;
-  in_buf = generate_test_buffer (0, TRUE, b, 0);
-  g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
+  gst_harness_push (h, generate_test_buffer_full (0 * GST_MSECOND, TRUE, b, 0));
 
-  /* we should now receive a packet-lost-event for buffer 3 and 4 */
-  out_event = g_async_queue_pop (data.sink_event_queue);
-  g_assert (out_event != NULL);
-  verify_lost_event (out_event, 3, 0, 0, FALSE);
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
 
-  out_event = g_async_queue_pop (data.sink_event_queue);
+  /* we should now receive packet-lost-events for buffer 3 and 4 */
+  out_event = gst_harness_pull_event (h);
   g_assert (out_event != NULL);
-  verify_lost_event (out_event, 4, 0, 0, FALSE);
-
-  g_assert_cmpint (data.lost_event_count, ==, 2);
+  verify_lost_event (out_event, 3, 0, 0);
+  out_event = gst_harness_pull_event (h);
+  g_assert (out_event != NULL);
+  verify_lost_event (out_event, 4, 0, 0);
 
   /* verify that buffer 5 made it through! */
-  out_buf = g_async_queue_pop (data.buf_queue);
+  out_buf = gst_harness_pull (h);
   g_assert (out_buf != NULL);
   g_assert (GST_BUFFER_FLAG_IS_SET (out_buf, GST_BUFFER_FLAG_DISCONT));
   gst_rtp_buffer_map (out_buf, GST_MAP_READ, &rtp);
@@ -986,10 +960,8 @@ GST_START_TEST (test_all_packets_are_timestamped_zero)
   gst_rtp_buffer_unmap (&rtp);
   gst_buffer_unref (out_buf);
 
-  /* should still have only seen 2 packet lost events */
-  g_assert_cmpint (data.lost_event_count, ==, 2);
-
-  destroy_testharness (&data);
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
 }
 
 GST_END_TEST;
@@ -1010,7 +982,7 @@ GST_START_TEST (test_rtx_expected_next)
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
 
   /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  in_buf = generate_test_buffer (0);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 20 * GST_MSECOND);
@@ -1018,10 +990,10 @@ GST_START_TEST (test_rtx_expected_next)
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
   gst_clock_id_unref (id);
 
-  /* put second buffer, the jitterbuffer should now know that the packet spacing
-   * is 20ms and should ask for retransmission of seqnum 2 in 20ms+10ms because
-   * 2*jitter==0 and 0.5*packet_spacing==10ms */
-  in_buf = generate_test_buffer (20 * GST_MSECOND, TRUE, 1, 160);
+  /* put second buffer, the jitterbuffer should now know that the packet
+   * spacing is 20ms and should ask for retransmission of seqnum 2 in
+   * 20ms+10ms because 2*jitter==0 and 0.5*packet_spacing==10ms */
+  in_buf = generate_test_buffer (1);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
@@ -1033,7 +1005,7 @@ GST_START_TEST (test_rtx_expected_next)
 
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 10, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 10, PCMU_BUF_DURATION);
 
   /* now we wait for the next timeout, all following timeouts 40ms in the
    * future because this is rtx-retry-timeout */
@@ -1046,7 +1018,7 @@ GST_START_TEST (test_rtx_expected_next)
 
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 50, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 50, PCMU_BUF_DURATION);
 
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 130 * GST_MSECOND);
@@ -1057,7 +1029,7 @@ GST_START_TEST (test_rtx_expected_next)
 
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 90, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 90, PCMU_BUF_DURATION);
 
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 200 * GST_MSECOND);
@@ -1081,7 +1053,7 @@ GST_START_TEST (test_rtx_expected_next)
   /* we should now receive a packet-lost-event for buffer 2 */
   out_event = g_async_queue_pop (data.sink_event_queue);
   g_assert (out_event != NULL);
-  verify_lost_event (out_event, 2, 40 * GST_MSECOND, 20 * GST_MSECOND, FALSE);
+  verify_lost_event (out_event, 2, 40 * GST_MSECOND, PCMU_BUF_DURATION);
 
   destroy_testharness (&data);
 }
@@ -1108,25 +1080,25 @@ GST_START_TEST (test_rtx_two_missing)
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
 
   /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  in_buf = generate_test_buffer (0);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 20 * GST_MSECOND);
 
-  /* put second buffer, the jitterbuffer should now know that the packet spacing
-   * is 20ms and should ask for retransmission of seqnum 2 in 20ms+10ms because
-   * 2*jitter==0 and 0.5*packet_spacing==10ms */
-  in_buf = generate_test_buffer (20 * GST_MSECOND, TRUE, 1, 160);
+  /* put second buffer, the jitterbuffer should now know that the packet
+   * spacing is 20ms and should ask for retransmission of seqnum 2 in
+   * 20ms+10ms because 2*jitter==0 and 0.5*packet_spacing==10ms */
+  in_buf = generate_test_buffer (1);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  /* push buffer 4, 2 and 3 are missing now, we should get retransmission events
-   * for 3 at 100ms*/
-  in_buf = generate_test_buffer (80 * GST_MSECOND, TRUE, 4, 4 * 160);
+  /* push buffer 4, 2 and 3 are missing now, we should get
+   * retransmission events for 3 at 100ms*/
+  in_buf = generate_test_buffer (4);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* wait for first retransmission request */
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 50 * GST_MSECOND);
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 50 * GST_MSECOND);
   tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
   g_assert (id == tid);
   gst_clock_id_unref (id);
@@ -1135,11 +1107,11 @@ GST_START_TEST (test_rtx_two_missing)
   /* First event for 2 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 10, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 10, PCMU_BUF_DURATION);
 
   /* wait for second retransmission request */
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 60 * GST_MSECOND);
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 60 * GST_MSECOND);
   tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
   g_assert (id == tid);
   gst_clock_id_unref (id);
@@ -1148,7 +1120,7 @@ GST_START_TEST (test_rtx_two_missing)
   /* Second event for 3 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 0, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 0, PCMU_BUF_DURATION);
 
   /* now we wait for the next timeout for 2 */
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
@@ -1161,7 +1133,7 @@ GST_START_TEST (test_rtx_two_missing)
   /* First event for 2 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 50, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 50, PCMU_BUF_DURATION);
 
   /* now we wait for the next timeout for 3 */
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
@@ -1174,15 +1146,15 @@ GST_START_TEST (test_rtx_two_missing)
   /* Second event for 3 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 40, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 40, PCMU_BUF_DURATION);
 
   /* make buffer 3 */
-  in_buf = generate_test_buffer (60 * GST_MSECOND, TRUE, 3, 3 * 160);
+  in_buf = generate_test_buffer (3);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* make more buffers */
   for (i = 5; i < 15; i++) {
-    in_buf = generate_test_buffer (i * 20 * GST_MSECOND, TRUE, i, i * 160);
+    in_buf = generate_test_buffer (i);
     g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
   }
 
@@ -1196,7 +1168,7 @@ GST_START_TEST (test_rtx_two_missing)
   /* now we only get requests for 2 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 90, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 40 * GST_MSECOND, 90, PCMU_BUF_DURATION);
 
   /* this is when buffer 0 deadline expires */
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
@@ -1227,7 +1199,7 @@ GST_START_TEST (test_rtx_two_missing)
   /* we should now receive a packet-lost-event for buffer 2 */
   out_event = g_async_queue_pop (data.sink_event_queue);
   g_assert (out_event != NULL);
-  verify_lost_event (out_event, 2, 40 * GST_MSECOND, 20 * GST_MSECOND, FALSE);
+  verify_lost_event (out_event, 2, 40 * GST_MSECOND, PCMU_BUF_DURATION);
 
   /* verify that buffers made it through! */
   for (i = 3; i < 15; i++) {
@@ -1275,50 +1247,53 @@ GST_START_TEST (test_rtx_packet_delay)
   g_object_set (data.jitter_buffer, "rtx-retry-period", 120, NULL);
 
   /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  in_buf = generate_test_buffer (0);
   GST_BUFFER_FLAG_SET (in_buf, GST_BUFFER_FLAG_DISCONT);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 20 * GST_MSECOND);
-
-  /* put second buffer, the jitterbuffer should now know that the packet spacing
-   * is 20ms and should ask for retransmission of seqnum 2 in 20ms+10ms because
-   * 2*jitter==0 and 0.5*packet_spacing==10ms */
-  in_buf = generate_test_buffer (20 * GST_MSECOND, TRUE, 1, 160);
+  /* put second buffer, the jitterbuffer should now know that the packet
+   * spacing is 20ms and should ask for retransmission of seqnum 2 in
+   * 20ms+10ms because 2*jitter==0 and 0.5*packet_spacing==10ms */
+  in_buf = generate_test_buffer (1);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* push buffer 8, 2 -> 7 are missing now. note that the rtp time is the same
    * as packet 1 because it was part of a fragmented payload. This means that
-   * the estimate for 2 could be refined now to 20ms. also packet 2, 3 and 4 are
-   * exceeding the max allowed reorder distance and should request a
+   * the estimate for 2 could be refined now to 20ms. also packet 2, 3 and 4
+   * are exceeding the max allowed reorder distance and should request a
    * retransmission right away */
-  in_buf = generate_test_buffer (20 * GST_MSECOND, TRUE, 8, 8 * 160);
+  in_buf =
+      generate_test_buffer_full (20 * GST_MSECOND, TRUE, 8,
+      8 * PCMU_RTP_TS_DURATION);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* we should now receive retransmission requests for 2 -> 5 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 2, 20 * GST_MSECOND, 30, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 2, 20 * GST_MSECOND, 30, PCMU_BUF_DURATION);
 
   for (i = 3; i < 5; i++) {
     GST_DEBUG ("popping %d", i);
     out_event = g_async_queue_pop (data.src_event_queue);
     g_assert (out_event != NULL);
-    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, 20 * GST_MSECOND);
+    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
   }
   g_assert_cmpint (data.rtx_event_count, ==, 3);
 
   /* push 9, this should immediately request retransmission of 5 */
-  in_buf = generate_test_buffer (20 * GST_MSECOND, TRUE, 9, 9 * 160);
+  in_buf =
+      generate_test_buffer_full (20 * GST_MSECOND, TRUE, 9,
+      9 * PCMU_RTP_TS_DURATION);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* we should now receive retransmission requests for 5 */
   out_event = g_async_queue_pop (data.src_event_queue);
   g_assert (out_event != NULL);
-  verify_rtx_event (out_event, 5, 20 * GST_MSECOND, 0, 20 * GST_MSECOND);
+  verify_rtx_event (out_event, 5, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
 
   /* wait for timeout for rtx 6 -> 7 */
   gst_test_clock_wait_for_next_pending_id (GST_TEST_CLOCK (data.clock), &id);
+  gst_test_clock_advance_time (GST_TEST_CLOCK (data.clock), GST_MSECOND * 60);
   tid = gst_test_clock_process_next_clock_id (GST_TEST_CLOCK (data.clock));
   g_assert (id == tid);
   gst_clock_id_unref (id);
@@ -1328,7 +1303,7 @@ GST_START_TEST (test_rtx_packet_delay)
     GST_DEBUG ("popping %d", i);
     out_event = g_async_queue_pop (data.src_event_queue);
     g_assert (out_event != NULL);
-    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, 20 * GST_MSECOND);
+    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
   }
 
   /* churn through sync_times until the new buffer gets pushed out */
@@ -1381,7 +1356,7 @@ GST_START_TEST (test_rtx_packet_delay)
     GST_DEBUG ("popping lost event %d", i);
     out_event = g_async_queue_pop (data.sink_event_queue);
     g_assert (out_event != NULL);
-    verify_lost_event (out_event, i, 20 * GST_MSECOND, 0, FALSE);
+    verify_lost_event (out_event, i, 20 * GST_MSECOND, 0);
   }
 
   /* verify that buffer 8 made it through! */
@@ -1408,7 +1383,7 @@ GST_START_TEST (test_rtx_packet_delay)
   GST_DEBUG ("popping lost event 10");
   out_event = g_async_queue_pop (data.sink_event_queue);
   g_assert (out_event != NULL);
-  verify_lost_event (out_event, 10, 40 * GST_MSECOND, 20 * GST_MSECOND, FALSE);
+  verify_lost_event (out_event, 10, 40 * GST_MSECOND, PCMU_BUF_DURATION);
 
   /* should have seen 6 packet lost events */
   g_assert_cmpint (data.lost_event_count, ==, 7);
@@ -1440,16 +1415,18 @@ GST_START_TEST (test_gap_exceeds_latency)
   g_object_set (data.jitter_buffer, "rtx-retry-period", 120, NULL);
 
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
-  in_buf = generate_test_buffer (timestamp_ms * GST_MSECOND, TRUE, 0, rtp_ts);
+  in_buf =
+      generate_test_buffer_full (timestamp_ms * GST_MSECOND, TRUE, 0, rtp_ts);
   GST_BUFFER_FLAG_SET (in_buf, GST_BUFFER_FLAG_DISCONT);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   timestamp_ms += 20;
-  rtp_ts += 160;
+  rtp_ts += PCMU_RTP_TS_DURATION;
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock),
       timestamp_ms * GST_MSECOND);
 
-  in_buf = generate_test_buffer (timestamp_ms * GST_MSECOND, TRUE, 1, rtp_ts);
+  in_buf =
+      generate_test_buffer_full (timestamp_ms * GST_MSECOND, TRUE, 1, rtp_ts);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
   last_rtp = rtp_ts;
   last_ts = timestamp_ms;
@@ -1485,49 +1462,56 @@ GST_START_TEST (test_gap_exceeds_latency)
   g_assert_cmpint (seqnum, ==, 2);
   gst_event_unref (out_event);
 
-  /*  Now data comes in again, a "bulk" lost packet is created for 3 -> 6 */
-  rtp_ts += (160 * 15);
-  in_buf = generate_test_buffer (timestamp_ms * GST_MSECOND, TRUE, 16, rtp_ts);
+  /*  Now data comes in again, a "bulk" lost packet is created for 3 -> 5 */
+  rtp_ts += (PCMU_RTP_TS_DURATION * 15);
+  in_buf =
+      generate_test_buffer_full (timestamp_ms * GST_MSECOND, TRUE, 16, rtp_ts);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   last_ts += 60;
   last_rtp += 480;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 8, last_rtp);
+  in_buf = generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 8, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 9, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf = generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 9, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 10, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 10, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 11, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 11, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 12, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 12, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 13, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 13, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 14, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 14, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
-  last_ts += 20;
-  last_rtp += 160;
-  in_buf = generate_test_buffer (last_ts * GST_MSECOND, TRUE, 15, last_rtp);
+  last_ts += PCMU_BUF_MS;
+  last_rtp += PCMU_RTP_TS_DURATION;
+  in_buf =
+      generate_test_buffer_full (last_ts * GST_MSECOND, TRUE, 15, last_rtp);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* Wait for data to be pushed. */
@@ -1549,6 +1533,12 @@ GST_START_TEST (test_gap_exceeds_latency)
   g_assert_cmpint (seqnum, ==, 3);
   gst_event_unref (out_event);
 
+  out_event = g_async_queue_pop (data.sink_event_queue);
+  s = gst_event_get_structure (out_event);
+  g_assert (gst_structure_get_uint (s, "seqnum", &seqnum));
+  g_assert_cmpint (seqnum, ==, 6);
+  gst_event_unref (out_event);
+
   out_event = g_async_queue_pop (data.sink_event_queue);
   s = gst_event_get_structure (out_event);
   g_assert (gst_structure_get_uint (s, "seqnum", &seqnum));
@@ -1605,7 +1595,7 @@ GST_START_TEST (test_deadline_ts_offset)
   gst_test_clock_set_time (GST_TEST_CLOCK (data.clock), 0);
 
   /* push the first buffer in */
-  in_buf = generate_test_buffer (0 * GST_MSECOND, TRUE, 0, 0);
+  in_buf = generate_test_buffer (0);
   g_assert_cmpint (gst_pad_push (data.test_src_pad, in_buf), ==, GST_FLOW_OK);
 
   /* wait_next_timeout() syncs on the deadline timer */
@@ -1641,6 +1631,46 @@ GST_START_TEST (test_deadline_ts_offset)
 
 GST_END_TEST;
 
+GST_START_TEST (test_dts_gap_larger_than_latency)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstEvent *out_event;
+  gint jb_latency_ms = 100;
+  GstClockTime dts_after_gap = (jb_latency_ms + 1) * GST_MSECOND;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_testclock (h);
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
+
+  /* push first buffer through */
+  gst_harness_push (h, generate_test_buffer (0));
+  gst_harness_crank_single_clock_wait (h);
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* Push packet with DTS larger than latency */
+  gst_harness_push (h, generate_test_buffer_full (dts_after_gap,
+          TRUE, 5, 5 * PCMU_RTP_TS_DURATION));
+
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* Time out and verify lost events */
+  for (gint i = 1; i < 5; i++) {
+    GstClockTime dur = dts_after_gap / 5;
+    gst_harness_crank_single_clock_wait (h);
+    out_event = gst_harness_pull_event (h);
+    fail_unless (out_event != NULL);
+    verify_lost_event (out_event, i, i * dur, dur);
+  }
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
 
 static Suite *
 rtpjitterbuffer_suite (void)
@@ -1663,6 +1693,7 @@ rtpjitterbuffer_suite (void)
   tcase_add_test (tc_chain, test_rtx_packet_delay);
   tcase_add_test (tc_chain, test_gap_exceeds_latency);
   tcase_add_test (tc_chain, test_deadline_ts_offset);
+  tcase_add_test (tc_chain, test_dts_gap_larger_than_latency);
 
   return s;
 }
diff --git a/tests/check/elements/rtpmux.c b/tests/check/elements/rtpmux.c
index 11ba9794b508e15baed2ee828db3216f0c5817dc..36b58e6189e383236a0a3889b076c2c8fcf102da 100644
--- a/tests/check/elements/rtpmux.c
+++ b/tests/check/elements/rtpmux.c
@@ -23,6 +23,7 @@
  */
 
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/gst.h>
 
@@ -296,6 +297,58 @@ GST_START_TEST (test_rtpdtmfmux_lock)
 
 GST_END_TEST;
 
+static GstBuffer *
+generate_test_buffer (guint seq_num, guint ssrc)
+{
+  GstBuffer *buf;
+  guint8 *payload;
+  guint i;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  gsize size = 10;
+
+  buf = gst_rtp_buffer_new_allocate (size, 0, 0);
+  GST_BUFFER_DTS (buf) = GST_MSECOND * 20 * seq_num;
+  GST_BUFFER_PTS (buf) = GST_MSECOND * 20 * seq_num;
+
+  gst_rtp_buffer_map (buf, GST_MAP_READWRITE, &rtp);
+  gst_rtp_buffer_set_payload_type (&rtp, 0);
+  gst_rtp_buffer_set_seq (&rtp, seq_num);
+  gst_rtp_buffer_set_timestamp (&rtp, 160 * seq_num);
+  gst_rtp_buffer_set_ssrc (&rtp, ssrc);
+
+  payload = gst_rtp_buffer_get_payload (&rtp);
+  for (i = 0; i < size; i++)
+    payload[i] = 0xff;
+
+  gst_rtp_buffer_unmap (&rtp);
+
+  return buf;
+}
+
+GST_START_TEST (test_rtpmux_ssrc)
+{
+  GstHarness * h = gst_harness_new_with_padnames ("rtpdtmfmux", NULL, "src");
+  GstHarness * h0 = gst_harness_new_with_element (
+      h->element, "sink_0", NULL);
+  GstHarness * h1 = gst_harness_new_with_element (
+      h->element, "sink_1", NULL);
+
+  g_object_set (h->element, "ssrc", 111111, NULL);
+
+  gst_harness_set_src_caps_str (h0, "application/x-rtp, ssrc=(uint)222222");
+  gst_harness_set_src_caps_str (h1, "application/x-rtp, ssrc=(uint)333333");
+
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h0, generate_test_buffer (0, 222222)));
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h1, generate_test_buffer (0, 333333)));
+
+  gst_harness_teardown (h0);
+  gst_harness_teardown (h1);
+  gst_harness_teardown (h);
+}
+GST_END_TEST;
+
 static Suite *
 rtpmux_suite (void)
 {
@@ -303,8 +356,9 @@ rtpmux_suite (void)
   TCase *tc_chain;
 
   tc_chain = tcase_create ("rtpmux_basic");
-  tcase_add_test (tc_chain, test_rtpmux_basic);
   suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_rtpmux_basic);
+  tcase_add_test (tc_chain, test_rtpmux_ssrc);
 
   tc_chain = tcase_create ("rtpdtmfmux_basic");
   tcase_add_test (tc_chain, test_rtpdtmfmux_basic);
diff --git a/tests/check/generic/states.c b/tests/check/generic/states.c
index 4601e07eb9a12ca3716d9c23f7e0cb1eda171a64..f372e64ca449f94bb76cc9f4673ccf46b87a049e 100644
--- a/tests/check/generic/states.c
+++ b/tests/check/generic/states.c
@@ -210,7 +210,7 @@ GST_END_TEST;
 static Suite *
 states_suite (void)
 {
-  Suite *s = suite_create ("states");
+  Suite *s = suite_create ("states_good");
   TCase *tc_chain = tcase_create ("general");
 
   suite_add_tcase (s, tc_chain);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index d7c5214d64f5d91032fa9817b35c475d43cb4136..8d7b54372aa56a991d89aa8a3f1e415eb5f2b3a3 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -19,7 +19,17 @@
 # descending into all subdirectories a second time, but only after the first
 # (parallel) run has finished, so it should go right through the second time.
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-DIST_COMMON = $(top_srcdir)/common/parallel-subdirs.mak \
-	$(srcdir)/Makefile.in $(srcdir)/Makefile.am
 subdir = tests/examples
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -121,6 +129,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -179,6 +188,8 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in \
+	$(top_srcdir)/common/parallel-subdirs.mak
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 am__relativize = \
   dir0=`pwd`; \
@@ -553,7 +564,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -562,7 +572,7 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
 	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
 	esac;
-$(top_srcdir)/common/parallel-subdirs.mak:
+$(top_srcdir)/common/parallel-subdirs.mak $(am__empty):
 
 $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
@@ -849,6 +859,8 @@ uninstall-am:
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 .PHONY: independent-subdirs $(SUBDIRS)
 
diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in
index 23bd5fba277d410e249e3f9fda81e5a309dc509a..c4b9b00169e688ed79966b49a2750c0ceada2443 100644
--- a/tests/examples/audiofx/Makefile.in
+++ b/tests/examples/audiofx/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@ target_triplet = @target@
 noinst_PROGRAMS = firfilter-example$(EXEEXT) \
 	iirfilter-example$(EXEEXT)
 subdir = tests/examples/audiofx
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -207,6 +216,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -553,7 +563,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/audiofx/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/audiofx/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -859,6 +868,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in
index 600bcfb6b31ee73bde4cb43f2a938788d5538475..11930ba04fc3b565a24250a653e76ee5889a4b29 100644
--- a/tests/examples/cairo/Makefile.in
+++ b/tests/examples/cairo/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = cairo_overlay$(EXEEXT)
 subdir = tests/examples/cairo
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -538,7 +548,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/cairo/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/cairo/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -825,6 +834,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in
index 098ebc8a3fcaaea283134a7e5fe18592c66e354e..df239a04aa9369cf9d7066e89f0a380311e03d2c 100644
--- a/tests/examples/equalizer/Makefile.in
+++ b/tests/examples/equalizer/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 @HAVE_GTK_TRUE@noinst_PROGRAMS = demo$(EXEEXT)
 subdir = tests/examples/equalizer
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -538,7 +548,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/equalizer/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/equalizer/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -825,6 +834,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in
index 9580478d4b36c7f18f537ca10101de4ec1038ff8..7901e36fc00e10cd296fcf950bd946f74a04e565 100644
--- a/tests/examples/jack/Makefile.in
+++ b/tests/examples/jack/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = $(am__EXEEXT_1)
 subdir = tests/examples/jack
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -194,6 +203,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -539,7 +549,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/jack/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/jack/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -826,6 +835,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in
index b0b32db7d2818bcdde3d824286020d1c60c5a342..98d5f86506b662d38b3321000490b40242a08fc1 100644
--- a/tests/examples/level/Makefile.in
+++ b/tests/examples/level/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = level-example$(EXEEXT)
 subdir = tests/examples/level
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -537,7 +547,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/level/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/level/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -824,6 +833,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in
index ca04e67a0d35dba1ebd8c29455cdfd8f3180b02d..d3820527b4e1e3c9127b24973309150e9317902d 100644
--- a/tests/examples/pulse/Makefile.in
+++ b/tests/examples/pulse/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = pulse$(EXEEXT)
 subdir = tests/examples/pulse
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -537,7 +547,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/pulse/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/pulse/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -824,6 +833,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/rtp/Makefile.am b/tests/examples/rtp/Makefile.am
index f4b1acdda1bfc0ffe38f0093d753002161727342..40ab2c55e6b3ba6d6cff37b51c6998d68a27bc40 100644
--- a/tests/examples/rtp/Makefile.am
+++ b/tests/examples/rtp/Makefile.am
@@ -23,11 +23,13 @@ client_PCMA_LDADD = $(GST_LIBS) $(LIBM)
 noinst_SCRIPTS=client-H263p-AMR.sh \
                client-H263p-PCMA.sh \
                client-H264-PCMA.sh \
+               client-VP8-OPUS.sh \
                client-PCMA.sh \
                server-alsasrc-PCMA.sh \
                server-v4l2-H263p-alsasrc-AMR.sh \
                server-v4l2-H264-alsasrc-PCMA.sh \
-               server-VTS-H263p-ATS-PCMA.sh
+               server-VTS-H263p-ATS-PCMA.sh \
+               server-VTS-VP8-ATS-OPUS.sh
 
 EXTRA_DIST= $(noinst_SCRIPTS) \
 	    client-H263p-PCMA.sdp \
diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in
index 66efb11ac16484a190e2ef579f38adadf553e47d..5dd332dbba34782f01080a687745486b794ab5cd 100644
--- a/tests/examples/rtp/Makefile.in
+++ b/tests/examples/rtp/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ target_triplet = @target@
 noinst_PROGRAMS = server-alsasrc-PCMA$(EXEEXT) client-PCMA$(EXEEXT) \
 	client-rtpaux$(EXEEXT) server-rtpaux$(EXEEXT)
 subdir = tests/examples/rtp
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -220,6 +229,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -561,11 +571,13 @@ client_PCMA_LDADD = $(GST_LIBS) $(LIBM)
 noinst_SCRIPTS = client-H263p-AMR.sh \
                client-H263p-PCMA.sh \
                client-H264-PCMA.sh \
+               client-VP8-OPUS.sh \
                client-PCMA.sh \
                server-alsasrc-PCMA.sh \
                server-v4l2-H263p-alsasrc-AMR.sh \
                server-v4l2-H264-alsasrc-PCMA.sh \
-               server-VTS-H263p-ATS-PCMA.sh
+               server-VTS-H263p-ATS-PCMA.sh \
+               server-VTS-VP8-ATS-OPUS.sh
 
 EXTRA_DIST = $(noinst_SCRIPTS) \
 	    client-H263p-PCMA.sdp \
@@ -587,7 +599,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/rtp/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/rtp/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -931,6 +942,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/rtp/client-VP8-OPUS.sh b/tests/examples/rtp/client-VP8-OPUS.sh
new file mode 100755
index 0000000000000000000000000000000000000000..220be71207e68d7f75fac2bd4aa9b54bf01eb7b6
--- /dev/null
+++ b/tests/examples/rtp/client-VP8-OPUS.sh
@@ -0,0 +1,28 @@
+#!/bin/sh
+#
+# A simple RTP receiver 
+#
+
+VIDEO_CAPS="application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)VP8"
+AUDIO_CAPS="application/x-rtp,media=(string)audio,clock-rate=(int)48000,encoding-name=(string)OPUS"
+
+SRC=localhost
+DEST=localhost
+
+VIDEO_DEC="rtpvp8depay ! vp8dec"
+AUDIO_DEC="rtpopusdepay ! opusdec"
+
+VIDEO_SINK="videoconvert ! autovideosink"
+AUDIO_SINK="audioconvert ! audioresample ! autoaudiosink"
+
+LATENCY=100
+
+gst-launch-1.0 -v rtpbin name=rtpbin latency=$LATENCY                                    \
+           udpsrc caps=$VIDEO_CAPS address=$SRC port=5000 ! rtpbin.recv_rtp_sink_0                   \
+	         rtpbin. ! $VIDEO_DEC ! $VIDEO_SINK                                     \
+           udpsrc address=$SRC port=5001 ! rtpbin.recv_rtcp_sink_0                                   \
+           rtpbin.send_rtcp_src_0 ! udpsink host=$DEST port=5005 sync=false async=false \
+	   udpsrc caps=$AUDIO_CAPS address=$SRC port=5002 ! rtpbin.recv_rtp_sink_1                   \
+	         rtpbin. ! $AUDIO_DEC ! $AUDIO_SINK                                     \
+           udpsrc address=$SRC port=5003 ! rtpbin.recv_rtcp_sink_1                                   \
+           rtpbin.send_rtcp_src_1 ! udpsink host=$DEST port=5007 sync=false async=false
diff --git a/tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh b/tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh
new file mode 100755
index 0000000000000000000000000000000000000000..ef87004382bafdadb933143165ccbb450a8a1aaf
--- /dev/null
+++ b/tests/examples/rtp/server-VTS-VP8-ATS-OPUS.sh
@@ -0,0 +1,18 @@
+#!/bin/sh
+#
+# A simple RTP server 
+#
+
+SRC=localhost
+DEST=localhost
+VCAPS="video/x-raw,width=352,height=288,framerate=15/1"
+
+gst-launch-1.0 -v rtpbin name=rtpbin \
+           videotestsrc ! $VCAPS ! vp8enc ! rtpvp8pay ! rtpbin.send_rtp_sink_0          \
+                     rtpbin.send_rtp_src_0 ! udpsink host=$DEST port=5000                                 \
+                     rtpbin.send_rtcp_src_0 ! udpsink host=$DEST port=5001 sync=false async=false         \
+                     udpsrc address=$SRC  port=5005 ! rtpbin.recv_rtcp_sink_0                                \
+           audiotestsrc ! opusenc ! rtpopuspay ! rtpbin.send_rtp_sink_1  \
+	             rtpbin.send_rtp_src_1 ! udpsink host=$DEST port=5002                                 \
+	             rtpbin.send_rtcp_src_1 ! udpsink host=$DEST port=5003 sync=false async=false         \
+                     udpsrc address=$SRC port=5007 ! rtpbin.recv_rtcp_sink_1
diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in
index df7150c044d370898ab8560ceff0e7a270ed66e6..b9f7585d59739c0769b6cd562d9bce5ec18b1bbd 100644
--- a/tests/examples/shapewipe/Makefile.in
+++ b/tests/examples/shapewipe/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,17 @@
 
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -82,8 +92,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = shapewipe-example$(EXEEXT)
 subdir = tests/examples/shapewipe
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp $(noinst_HEADERS)
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -119,6 +127,8 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
+	$(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -199,6 +209,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -543,7 +554,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/shapewipe/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/shapewipe/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -830,6 +840,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/shapewipe/shapewipe-example.c b/tests/examples/shapewipe/shapewipe-example.c
index a61926de25d2bae79ff1a8f120b9c78c80baa410..98d734af1a1be5b18e89d065d7e8fe75723ba961 100644
--- a/tests/examples/shapewipe/shapewipe-example.c
+++ b/tests/examples/shapewipe/shapewipe-example.c
@@ -83,7 +83,7 @@ main (gint argc, gchar ** argv)
 
   pipeline_string =
       g_strdup_printf
-      ("videotestsrc ! video/x-raw,format=(string)AYUV,width=640,height=480 ! shapewipe name=shape border=%f ! videomixer name=mixer ! videoconvert ! autovideosink     filesrc location=%s ! typefind ! decodebin2 ! videoconvert ! videoscale ! queue ! shape.mask_sink    videotestsrc pattern=snow ! video/x-raw,format=(string)AYUV,width=640,height=480 ! queue ! mixer.",
+      ("videotestsrc ! video/x-raw,format=(string)AYUV,width=640,height=480 ! shapewipe name=shape border=%f ! videomixer name=mixer ! videoconvert ! autovideosink     filesrc location=%s ! typefind ! decodebin ! videoconvert ! videoscale ! queue ! shape.mask_sink    videotestsrc pattern=snow ! video/x-raw,format=(string)AYUV,width=640,height=480 ! queue ! mixer.",
       border, argv[1]);
 
   pipeline = gst_parse_launch (pipeline_string, NULL);
diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in
index 975cd791dfc8617a3b5dc02bb77dadcf44f7245c..4a16865ecf659e19e0137cdc8adc6aa02c1dd599 100644
--- a/tests/examples/spectrum/Makefile.in
+++ b/tests/examples/spectrum/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -83,8 +93,6 @@ target_triplet = @target@
 @HAVE_GTK_TRUE@	demo-audiotest$(EXEEXT) \
 @HAVE_GTK_TRUE@	spectrum-example$(EXEEXT)
 subdir = tests/examples/spectrum
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -120,6 +128,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -217,6 +226,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -570,7 +580,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/spectrum/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/spectrum/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -895,6 +904,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in
index 176a5db8e87c4caface68300be292dcd49d6dc0f..781e07d1d22e1dbc2508c12f7b0a5f955f443392 100644
--- a/tests/examples/v4l2/Makefile.in
+++ b/tests/examples/v4l2/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -81,8 +91,6 @@ host_triplet = @host@
 target_triplet = @target@
 noinst_PROGRAMS = camctrl$(EXEEXT)
 subdir = tests/examples/v4l2
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -118,6 +126,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -195,6 +204,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -538,7 +548,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/examples/v4l2/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/examples/v4l2/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -825,6 +834,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 9ab741bf01c45ffc4626b12a052d881fa748f0e2..bf63317c65b76f07dd7075a1a6f5f4a9a74b6078 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,7 +14,17 @@
 
 @SET_MAKE@
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -79,7 +89,6 @@ build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
 subdir = tests/files
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -115,6 +124,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -139,6 +149,7 @@ am__can_run_installinfo = \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -491,7 +502,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/files/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/files/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -666,6 +676,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index c44986019192cd0a98540e6ed7782d8932a37442..47b2d3a3a8025c4eec4ebf17a273f2d3a8a8e824 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.14.1 from Makefile.am.
+# Makefile.in generated by automake 1.15 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+# Copyright (C) 1994-2014 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -15,7 +15,17 @@
 @SET_MAKE@
 
 VPATH = @srcdir@
-am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__is_gnu_make = { \
+  if test -z '$(MAKELEVEL)'; then \
+    false; \
+  elif test -n '$(MAKE_HOST)'; then \
+    true; \
+  elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+    true; \
+  else \
+    false; \
+  fi; \
+}
 am__make_running_with_option = \
   case $${target_option-} in \
       ?) ;; \
@@ -85,8 +95,6 @@ noinst_PROGRAMS = $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
 	videocrop-test$(EXEEXT) videobox-test$(EXEEXT) \
 	videocrop2-test$(EXEEXT)
 subdir = tests/icles
-DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
-	$(top_srcdir)/depcomp
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/common/m4/as-auto-alt.m4 \
@@ -122,6 +130,7 @@ am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
 	$(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
@@ -295,6 +304,7 @@ am__define_uniq_tagged_files = \
   done | $(am__uniquify_input)`
 ETAGS = etags
 CTAGS = ctags
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 AALIB_CFLAGS = @AALIB_CFLAGS@
 AALIB_CONFIG = @AALIB_CONFIG@
@@ -686,7 +696,6 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/icles/Makefile'; \
 	$(am__cd) $(top_srcdir) && \
 	  $(AUTOMAKE) --gnu tests/icles/Makefile
-.PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
 	  *config.status*) \
@@ -1163,6 +1172,8 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-am uninstall uninstall-am
 
+.PRECIOUS: Makefile
+
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/win32/MANIFEST b/win32/MANIFEST
index cbd57b4aedf37e4412550e08b7bb3703fc64b469..e21f506da634113f9f9f338f556e5a938166c10d 100644
--- a/win32/MANIFEST
+++ b/win32/MANIFEST
@@ -68,7 +68,6 @@ win32/vs8/libgstjpeg.vcproj
 win32/vs8/libgstladspa.vcproj
 win32/vs8/libgstlevel.vcproj
 win32/vs8/libgstmatroska.vcproj
-win32/vs8/libgstmikmod.vcproj
 win32/vs8/libgstmng.vcproj
 win32/vs8/libgstmonoscope.vcproj
 win32/vs8/libgstmulaw.vcproj
diff --git a/win32/common/config.h b/win32/common/config.h
index 4bc3be7f8016a1432e7ce9a71af07db66a8aa240..c7a1218e5aa7af6642087c0b2682ef2e672bdac3 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -61,7 +61,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2015-06-24"
+#define GST_PACKAGE_RELEASE_DATETIME "2015-08-19"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -387,7 +387,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.5.2"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.5.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-good"
@@ -396,7 +396,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.5.2"
+#define PACKAGE_VERSION "1.5.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -427,7 +427,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.5.2"
+#define VERSION "1.5.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */
diff --git a/win32/vs8/libgstmikmod.vcproj b/win32/vs8/libgstmikmod.vcproj
deleted file mode 100644
index 19fab7024eccedaab91d9c10f459bb6434626a87..0000000000000000000000000000000000000000
--- a/win32/vs8/libgstmikmod.vcproj
+++ /dev/null
@@ -1,218 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
-	ProjectType="Visual C++"
-	Version="8.00"
-	Name="libgstmikmod"
-	ProjectGUID="{A97137F2-7036-11DB-9E40-0D7555D89593}"
-	RootNamespace="libgstmikmod"
-	Keyword="Win32Proj"
-	>
-	<Platforms>
-		<Platform
-			Name="Win32"
-		/>
-	</Platforms>
-	<ToolFiles>
-	</ToolFiles>
-	<Configurations>
-		<Configuration
-			Name="Debug|Win32"
-			OutputDirectory="Debug"
-			IntermediateDirectory="Debug"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				Optimization="0"
-				AdditionalIncludeDirectories="../../../gstreamer,../../../gstreamer/libs,../../../gst-plugins-base/gst-libs,../../../gstreamer/win32/common"
-				PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H"
-				MinimalRebuild="true"
-				BasicRuntimeChecks="3"
-				RuntimeLibrary="3"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="4"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstbase-0.10.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)\$(InputName).dll"
-				LinkIncremental="2"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName);../../../gst-plugins-base/win32/vs8/$(ConfigurationName);"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				ImportLibrary="$(OutDir)\$(InputName).lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\debug\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-		<Configuration
-			Name="Release|Win32"
-			OutputDirectory="Release"
-			IntermediateDirectory="Release"
-			ConfigurationType="2"
-			InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
-			CharacterSet="2"
-			>
-			<Tool
-				Name="VCPreBuildEventTool"
-			/>
-			<Tool
-				Name="VCCustomBuildTool"
-			/>
-			<Tool
-				Name="VCXMLDataGeneratorTool"
-			/>
-			<Tool
-				Name="VCWebServiceProxyGeneratorTool"
-			/>
-			<Tool
-				Name="VCMIDLTool"
-			/>
-			<Tool
-				Name="VCCLCompilerTool"
-				AdditionalIncludeDirectories="../../../gstreamer,../../../gstreamer/libs,../../../gst-plugins-base/gst-libs,../../../gstreamer/win32/common"
-				PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;HAVE_CONFIG_H"
-				RuntimeLibrary="2"
-				UsePrecompiledHeader="0"
-				WarningLevel="3"
-				Detect64BitPortabilityProblems="true"
-				DebugInformationFormat="3"
-			/>
-			<Tool
-				Name="VCManagedResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCResourceCompilerTool"
-			/>
-			<Tool
-				Name="VCPreLinkEventTool"
-			/>
-			<Tool
-				Name="VCLinkerTool"
-				AdditionalDependencies="libgstbase-0.10.lib libgstreamer-0.10.lib glib-2.0.lib gobject-2.0.lib"
-				OutputFile="$(OutDir)\$(InputName).dll"
-				LinkIncremental="1"
-				AdditionalLibraryDirectories="../../../gstreamer/win32/vs8/$(ConfigurationName);../../../gst-plugins-base/win32/vs8/$(ConfigurationName);"
-				GenerateDebugInformation="true"
-				SubSystem="2"
-				OptimizeReferences="2"
-				EnableCOMDATFolding="2"
-				ImportLibrary="$(OutDir)\$(InputName).lib"
-				TargetMachine="1"
-			/>
-			<Tool
-				Name="VCALinkTool"
-			/>
-			<Tool
-				Name="VCManifestTool"
-			/>
-			<Tool
-				Name="VCXDCMakeTool"
-			/>
-			<Tool
-				Name="VCBscMakeTool"
-			/>
-			<Tool
-				Name="VCFxCopTool"
-			/>
-			<Tool
-				Name="VCAppVerifierTool"
-			/>
-			<Tool
-				Name="VCWebDeploymentTool"
-			/>
-			<Tool
-				Name="VCPostBuildEventTool"
-				CommandLine="copy /y &quot;$(TargetPath)&quot; c:\gstreamer\lib\gstreamer-0.10"
-			/>
-		</Configuration>
-	</Configurations>
-	<References>
-	</References>
-	<Files>
-		<Filter
-			Name="Source Files"
-			Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
-			UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
-			>
-			<File
-				RelativePath="..\..\ext\mikmod\gstmikmod.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\mikmod\drv_gst.c"
-				>
-			</File>
-			<File
-				RelativePath="..\..\ext\mikmod\mikmod_reader.c"
-				>
-			</File>
-		</Filter>
-		<Filter
-			Name="Header Files"
-			Filter="h;hpp;hxx;hm;inl;inc;xsd"
-			UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
-			>
-		</Filter>
-		<Filter
-			Name="Resource Files"
-			Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx"
-			UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
-			>
-		</Filter>
-	</Files>
-	<Globals>
-	</Globals>
-</VisualStudioProject>