Merge branch 'upstream'
diff --git a/ChangeLog b/ChangeLog
index e66d1be..0eb9a02 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,11 +1,546 @@
-=== release 1.8.3 ===
+=== release 1.9.90 ===
 
-2016-08-19  Sebastian Dröge <slomo@coaxion.net>
+2016-09-30  Sebastian Dröge <slomo@coaxion.net>
 
 	* configure.ac:
-	  releasing 1.8.3
+	  releasing 1.9.90
 
-2016-08-19 11:57:57 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-09-30 11:43:54 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/el.po:
+	  po: Update translations
+
+2016-09-30 13:22:32 +0530  Arun Raghavan <arun@osg.samsung.com>
+
+	* tests/check/pipelines/tagschecking.c:
+	  tests: Fix tagschecking failure due to missing PTS
+	  qtmux now needs the PTS (commit a993883b7), so let's make sure we
+	  produce one with our buffers.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=772228
+
+2016-09-28 23:03:58 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Don't calculate PTS offset and DTS with GST_CLOCK_TIME_NONE
+	  Just error out if there is no valid PTS.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=772143
+
+2016-09-29 17:37:28 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux_types.c:
+	  qtdemux: Add JPEG2000 ihdr atom to the list of known ones
+	  Otherwise qtdemux is always going to complain about it being unknown.
+
+2016-09-29 10:19:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: Always write the default frame duration for VP8/9 too
+	  The WebM spec allows this now, and it allows us to guess a framerate.
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=772141 and
+	  also https://bugzilla.gnome.org/show_bug.cgi?id=654379
+
+2016-09-27 15:26:19 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtph264depay.c:
+	* gst/rtp/gstrtph265depay.c:
+	  rtph26[45]depay: Don't handle NALs inside STAP units twice
+	  They've already been handled before pushing them into the adapter.
+
+2016-09-27 12:39:12 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/meson.build:
+	  meson: tests: fix vp8 availability checks
+	  Those variables are not defined if vp8 was not found.
+
+2016-09-27 10:23:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/multifile/gstmultifilesink.c:
+	  Revert "multifilesink: streamline the file-switch code a bit"
+	  This reverts commit f1ceaab02f3f557e23b77b14771a575788f92bb4.
+	  This broke atomic file writes in "buffer" mode. It did make
+	  sure that any streamheaders are prepended to each file in
+	  buffer mode as well, but that's not really needed in practice,
+	  whereas atomic file writes are, so let's restore the status
+	  quo ante for now since this was primarily a code cleanup anyway,
+	  and if anyone needs to streamheaders in buffer mode too they
+	  can make a patch to implement that differently. Re-implementing
+	  the atomic writes in the element also seems way too much work.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766990
+
+2016-09-27 10:22:57 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/multifile/gstmultifilesink.c:
+	  Revert "multifilesink: close file on write error with next-file mode is set to buffer"
+	  This reverts commit 84e441d2685cf223d348a95be0c5ba693bbf6624.
+	  This will no longer be needed once we revert f1ceaab02.
+
+2016-09-26 13:22:29 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* tests/check/meson.build:
+	  meson: Add gst-plugins-base plugins directories to be used by tests
+
+2016-09-26 14:30:00 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/vpx/meson.build:
+	* meson.build:
+	* tests/check/getpluginsdir:
+	* tests/check/meson.build:
+	  meson: add unit tests
+	  Only works properly in an installed setup currently, most
+	  likely won't work with a subprojects setup yet.
+
+2016-09-24 09:36:24 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* meson.build:
+	* po/meson.build:
+	  meson: hook up translations
+
+2016-09-08 17:30:41 +0530  Arun Raghavan <arun@arunraghavan.net>
+
+	* ext/pulse/pulsesrc.c:
+	  pulsesrc: Don't negotiate to less than two segments
+	  GstAudioRingBuffer doesn't needs us to have at least 2 segments. We make
+	  sure that if our buffer parameters are such that the maxlength is not at
+	  least 2x fragsize, we still request the ringbuffer to keep that much
+	  space so it continues to work.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770446
+
+2016-09-24 23:22:01 +0530  Arun Raghavan <arun@arunraghavan.net>
+
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsbcpay.h:
+	  rtpsbcpay: Fix timestamping
+	  We were just picking the timestamp of the last buffer pushed into our
+	  adapter before we had enough data to push out.
+	  This fixes things to figure out how large each frame is and what
+	  duration it covers, so we can set both the timestamp and duration
+	  correctly.
+	  Also adds some DISCONT handling.
+
+2016-07-12 18:14:52 +0200  Georg Lippitsch <glippitsch@toolsonair.com>
+
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Fix fourcc for ProRes Proxy
+	  This is apco, according to
+	  https://wiki.multimedia.cx/index.php?title=Apple_ProRes
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769048
+
+2016-09-18 20:55:31 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/vpx/meson.build:
+	  meson: fix build with vpx 1.3.x
+	  vpx >= 1.4.0 is optional
+
+2016-09-15 18:19:35 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Use new bin suppressed flags API for managing the element flags
+
+2016-09-15 09:52:31 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/jack/gstjackaudioclient.c:
+	* gst/rtp/dboolhuff.c:
+	* gst/rtpmanager/rtpsession.c:
+	* gst/videofilter/gstvideoflip.c:
+	  ext, gst: fix indentation
+
+2016-09-15 09:52:17 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/flvmux.c:
+	* tests/check/elements/rtph263.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	* tests/check/elements/rtpsession.c:
+	* tests/check/elements/rtpvp9.c:
+	  tests: fix indentation
+
+2016-08-11 11:04:22 -0600  Thomas Bluemel <tbluemel@control4.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix calculating next_seqnum when dropping old buffers from a full queue.
+	  Fixes calculating the next sequence number when a ITEM_TYPE_LOST with more than one
+	  definitely lost packets is encountered.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769757
+
+2016-08-11 23:07:44 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: improved rtx-rtt averaging
+	  The basic idea is this:
+	  1. For *larger* rtx-rtt, weigh a new measurement as before
+	  2. For *smaller* rtx-rtt, be a bit more conservative and weigh a bit less
+	  3. For very large measurements, consider them "outliers"
+	  and count them a lot less
+	  The idea being that reducing the rtx-rtt is much more harmful then
+	  increasing it, since we don't want to be underestimating the rtt of the
+	  network, and when using this number to estimate the latency you need for
+	  you jitterbuffer, you would rather want it to be a bit larger then a bit
+	  smaller, potentially losing rtx-packets. The "outlier-detector" is there
+	  to prevent a single skewed measurement to affect the outcome too much.
+	  On wireless networks, these are surprisingly common.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-08-05 12:51:59 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Detect whether to assume equidistant spacing when loss
+	  Assuming equidistant packet spacing when that's not true leads to more
+	  loss than necessary in the case of reordering and jitter. Typically this
+	  is true for video where one frame often consists of multiple packets
+	  with the same rtp timestamp. In this case it's better to assume that the
+	  missing packets have the same timestamp as the last received packet, so
+	  that the scheduled lost timer does not time out too early causing the
+	  packets to be considered lost even though they may arrive in time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-07-27 10:39:50 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Don't request rtx if 'now' is past retry period
+	  There is no need to schedule another EXPECTED timer if we're already
+	  past the retry period. Under normal operation this won't happen, but if
+	  there are more timers than the jitterbuffer is able to process in
+	  real-time, scheduling more timers will just make the situation worse.
+	  Instead, consider this packet as lost and move on. This scenario can
+	  occur with high loss rate, low rtt and high configured latency.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-07-26 18:01:48 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix lost duration when gap after lost timer
+	  This patch fixes an issue with the estimated gap duration when there is
+	  a gap immediately after a lost timer has been processed. Previously
+	  there was a discrepancy beteen the gap in seqnum and gap in dts which
+	  would cause wrong calculated duration. The issue would only be seen with
+	  retranmission enabled since when it's disabled lost timers are only
+	  created when a packet is received and the actual gap length and last dts
+	  is known.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-07-19 01:11:58 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Expose rtx-deadline as a property
+	  The default -1 gives the old behavior.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-08-11 12:02:19 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Improved expected-timer handling when gap > 0
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-08-11 11:51:50 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Major improvements for RTX stats
+	  Stats should also be collected for unsuccessful packets.
+	  rtx-rtt is very important for determining the necessary configured
+	  latency on the jitterbuffer. It's especially important to be able to
+	  increase the latency when retransmitted packets arrive too late and are
+	  considered lost. This patch includes these late packets in the
+	  calculation of the various rtx stats, making them more correct and
+	  useful.
+	  Also in the case where the original packet arrives after a NACK is sent,
+	  the received RTX packet should update the stats since it provides useful
+	  information about RTT.
+	  The RTT is only updated if and only if all requested retranmissions are
+	  received. That way the RTT is guaranteed to make sense. If not we don't
+	  know which request the packet is a response to and the RTT may be bogus.
+	  A consequence of this patch is that RTT is not updated for a request
+	  when one of the RTX packets for that seqnum is lost, but that since
+	  measured RTT will be more accurate.
+	  The implementation store the RTX information from the timed out timers
+	  and use this when the retransmitted packet arrives. For performance
+	  these timers are stored separately from the "normal" timers in order to
+	  not impact performance (see attached performance test).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-08-11 11:02:44 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Add and expose more stats and increase testing of it
+	  Add num-pushed and num-lost.
+	  Expose num-late, num-duplicates and avg-jitter.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-07-07 10:20:02 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/gstrtprtxreceive.c:
+	  rtxreceive: Set buffer flag for retransmitted packets
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-07-09 23:47:41 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Option to disable rtx-delay-reorder
+	  When disabled we can save some iterations over timers.
+	  There is probably an argument for rtx-delay-reorder to exist, but
+	  for normal operations, handling jitter (reordering) is something a
+	  jitterbuffer should do, and this variable feels like functionality that
+	  is not "in-sync" with what the jitterbuffer is trying to achieve.
+	  Example: You have 50ms jitter on your network, and are receiving
+	  audio packets with 10ms durations. An audio packet should not be
+	  considered late until its rtx-timeout has expired (and hence a rtx-event
+	  is sent), but with rtx-delay-reorder, events will be sent pretty much
+	  all the time due to the jitter on the network.
+	  Point being: The jitterbuffer should adapt its size to the measured network
+	  jitter, and then rtx-delay-reorder needs to adapt as well, or simply
+	  get out of the way and let the other (better) rtx-mechanisms do their job.
+	  Also change find_timer to only use seqnum as an argument, since there
+	  will only ever be one timer per seqnum at any given time. In the
+	  one case where the type matters, the caller simply checks the type.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769768
+
+2016-09-14 09:58:41 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	  rtph263pay: Fix double free from coverity
+	  CID #1372887
+
+2016-09-14 09:58:37 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	  rtph263pay: Indent as per gst-indent
+
+2016-09-14 11:30:41 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  configure: Depend on gstreamer 1.9.2.1
+
+2016-09-14 10:17:02 +0900  Wonchul Lee <wonchul.lee@collabora.com>
+
+	* gst/autodetect/gstautodetect.c:
+	  autodetect: Use gst_bin_set_suppressed_flags() API
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771395
+
+2016-09-09 15:36:12 +0200  Thomas Scheuermann <Thomas.Scheuermann@barco.com>
+
+	* ext/jack/gstjackaudioclient.c:
+	  jack: Fix pipeline hang when jack changes sample rate or buffer size
+	  If jackd changes the buffer size or sample rate, jackaudiosink hangs
+	  and can't be stopped. This also happens if jack is configured as slave
+	  and a gstreamer pipeline is started on the slave machine while the jack
+	  master isn't running yet. If the the jack master is started it changes
+	  the buffer size / sample rate and jackaudiosink can't be stopped.
+	  This fix calls jack_shutdown_cb when jack_sample_rate_cb or
+	  jack_buffer_size_cb is called.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771272
+
+2016-09-12 20:08:36 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: Fix field ordering for reverse playback
+	  And actually calculate the field duration instead of a frame duration so
+	  that we can properly timestamp output frames in fields=all mode.
+	  This is probably still broken for reverse playback in telecine mode.
+
+2016-09-12 09:02:00 +0000  Thomas Klausner <tk@giga.or.at>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Fix compilation on NetBSD
+	  https://bugzilla.gnome.org/show_bug.cgi?id=771278
+
+2016-09-10 20:51:10 +1000  Jan Schmidt <jan@centricular.com>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From b18d820 to f980fd9
+
+2016-09-09 14:02:25 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: offset is irrelevant when no crypto info
+	  Cause later it will try to use the crypto info array to get an index and
+	  attach on of the positions as buffer's crypto info.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770951
+
+2016-09-10 09:53:57 +1000  Jan Schmidt <jan@centricular.com>
+
+	* autogen.sh:
+	* common:
+	  Automatic update of common submodule
+	  From f49c55e to b18d820
+
+2016-09-07 15:33:30 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/osxaudio/Makefile.am:
+	  osxaudio: Distribute device provider files
+	  Those where missing the the dev release tarballs for 1.9.2 which
+	  prevented building from tarball on OSX platform
+
+2016-09-06 09:49:39 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Fix crash with no cenc aux offset
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770951
+
+2016-09-05 09:39:33 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	  aacparse: parse a bit more of the humongous LOAS data
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-09-05 09:39:08 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	  aacparse: make it clear when a potential LOAS frame is not one
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-09-05 09:38:26 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	  aacparse: add a few comments to anchor parsing to the spec
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-09-05 09:37:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	* gst/audioparsers/gstaacparse.h:
+	  aacparse: improve channel/rate handling
+	  Keep track of the last parsed channels/rate fields so they can be
+	  used even if the element was not yet configured.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-09-05 09:35:53 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	  aacparse: fix varlength number reading as per spec
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-09-05 09:35:02 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/audioparsers/gstaacparse.c:
+	  aacparse: strip uneeded static arrays slack
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769278
+
+2016-07-18 19:18:58 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtpmp4adepay.c:
+	* gst/rtp/gstrtpmp4adepay.h:
+	  rtpmp4adepay: Only declare a stream to be framed once a marker bit has been seen
+	  This may cause a few packets to be processed by the parser, but it's
+	  better than never pushing out buffers from a slightly broken stream
+	  where no marker bits are set.
+
+2016-09-06 14:25:42 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Fix timestamping in reverse playback mode
+	  This is only supported right now if after a demuxer that supports reverse
+	  playback, e.g. with DV container inside AVI container.
+
+2016-09-05 12:23:54 -0300  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* meson.build:
+	  meson: Bump version to 1.9.2
+
+2015-06-26 20:13:17 +0200  Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
+
+	* gst/isomp4/GstQTMux.prs:
+	* gst/isomp4/Makefile.am:
+	* gst/isomp4/gstqtmux.c:
+	  qtmux: Implement the preset interface.
+	  + And provide a "youtube" preset, which based on
+	  https://support.google.com/youtube/answer/1722171 sets
+	  faststart to True.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751559
+
+2016-09-01 12:27:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.9.2 ===
+
+2016-09-01 12:27:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/gst-plugins-good-plugins.interfaces:
+	* 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.9.2
+
+2016-09-01 11:23:33 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* po/af.po:
 	* po/az.po:
@@ -48,7 +583,381 @@
 	* po/zh_CN.po:
 	* po/zh_HK.po:
 	* po/zh_TW.po:
-	  Update .po files
+	  po: Update translations
+
+2016-09-01 10:59:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/examples/equalizer/demo.c:
+	* tests/examples/spectrum/demo-audiotest.c:
+	* tests/examples/spectrum/demo-osssrc.c:
+	  tests/examples: #define GDK_DISABLE_DEPRECATION_WARNINGS
+	  We use gdk_cairo_create() which is deprecated since 3.22.
+
+2016-08-31 05:50:44 +1000  Jan Schmidt <jan@centricular.com>
+
+	* sys/osxvideo/Makefile.am:
+	* sys/osxvideo/cocoawindow.h:
+	* sys/osxvideo/osxvideosink.h:
+	  osxvideo: Remove QuickTime references.
+	  QuickTime.h is no longer available on OS X 10.12 (Sierra),
+	  and both the header and the framework seem unnecessary
+	  for compilation - at least as of 10.11 (El Capitan).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770526
+
+2016-08-19 11:11:03 -0700  Thibault Saunier <thibault.saunier@osg.samsung.com>
+
+	* ext/dv/gstdvdemux.c:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
+	* gst/avi/gstavidemux.c:
+	* gst/debugutils/rndbuffersize.c:
+	* gst/flv/gstflvdemux.c:
+	* gst/imagefreeze/gstimagefreeze.c:
+	* gst/isomp4/qtdemux.c:
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-parse.c:
+	* gst/multifile/gstsplitmuxsrc.c:
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/wavparse/gstwavparse.c:
+	  Use the new API to post flow ERROR messages on the bus
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770158
+
+2016-08-26 21:32:07 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* tests/check/elements/.gitignore:
+	  gitignore: ignore qtdemux, rtph261 and rtpvp9 tests
+
+2016-08-26 21:22:16 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* tests/check/Makefile.am:
+	  tests: use GST_NET_LIBS instead of hardcoded -lgstnet
+	  Fixes build in OSX when running 'make check' in gst-uninstalled.
+
+2016-08-26 21:14:47 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* tests/check/elements/rtp-payloading.c:
+	  tests: remove a wrong 'const' specifier
+	  Fixes "error: duplicate 'const' declaration specifier"
+
+2016-08-26 21:11:59 +0200  Josep Torra <n770galaxy@gmail.com>
+
+	* configure.ac:
+	* tests/check/Makefile.am:
+	  build: silence error about pthread for 'make check' in osx
+	  Fixes "clang: error: argument unused during compilation: '-pthread'"
+
+2016-08-26 20:31:10 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/Makefile.am:
+	  vp9enc: Fix build of unit test by letting it link to libgstvideo
+
+2016-08-26 12:06:35 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  Revert "rtpmux: fix PROP_TIMESTAMP_OFFSET range problems"
+	  This broke API, so we need a better solution!
+	  This reverts commit c7579d31a6e9d788e94b83258309063d0aae481e.
+
+2016-06-08 15:06:28 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtpvp9depay.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/rtpvp9.c:
+	  rtpvp9depay: Support flexible mode
+
+2016-06-06 17:03:36 +0200  Stian Selnes <stian@pexip.com>
+
+	* ext/vpx/gstvp9enc.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/vp9enc.c:
+	  vp9enc: Fix leak of vpx_image_t
+
+2016-05-06 13:33:22 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtph263pdepay.c:
+	* tests/check/elements/rtph263.c:
+	  rtph263pdepay: Don't try to push empty frame
+	  If the result of depayloading is an empty frame, just drop it. This is
+	  likely the result of a buggy payloader.
+
+2016-05-06 16:06:53 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpmux.h:
+	  rtpmux: fix PROP_TIMESTAMP_OFFSET range problems
+	  It could not set the offset for the full guint32 range.
+
+2016-05-06 09:44:42 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpbin.h:
+	  rtpbin: introduce max-streams property
+	  To be able to cap the number of allowed streams for one session.
+	  This is useful for preventing DoS attacks, where a sender can change
+	  SSRC for every buffer, effectively bringing rtpbin to a halt.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770292
+
+2016-03-31 00:10:49 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/rtpsource.c:
+	  rtpsource: reordered packets are very normal, and should not be a warning
+
+2016-02-05 14:19:25 +0100  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: degrade g_warning to GST_ERROR
+	  So we don't blow up while investigating
+
+2016-02-04 14:16:40 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtph263pdepay.c:
+	* tests/check/elements/rtph263.c:
+	  rtph263pdepay: Fix picture header for non-writable payload
+	  Under certain conditions gst_rtp_buffer_get_payload() returns a copy of
+	  the payload. In this case the payload modifications will not affect the
+	  rtp buffer. So instead of modifying the payload buffer directly we
+	  should modify the buffer that actually gets pushed on the adapter.
+
+2015-11-19 11:50:47 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtph261depay.c:
+	* tests/check/Makefile.am:
+	* tests/check/elements/rtph261.c:
+	  rtph261depay: Fix check of valid payload length
+	  Packets with no H.261 payload should be dropped to avoid invalid
+	  write/reads.
+
+2015-11-09 10:06:21 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	* tests/check/elements/rtph263.c:
+	  rtph263pay: Fix double free, invalid reads and leak
+
+2014-06-30 15:43:58 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: sanity check RTT before ignoring PLI/FIR
+
+2014-06-30 15:07:45 +0200  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: handle sdes messages with non-utf8 more gracefully
+
+2014-06-17 08:52:50 +0200  Stian Selnes <stian.selnes@gmail.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	  rtph263pay: change log level on bitstream parsing messages
+
+2016-07-07 11:13:18 +0200  Mikhail Fludkov <misha@pexip.com>
+
+	* tests/check/elements/rtprtx.c:
+	  tests/rtprtx: refactor the tests to use gstharness
+	  The functionality of all the tests was kept exactly the same. Some tests
+	  were renamed:
+	  test_push_forward_seq -> test_rtxsend_rtxreceive
+	  test_drop_one_sender -> test_rtxsend_rtxreceive_with_packet_loss
+	  test_drop_multiple_sender -> test_multi_rtxsend_rtxreceive_with_packet_loss
+	  test_rtxreceive_data_reconstruction was testing that retransmitted
+	  buffer produced by rtxsend was correctly transformed to the original
+	  buffer by rtxreceive. Now we are checking for this in all the tests
+	  where both rtxsend & rtxreceive are involved. That's why the test was
+	  removed.
+
+2016-08-25 15:52:36 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: Set RTP marker bit
+	  Set the RTP marker bit on the last RTP packet of an H.265 access unit.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770394
+
+2016-07-26 19:39:58 +0200  Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+	* gst/videofilter/gstvideoflip.c:
+	* gst/videofilter/gstvideoflip.h:
+	  videoflip: added GstVideoDirection interface
+	  It implements now this interface with its video-direction
+	  property. Values are changed to GstVideoOrientationMethod but they have
+	  the same value than the originals.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768687
+
+2015-11-06 10:39:16 +0100  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpsession.c:
+	  gstrtpsession: refactor duplicate code into a function
+	  Less code, easier to read, more consistent.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770293
+
+2016-08-23 17:06:44 +0100  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	  rtpbin: fix typo in max-misorder-time property name
+
+2016-08-22 00:05:52 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: fix printf format compiler warning in debug message
+	  On 32-bit x86: gstsplitmuxsink.c:966:31: warning: format ‘%u’ expects
+	  argument of type ‘unsigned int’, but argument 9 has type
+	  ‘guint64 {aka long long unsigned int}’
+
+2016-08-12 21:12:30 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* .gitignore:
+	* config.h.meson:
+	* ext/cairo/meson.build:
+	* ext/dv/meson.build:
+	* ext/flac/meson.build:
+	* ext/gdk_pixbuf/meson.build:
+	* ext/jack/meson.build:
+	* ext/jpeg/meson.build:
+	* ext/libpng/meson.build:
+	* ext/meson.build:
+	* ext/pulse/meson.build:
+	* ext/shout2/meson.build:
+	* ext/soup/meson.build:
+	* ext/speex/meson.build:
+	* ext/taglib/meson.build:
+	* ext/vpx/meson.build:
+	* ext/wavpack/meson.build:
+	* gst/alpha/meson.build:
+	* gst/apetag/meson.build:
+	* gst/audiofx/meson.build:
+	* gst/audioparsers/meson.build:
+	* gst/auparse/meson.build:
+	* gst/autodetect/meson.build:
+	* gst/avi/meson.build:
+	* gst/cutter/meson.build:
+	* gst/debugutils/meson.build:
+	* gst/deinterlace/meson.build:
+	* gst/dtmf/meson.build:
+	* gst/effectv/meson.build:
+	* gst/equalizer/meson.build:
+	* gst/flv/meson.build:
+	* gst/flx/meson.build:
+	* gst/goom/meson.build:
+	* gst/goom2k1/meson.build:
+	* gst/icydemux/meson.build:
+	* gst/id3demux/meson.build:
+	* gst/imagefreeze/meson.build:
+	* gst/interleave/meson.build:
+	* gst/isomp4/meson.build:
+	* gst/law/meson.build:
+	* gst/level/meson.build:
+	* gst/matroska/meson.build:
+	* gst/meson.build:
+	* gst/monoscope/meson.build:
+	* gst/multifile/meson.build:
+	* gst/multipart/meson.build:
+	* gst/replaygain/meson.build:
+	* gst/rtp/meson.build:
+	* gst/rtpmanager/meson.build:
+	* gst/rtsp/meson.build:
+	* gst/shapewipe/meson.build:
+	* gst/smpte/meson.build:
+	* gst/spectrum/meson.build:
+	* gst/udp/meson.build:
+	* gst/videobox/meson.build:
+	* gst/videocrop/meson.build:
+	* gst/videofilter/meson.build:
+	* gst/videomixer/meson.build:
+	* gst/wavenc/meson.build:
+	* gst/wavparse/meson.build:
+	* gst/y4m/meson.build:
+	* meson.build:
+	* meson_options.txt:
+	* sys/directsound/meson.build:
+	* sys/meson.build:
+	* sys/v4l2/meson.build:
+	* sys/ximage/meson.build:
+	* tests/check/meson.build:
+	* tests/meson.build:
+	  Add support for Meson as alternative/parallel build system
+	  https://github.com/mesonbuild/meson
+	  With contributions from:
+	  Tim-Philipp Müller <tim@centricular.com>
+	  Jussi Pakkanen <jpakkane@gmail.com> (original port)
+	  Highlights of the features provided are:
+	  * Faster builds on Linux (~40-50% faster)
+	  * The ability to build with MSVC on Windows
+	  * Generate Visual Studio project files
+	  * Generate XCode project files
+	  * Much faster builds on Windows (on-par with Linux)
+	  * Seriously fast configure and building on embedded
+	  ... and many more. For more details see:
+	  http://blog.nirbheek.in/2016/05/gstreamer-and-meson-new-hope.html
+	  http://blog.nirbheek.in/2016/07/building-and-developing-gstreamer-using.html
+	  Building with Meson should work on both Linux and Windows, but may
+	  need a few more tweaks on other operating systems.
+
+2016-08-20 16:59:30 +0800  Jie Jiang <jiangjie@nudt.edu.cn>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  Fixed splitmuxsink 32-bit overflow bug
+	  Extend the byte tracking counters to 64-bit on
+	  all platforms, instead of using gsize, which overflows
+	  after 4GB.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=770019
+
+2016-08-19 17:18:16 +0300  Vivia Nikolaidou <vivia@toolsonair.com>
+
+	* gst/isomp4/atoms.c:
+	  isomp4: Fix coverity warning
+	  If atom_copy_data fails to write anything, return 0
+	  CID #1371458
+
+2016-04-09 07:51:03 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/v4l2/gstv4l2deviceprovider.c:
+	* sys/v4l2/v4l2-utils.c:
+	  v4l2: consistently check #ifdef HAVE_GUDEV instead of #if
+	  Both work with autotools but they definitely don't mean the same thing, cause
+	  problems with other build systems, and are bad form. Existence should always be
+	  checked with #ifdef or #if defined.
+
+2016-04-19 10:53:05 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/directsound/gstdirectsoundsink.c:
+	* sys/directsound/gstdirectsoundsink.h:
+	  directsound: port away from old DirectX API
+	  D3DX has been deprecated for the last 4 years and latest versions of
+	  Windows no longer ship headers for it. This is fine as long as you're
+	  building with Cerbero's Wine-based DirectX headers, but sucks if you
+	  want to build against the actual Windows SDK.
+	  We were just using it to get error strings anyway, so just use the
+	  generic error string API.
+
+2016-08-18 12:02:01 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/audioparsers/gstflacparse.c:
+	  Revert "flacparse: Add maximum bitrate tag"
+	  This reverts commit c703ab69f526092bb26cce41ca691a896c8383d8.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769392
+
+2016-08-18 09:57:51 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix unit test by disabling adaptive misorder/dropout calculations
+	  Need to set max-misorder-time and max-dropout-time to 0 so the
+	  jitterbuffer does not base them on packet rate calculations.
+	  If it does, out gap is big enough to be considered a new stream and
+	  we wait for a few consecutive packets just to be sure
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751311
+
+2016-08-09 12:55:59 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  splitmuxsink: Add option to split at exactly max-size-time
+	  Will try to request a keyframe from the encoder to be sent at the target
+	  running time.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769664
+
+2016-08-09 20:16:16 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Allow time and bytes to reach their respective thresholds
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769664
 
 2016-08-17 09:49:04 +0300  Sebastian Dröge <sebastian@centricular.com>
 
@@ -59,6 +968,16 @@
 	  Ideally we should also parse the charset and do conversion of all messages,
 	  but that's for a later time.
 
+2016-06-24 16:32:37 +0300  Vivia Nikolaidou <vivia@toolsonair.com>
+
+	* gst/isomp4/atoms.c:
+	* gst/isomp4/atoms.h:
+	* gst/isomp4/fourcc.h:
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmux.h:
+	  qtmux: Added support for writing timecode track
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767950
+
 2016-08-11 16:32:21 -0600  Thomas Bluemel <tbluemel@control4.com>
 
 	* gst/udp/gstmultiudpsink.c:
@@ -66,6 +985,13 @@
 	  This fixes endpoints not receiving any data intermittently.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=769773
 
+2016-08-10 11:45:13 -0600  Thomas Bluemel <tbluemel@control4.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* gst/rtpmanager/rtpstats.c:
+	  rtpjitterbuffer: Actually calculate the packet rate for max-dropout and max-misorder calculations.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=751311
+
 2016-08-10 11:26:17 -0600  Thomas Bluemel <tbluemel@control4.com>
 
 	* gst/rtpmanager/rtpjitterbuffer.c:
@@ -108,6 +1034,58 @@
 	  due to out of segment. Let the demuxer handle it and send
 	  EOS.
 
+2016-08-04 00:36:28 -0300  Thiago Santos <thiagossantos@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: avoid unref of null buffer
+	  The current 'l' pointer will be NULL when the loop
+	  is interrupted with a 'break' statement. Need to have
+	  it advance to the next list item before interrupting.
+
+2016-08-02 14:01:14 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/wavparse/Makefile.am:
+	* gst/wavparse/gstwavparse.c:
+	  wavparse: Add tags for container format and bitrate for uncompressed PCM
+	  The PCM bitrate is added to help downstream elements (like uridecodebin)
+	  figure out a proper network buffer size
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769390
+
+2016-08-01 18:52:26 +0200  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* gst/audioparsers/gstflacparse.c:
+	  flacparse: Add maximum bitrate tag
+	  https://bugzilla.gnome.org/show_bug.cgi?id=769392
+
+2016-07-28 17:58:16 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: When receiving a DISCONT buffer that does not point to a sample, remember the offset
+	  And don't just reset everything. This makes sure that we can continue to
+	  handle data in the following scenario:
+	  moov: discont
+	  moof: discont
+	  mdat: continuous
+	  Previously this would fail because the offset would be the accumulated offset
+	  from moov and moof at the mdat position, while the buffer offset might be
+	  something completely different.
+
+2016-07-25 13:34:02 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtpbvpay.c:
+	* gst/rtp/gstrtpceltpay.c:
+	* gst/rtp/gstrtpg722pay.c:
+	* gst/rtp/gstrtph263ppay.c:
+	* gst/rtp/gstrtph265pay.c:
+	* gst/rtp/gstrtpilbcpay.c:
+	  rtp: Filter with the filter caps in the payloader's getcaps
+
+2016-03-03 11:35:06 +0000  Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: include http-status-code in error message details
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763038
+
 2016-07-25 18:20:03 +1000  Jan Schmidt <jan@centricular.com>
 
 	* gst/multifile/gstsplitmuxsink.c:
@@ -132,16 +1110,6 @@
 	  When pushing the dummy event into the multiqueue,
 	  drop the splitmux lock or else we might deadlock.
 
-2016-07-25 13:34:02 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtp/gstrtpbvpay.c:
-	* gst/rtp/gstrtpceltpay.c:
-	* gst/rtp/gstrtpg722pay.c:
-	* gst/rtp/gstrtph263ppay.c:
-	* gst/rtp/gstrtph265pay.c:
-	* gst/rtp/gstrtpilbcpay.c:
-	  rtp: Filter with the filter caps in the payloader's getcaps
-
 2016-06-30 01:56:41 +1000  Jan Schmidt <thaytan@noraisin.net>
 
 	* gst/rtp/gstrtph264pay.c:
@@ -151,6 +1119,155 @@
 	  Other payloaders also have this problem and need fixing
 	  in future commits.
 
+2016-07-12 17:30:56 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/qtdemux.c:
+	  tests: qtdemux: fix element and pad leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768739
+
+2016-07-12 16:45:36 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/audiofirfilter.c:
+	* tests/check/elements/audioiirfilter.c:
+	* tests/check/elements/rtp-payloading.c:
+	* tests/check/elements/videobox.c:
+	* tests/check/pipelines/effectv.c:
+	  tests: fix bus leaks
+	  gst_bus_add_signal_watch() takes a ref on the bus which should be
+	  released using gst_bus_remove_signal_watch().
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768739
+
+2016-07-14 03:07:11 +0800  Ting-Wei Lan <lantw@src.gnome.org>
+
+	* configure.ac:
+	  configure: Call AG_GST_PKG_CONFIG_PATH to set GST_PKG_CONFIG_PATH
+	  GST_PKG_CONFIG_PATH is used in docs/plugins directory, so
+	  AG_GST_PKG_CONFIG_PATH must be called to set it.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768787
+
+2016-07-12 07:39:58 +0200  Edward Hervey <edward@centricular.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: Don't drop final bytes of a range request
+	  At the end of a range request, we don't want to return GST_FLOW_EOS otherwise
+	  the last bytes we just read will be dropped by basesrc.
+	  Instead just return GST_FLOW_OK (which was set just before) and let basesrc
+	  handle the fact we are at the end of the segment.
+
+2016-07-11 18:30:18 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2deviceprovider.c:
+	  v4l2provider: Fix device type detection
+	  The type detection would lead to assertion as it would try
+	  to create a device without having found any type for it. It
+	  also didn't detect MPLANE devices properly.
+
+2016-07-11 18:29:01 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: Don't assert when used by the monitor
+	  The monitor sets the object->element object as a GstObject. This
+	  works for debug traces, but will assert for ELEMENT_ERROR. This
+	  was the only case where that could happen. Add a check for that.
+
+2016-07-11 17:38:00 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: Indent very long line
+
+2016-07-12 00:42:02 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: At the end of a range request, read another time to finalize the request
+	  If we're at the end of a range request, read again to let libsoup
+	  finalize the request. This allows to reuse the connection again later,
+	  otherwise we would have to cancel the message and close the connection.
+
+2016-07-11 21:13:47 +0200  Stefan Sauer <ensonic@users.sf.net>
+
+	* common:
+	  Automatic update of common submodule
+	  From f363b32 to f49c55e
+
+2016-07-11 19:57:18 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: Fix keep-alive handling
+	  We have to get rid of the message on EOS when the complete stream is read to
+	  remember that we successfully finished handling this specific message.
+	  Otherwise we will cancel it later and close the connection instead of reusing
+	  it at a later time.
+	  It might also make sense to reuse connections if a non-200 response is
+	  received. As long as there was no connection error, the HTTP connection should
+	  be re-usable.
+
+2016-07-11 12:05:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* configure.ac:
+	  Also enable V4L2 probe on aarch64 (aka ARM 64bit)
+
+2016-07-11 11:59:19 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* tests/examples/rtp/client-PCMA.c:
+	  rtp example: Fix leak
+	  Also stop fetching the internal source as this
+	  functionality has been broken.
+
+2016-07-08 14:58:37 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* configure.ac:
+	  Enable v4l2 probe on Linux/ARM
+	  Most of those have V4L2 drivers these days enabling it make sure that it
+	  this code is enabled in major distribution, hence that HW accelerated
+	  decoder/encoder can be used on platforms that support it. The probes are
+	  slightly increasing the first init of gstreamer library, though the
+	  result is cached in the registry for later use.
+
+2016-07-11 09:46:49 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	* tests/check/elements/rtp-payloading.c:
+	  rtph265pay: Accept array_completeness=1
+	  When parsing NAL unit type in codec_data, check the 6bits of
+	  NAL_unit_type only and do not require the array_completeness bit to be
+	  0, since the default and mandatory value of array_completeness is 1 for
+	  hvc1.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768653
+
+2016-07-10 21:35:06 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Also copy device_caps in gst_v4l2_dup
+	  This fixes regression where M2M error out saying they have no output
+	  format (the V4L2 CAPTURE side).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768195
+
+2016-07-10 21:30:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Use correct in6_pktinfo struct instead of in_pktinfo
+	  Fixes the build on FreeBSD, which does not have the latter.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768623
+
+2016-07-08 17:28:19 +0000  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: fix multiplanar capture
+	  After switching to using V4L2_CAP_DEVICE_CAPS we lost support for
+	  multiplanar device types. After some research, it looks like
+	  vcap.capabilities treated the multiplanar flag of output and capture
+	  devices equally, but not the new device_caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768195
+
+2016-07-08 14:56:30 +0200  Mats Lindestam <matslm@axis.com>
+
+	* gst/multipart/multipartmux.c:
+	* gst/multipart/multipartmux.h:
+	  multipartmux: Use PTS and DTS instead of timestamp
+	  And pass-through both of them.
+	  Based on a patch by Göran Jönsson <goranjn@axis.com>
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767900
+
 2016-06-30 14:40:40 +0200  Thomas Scheuermann <Thomas.Scheuermann@barco.com>
 
 	* ext/jack/gstjackaudioclient.c:
@@ -158,6 +1275,73 @@
 	  Otherwise we'll wait forever.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=747275
 
+2016-06-23 15:30:19 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Let upstream events go through upstream
+	  There's no real reason to avoid sending QOS/NAVIGATION events upstrea.
+	  Some elements might want to have that information.
+
+2016-06-23 15:22:56 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/avi/gstavidemux.c:
+	  avidemux: Let upstream events go through upstream
+	  There's no real reason to avoid sending QOS/NAVIGATION events upstrea.
+	  Some elements might want to have that information.
+
+2016-06-23 15:17:36 +0200  Edward Hervey <edward@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Let upstream events go through upstream
+	  There's no real reason to avoid sending QOS/NAVIGATION events upstrea.
+	  Some elements might want to have that information.
+	  Also remove downstream-only CAPS event handling and minimize code
+
+2016-07-07 23:53:54 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* sys/v4l2/gstv4l2.c:
+	  v4l2: fix v4l2 probe build error
+	  A typo in gst_v4l2_probe_and_register() caused a build error when building
+	  with --enable-v4l2-probe. Fixing it.
+	  gstv4l2.c: In function 'gst_v4l2_probe_and_register':
+	  gstv4l2.c:150:25: error: 'struct v4l2_capability' has no member named 'capabilitites'
+	  device_caps = vcap.capabilitites;
+
+2016-07-01 22:53:33 -0700  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* sys/v4l2/gstv4l2src.c:
+	  v4l2src: use gst_caps_intersect_full in negotiate()
+	  Instead of reimplementing the GST_CAPS_INTERSECT_FIRST
+	  interection mode.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768195
+
+2016-07-02 01:56:07 -0700  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
+
+	* sys/v4l2/gstv4l2.c:
+	* sys/v4l2/gstv4l2bufferpool.c:
+	* sys/v4l2/gstv4l2deviceprovider.c:
+	* sys/v4l2/gstv4l2object.c:
+	* sys/v4l2/gstv4l2object.h:
+	* sys/v4l2/gstv4l2radio.c:
+	* sys/v4l2/gstv4l2sink.c:
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: use opened device caps instead of physical device ones
+	  The same physical device can export multiple devices. In
+	  this case, the capabilities field now contains a union of
+	  all caps available from all exported V4L2 devices alongside
+	  a V4L2_CAP_DEVICE_CAPS flag that should be used to decide
+	  what capabilities to consider. In our case, we need the
+	  ones from the exported device we are using.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768195
+
+2016-07-07 18:24:59 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: Remove suspicious checks for pads being active and linked
+	  We should add all pads, no matter if they are linked or active or not at this
+	  point. Skipping some that are not will cause different behaviour than with
+	  other muxers.
+
 2016-07-07 18:23:07 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/matroska/matroska-mux.c:
@@ -167,6 +1351,206 @@
 	  The following code assumes that all pads have a codec-id.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=768509
 
+2016-07-07 18:14:43 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: Consistently use gst_matroska_mux_set_codec_id() for setting the codec id
+
+2016-07-04 09:50:11 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* gst/rtp/gstrtph265depay.c:
+	* gst/rtp/gstrtph265pay.c:
+	* gst/rtp/gstrtph265pay.h:
+	* tests/check/elements/rtp-payloading.c:
+	  rtph265pay/depay: Sync against RFC 7798
+	  Handle sprop-vps, sprop-sps and sprop-pps in caps instead of
+	  sprop-parameter-sets.
+	  rtph265pay works with byte-stream and hvc1 formats but not hev1 yet. It
+	  handles profile-id, tier-flag and level-id in caps query.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753760
+
+2016-07-06 09:25:00 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+	* gst/flv/gstflvdemux.c:
+	* gst/flv/gstflvdemux.h:
+	  flvdemux: Push nominal bitrate tags
+	  Add per-stream tag lists, which are used to send nominal
+	  bitrate tags. When remuxing FLV => FLV, this now passes
+	  through the upstream bitrate.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768440
+
+2016-07-06 09:24:49 +0200  Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
+
+	* gst/flv/gstflvdemux.c:
+	* gst/flv/gstflvdemux.h:
+	  flvdemux: Refactor metadata tag handling
+	  The FLV header cannot be trusted to indicate video or
+	  audio presence, as the comments already mention. Don't
+	  delay pushing tags waiting for streams that might never
+	  appear.
+	  Tags are now pushed immediately after they change:
+	  - After parsing an onMetaData script object
+	  - After negotiating caps on a pad
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768440
+
+2016-07-06 12:44:10 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: fix AAC codec_data values
+	  As seen in the parent switch for object_type_id, the 4 possible values are
+	  0x40, 0x66, 0x67 and 0x68. Fixing the nested switch to match these values.
+	  Looks like it was a typo making them decimal instead of hexadecimal.
+	  CID 1363328
+
+2016-07-06 13:51:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
+
+=== release 1.9.1 ===
+
+2016-07-06 13:06:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ChangeLog:
+	* NEWS:
+	* RELEASE:
+	* configure.ac:
+	* 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.9.1
+
+2016-07-06 11:46:26 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/af.po:
+	* po/az.po:
+	* po/bg.po:
+	* po/ca.po:
+	* po/cs.po:
+	* po/da.po:
+	* po/de.po:
+	* po/el.po:
+	* po/en_GB.po:
+	* po/eo.po:
+	* po/es.po:
+	* po/eu.po:
+	* po/fi.po:
+	* po/fr.po:
+	* po/gl.po:
+	* po/hr.po:
+	* po/hu.po:
+	* po/id.po:
+	* po/it.po:
+	* po/ja.po:
+	* po/lt.po:
+	* po/lv.po:
+	* po/mt.po:
+	* po/nb.po:
+	* po/nl.po:
+	* po/or.po:
+	* po/pl.po:
+	* po/pt_BR.po:
+	* po/ro.po:
+	* po/ru.po:
+	* po/sk.po:
+	* po/sl.po:
+	* po/sq.po:
+	* po/sr.po:
+	* po/sv.po:
+	* po/tr.po:
+	* po/uk.po:
+	* po/vi.po:
+	* po/zh_CN.po:
+	* po/zh_HK.po:
+	* po/zh_TW.po:
+	  Update .po files
+
+2016-07-06 11:22:53 +0300  Steven Hoving <sh@bigbrother.nl>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Fix error messages to first convert to doubles before division
+
+2016-07-06 10:18:30 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* po/da.po:
+	* po/hr.po:
+	* po/pt_BR.po:
+	* po/sk.po:
+	  po: Update translations
+
+2016-07-05 21:11:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Set to PLAYING after a seek again after setting up the segment and everything else
+	  There's a small window for a race condition otherwise.
+
 2016-07-04 17:45:40 +0200  Sebastian Dröge <sebastian@centricular.com>
 
 	* tests/check/elements/qtmux.c:
@@ -195,11 +1579,30 @@
 	  The resulting file is not going to be playable without guesswork and raw caps
 	  should always have codec_data.
 
-2016-07-05 21:11:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-10 15:48:49 +0200  Edward Hervey <edward@centricular.com>
 
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: Set to PLAYING after a seek again after setting up the segment and everything else
-	  There's a small window for a race condition otherwise.
+	  qtdemux: Handle upstream GAP in push-mode/time segment
+	  This is to handle cases where upstream handles the fragmented streaming in TIME
+	  segments and sends us data with gaps within fragments. This would happen when dealing
+	  with trick-modes.
+	  When upstream (push-based, TIME SEGMENT) wishes to send discontinuous samples,
+	  it must obey the following rules:
+	  * The buffer containing the [moof] must have a valid GST_BUFFER_OFFSET
+	  * The buffers containing the first sample after a gap:
+	  * MUST start at the beginning of a sample,
+	  * MUST have the DISCONT flag set,
+	  * MUST have a valid GST_BUFFER_OFFSET relative to the beginning of the fragment.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767354
+
+2016-07-01 11:54:57 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* sys/v4l2/v4l2-utils.c:
+	  v4l2: fix potential double-free of error debug string
+	  gst_v4l2_clear_error() doesn't work like g_clear_error(), it
+	  doesn't NULLify the pointer, so set freed debug string to NULL
+	  so it doesn't get freed again if gst_v4l2_clear_error() is
+	  called twice on the error.
+	  CID 1362901
 
 2016-07-01 10:05:00 +0000  Brad Lackey <blackey@gmail.com>
 
@@ -207,46 +1610,6 @@
 	  rtspsrc: Don't disable UDP protocols on redirecting
 	  https://bugzilla.gnome.org/show_bug.cgi?id=768232
 
-2016-07-10 21:30:27 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: Use correct in6_pktinfo struct instead of in_pktinfo
-	  Fixes the build on FreeBSD, which does not have the latter.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=768623
-
-2016-07-08 12:30:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
-
-	* sys/v4l2/gstv4l2.c:
-	* sys/v4l2/gstv4l2bufferpool.c:
-	* sys/v4l2/gstv4l2deviceprovider.c:
-	* sys/v4l2/gstv4l2object.c:
-	* sys/v4l2/gstv4l2object.h:
-	* sys/v4l2/gstv4l2radio.c:
-	* sys/v4l2/gstv4l2sink.c:
-	* sys/v4l2/v4l2_calls.c:
-	  Revert "v4l2: use opened device caps instead of physical device ones"
-	  This reverts commit d6c8cb63859368e7100b0002354ad742e4286eba.
-	  Apparently this was not fully tested and cause regressions.
-
-2016-07-02 01:56:07 -0700  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
-
-	* sys/v4l2/gstv4l2.c:
-	* sys/v4l2/gstv4l2bufferpool.c:
-	* sys/v4l2/gstv4l2deviceprovider.c:
-	* sys/v4l2/gstv4l2object.c:
-	* sys/v4l2/gstv4l2object.h:
-	* sys/v4l2/gstv4l2radio.c:
-	* sys/v4l2/gstv4l2sink.c:
-	* sys/v4l2/v4l2_calls.c:
-	  v4l2: use opened device caps instead of physical device ones
-	  The same physical device can export multiple devices. In
-	  this case, the capabilities field now contains a union of
-	  all caps available from all exported V4L2 devices alongside
-	  a V4L2_CAP_DEVICE_CAPS flag that should be used to decide
-	  what capabilities to consider. In our case, we need the
-	  ones from the exported device we are using.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=768195
-
 2016-07-01 17:28:17 +0900  Seungha Yang <sh.yang@lge.com>
 
 	* gst/isomp4/qtdemux.c:
@@ -263,6 +1626,24 @@
 	  more. Use g_strdup() instead.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=753760
 
+2016-06-29 23:31:20 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/shout2/gstshout2.c:
+	  shout2: Use a non-timer GstPoll
+	  Otherwise set_flushing() will have undefined semantics and nowadays causes a
+	  g_critical() to warn about that.
+
+2016-06-19 02:08:25 -0300  Thiago Santos <thiagossantos@gmail.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: dynamically adjust blocksize
+	  Update the blocksize depending on how much is obtained from a read
+	  of the input stream. This avoids doing too many reads in small chunks
+	  when larger amounts of data are available and also prevents using
+	  a very large memory area to read a small chunk of data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767833
+
 2016-06-28 16:44:50 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/udp/gstudpsrc.c:
@@ -300,12 +1681,165 @@
 	  to produce packets while the sinks are all PAUSED, piling up thousands of
 	  packets in the rtpjitterbuffer and other elements and finally failing.
 
+2016-06-27 09:20:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: Add comment about H263/MPEG4P2 being non-standard for FLV
+	  They are however supported by ffmpeg and apparently used out there.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768006
+
+2016-06-24 14:48:53 +0300  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: Add support for H263 and MPEG4 part2
+	  https://bugzilla.gnome.org/show_bug.cgi?id=768006
+
+2016-06-21 17:10:56 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* docs/plugins/Makefile.am:
+	* 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:
+	  Update plugins doc
+	  This is partly automated using "make update" in docs/plugins, but also
+	  required manual merge. Additionally, missing plugins and elements have
+	  been added.
+
+2016-06-21 17:51:38 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/splitmux.c:
+	  tests: splitmux: skip tests if theora or ogg plugins are not available
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767861
+
+2016-06-21 11:46:13 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* common:
+	  Automatic update of common submodule
+	  From ac2f647 to f363b32
+
+2016-06-21 07:40:42 -0400  Aaron Boxer <boxerab@gmail.com>
+
+	* gst/rtp/gstrtpj2kpay.c:
+	  gstrtpj2kpay: use tile bit and tile number to determine if there are multiple tiles in packet
+	  Now we don't have to rely on a special value for the tile number.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767817
+
+2016-06-21 09:34:56 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/rtp/gstrtpj2kpay.c:
+	  rtpj2kpay: fix compiler warning on OS/X
+	  gstrtpj2kpay.c:364:21: error: implicit truncation from 'int' to bitfield changes value from -1 to 65535
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767817
+
+2016-06-21 09:34:37 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* docs/plugins/gst-plugins-good-plugins.hierarchy:
+	* docs/plugins/gst-plugins-good-plugins.interfaces:
+	* docs/plugins/gst-plugins-good-plugins.prerequisites:
+	* docs/plugins/inspect/plugin-avi.xml:
+	* docs/plugins/inspect/plugin-deinterlace.xml:
+	* docs/plugins/inspect/plugin-rtp.xml:
+	  docs: update
+
+2016-05-16 17:31:58 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/capssetter.c:
+	* tests/check/elements/icydemux.c:
+	* tests/check/elements/jpegenc.c:
+	* tests/check/elements/level.c:
+	* tests/check/elements/multifile.c:
+	* tests/check/elements/qtmux.c:
+	* tests/check/elements/rtprtx.c:
+	* tests/check/elements/udpsrc.c:
+	  fix buffer leaks in tests
+	  Need to call gst_check_drop_buffers() to release the buffers exchanged
+	  during the test.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766561
+
+2016-05-17 12:52:43 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/interleave.c:
+	  interleave: fix message leaks in test
+	  Flush the bus when cleaning up so pending messages are destroyed.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766561
+
+2016-05-17 12:58:06 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/videomixer.c:
+	  videomixer: fix event leaks in test
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766561
+
+2016-05-13 15:12:22 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/deinterleave.c:
+	  deinterleave: fix leaks
+	  - Flush the bus so messages aren't leaked
+	  - Fix pad leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766561
+
+2016-06-17 15:29:16 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/gstrtph264pay.c:
+	  rtph264pay: Deprecated sprop-parameter-set property
+	  This is supposed to be either in the codec_data (avc stream format) or inside
+	  the stream, and we extract it from there. It should not be set from a
+	  property as it's stream specific.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767789
+
+2016-06-17 12:16:32 -0700  Aleix Conchillo Flaqué <aleix@oblong.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: make all srtp encoder properties explicit
+	  The Session Data Protocol doesn't allow specifying a cipher for the
+	  SRTCP, so it will use the SRTP one. In the "srtpenc" element the cipher
+	  "aes-128-icm" is the default for SRTP and SRTCP, but if we want to have
+	  an SRTCP with the "aes-256-icm" cipher then we also need to set the SRTP
+	  cipher to "aes-256-icm", otherwise "aes-128-icm" will be used instead.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767799
+
+2016-06-17 19:59:13 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* ext/soup/gstsoup.c:
+	  soup: work around frequent deadlocks in GLib type initialisation
+	  .. by registering the types from the plugin init function. This
+	  seems to help, but we'll see if it's enough (might need similar
+	  things elsewhere).
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693911
+	  https://bugzilla.gnome.org/show_bug.cgi?id=674885
+
 2016-06-17 16:08:08 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/isomp4/gstqtmux.c:
 	  qtmux: The prores variant is stored in the variant field, not format
 	  And the caps in the sink pad template already used variant (only).
 
+2016-06-17 13:00:48 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* gst/rtp/gstrtph265pay.c:
+	* gst/rtp/gstrtph265pay.h:
+	  rtph265pay: Remove sprop-parameter-sets property
+	  There is no valid use case when this property is needed since the values
+	  must be in either codec_data or buffer data.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753760
+
+2016-06-10 16:17:26 +0200  Jonas Holmberg <jonashg@axis.com>
+
+	* docs/plugins/scanobj-build.stamp:
+	* gst/rtp/gstrtph265pay.c:
+	  rtph265pay: Read NALU type the same way everywhere
+	  Cosmetic change to read NALU type in gst_rtp_h265_pay_decode_nal() the
+	  same way as in other places.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753760
+
+2016-06-17 13:58:33 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* gst/rtpmanager/rtpjitterbuffer.h:
+	  rtpjitterbuffer: fix RTPJitterBufferMode documentation
+	  Documentation lacks '@' before each enum values and there was an extra
+	  line after symbol section which confuses GTK-Doc parser.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767788
+
 2016-05-23 10:18:48 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
 
 	* gst/rtpmanager/rtpsession.c:
@@ -319,6 +1853,16 @@
 	  Fixes sps/pps/vps insertion via the config-interval property.
 	  https://bugzilla.gnome.org//show_bug.cgi?id=767680
 
+2016-06-11 12:16:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* tests/check/pipelines/simple-launch-lines.c:
+	  simple-launch-lines: Use correct JPEG2000 caps
+
+2016-06-10 13:43:09 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/flv/gstflvdemux.c:
+	  flvdemux: fix indentation
+
 2016-06-10 13:42:01 +0100  Tim-Philipp Müller <tim@centricular.com>
 
 	* gst/flv/gstflvdemux.c:
@@ -326,136 +1870,14 @@
 	  Fixes parsing of "Thu May 11 15:57:46 2006 ".
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767496
 
-=== release 1.8.2 ===
+2016-05-13 15:08:24 -0400  Aaron Boxer <boxerab@gmail.com>
 
-2016-06-09 11:51:12 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
-	* docs/plugins/gst-plugins-good-plugins.args:
-	* docs/plugins/inspect/plugin-1394.xml:
-	* docs/plugins/inspect/plugin-aasink.xml:
-	* docs/plugins/inspect/plugin-alaw.xml:
-	* docs/plugins/inspect/plugin-alpha.xml:
-	* docs/plugins/inspect/plugin-alphacolor.xml:
-	* docs/plugins/inspect/plugin-apetag.xml:
-	* docs/plugins/inspect/plugin-audiofx.xml:
-	* docs/plugins/inspect/plugin-audioparsers.xml:
-	* docs/plugins/inspect/plugin-auparse.xml:
-	* docs/plugins/inspect/plugin-autodetect.xml:
-	* docs/plugins/inspect/plugin-avi.xml:
-	* docs/plugins/inspect/plugin-cacasink.xml:
-	* docs/plugins/inspect/plugin-cairo.xml:
-	* docs/plugins/inspect/plugin-cutter.xml:
-	* docs/plugins/inspect/plugin-debug.xml:
-	* docs/plugins/inspect/plugin-deinterlace.xml:
-	* docs/plugins/inspect/plugin-dtmf.xml:
-	* docs/plugins/inspect/plugin-dv.xml:
-	* docs/plugins/inspect/plugin-effectv.xml:
-	* docs/plugins/inspect/plugin-equalizer.xml:
-	* docs/plugins/inspect/plugin-flac.xml:
-	* docs/plugins/inspect/plugin-flv.xml:
-	* docs/plugins/inspect/plugin-flxdec.xml:
-	* docs/plugins/inspect/plugin-gdkpixbuf.xml:
-	* docs/plugins/inspect/plugin-goom.xml:
-	* docs/plugins/inspect/plugin-goom2k1.xml:
-	* docs/plugins/inspect/plugin-icydemux.xml:
-	* docs/plugins/inspect/plugin-id3demux.xml:
-	* docs/plugins/inspect/plugin-imagefreeze.xml:
-	* docs/plugins/inspect/plugin-interleave.xml:
-	* docs/plugins/inspect/plugin-isomp4.xml:
-	* docs/plugins/inspect/plugin-jack.xml:
-	* docs/plugins/inspect/plugin-jpeg.xml:
-	* docs/plugins/inspect/plugin-level.xml:
-	* docs/plugins/inspect/plugin-matroska.xml:
-	* docs/plugins/inspect/plugin-mulaw.xml:
-	* docs/plugins/inspect/plugin-multifile.xml:
-	* docs/plugins/inspect/plugin-multipart.xml:
-	* docs/plugins/inspect/plugin-navigationtest.xml:
-	* docs/plugins/inspect/plugin-oss4.xml:
-	* docs/plugins/inspect/plugin-ossaudio.xml:
-	* docs/plugins/inspect/plugin-png.xml:
-	* docs/plugins/inspect/plugin-pulseaudio.xml:
-	* docs/plugins/inspect/plugin-replaygain.xml:
-	* docs/plugins/inspect/plugin-rtp.xml:
-	* docs/plugins/inspect/plugin-rtpmanager.xml:
-	* docs/plugins/inspect/plugin-rtsp.xml:
-	* docs/plugins/inspect/plugin-shapewipe.xml:
-	* docs/plugins/inspect/plugin-shout2send.xml:
-	* docs/plugins/inspect/plugin-smpte.xml:
-	* docs/plugins/inspect/plugin-soup.xml:
-	* docs/plugins/inspect/plugin-spectrum.xml:
-	* docs/plugins/inspect/plugin-speex.xml:
-	* docs/plugins/inspect/plugin-taglib.xml:
-	* docs/plugins/inspect/plugin-udp.xml:
-	* docs/plugins/inspect/plugin-video4linux2.xml:
-	* docs/plugins/inspect/plugin-videobox.xml:
-	* docs/plugins/inspect/plugin-videocrop.xml:
-	* docs/plugins/inspect/plugin-videofilter.xml:
-	* docs/plugins/inspect/plugin-videomixer.xml:
-	* docs/plugins/inspect/plugin-vpx.xml:
-	* docs/plugins/inspect/plugin-wavenc.xml:
-	* docs/plugins/inspect/plugin-wavpack.xml:
-	* docs/plugins/inspect/plugin-wavparse.xml:
-	* docs/plugins/inspect/plugin-ximagesrc.xml:
-	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* win32/common/config.h:
-	  Release 1.8.2
-
-2016-06-09 11:20:54 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/da.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
-
-2016-06-09 10:05:34 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* po/hr.po:
-	* po/pt_BR.po:
-	* po/sk.po:
-	  po: Update translations
+	* gst/rtp/gstrtpj2kcommon.h:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kpay.c:
+	  gstrtpj2k: set sampling field required by RFC
+	  This field is now required in the sink caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766236
 
 2016-06-09 09:30:48 +0900  Seungha Yang <sh.yang@lge.com>
 
@@ -464,6 +1886,15 @@
 	  Fix unref assertion failure
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767424
 
+2016-05-14 14:46:17 +0200  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Work with non-TIME segments
+	  With non-time segments, it now assumes that the arrival time of packets
+	  is not relevant and that only the RTP timestamp matter and it produces
+	  an output segment start at running time 0.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766438
+
 2016-06-07 20:53:34 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
 
 	* ext/libpng/gstpngdec.c:
@@ -496,6 +1927,16 @@
 	  to the output buffer.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=758424
 
+2016-06-07 16:41:58 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2videodec.c:
+	  v4l2videodec: Coding style fixes
+
+2016-06-07 16:09:23 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: Coding style fixes
+
 2016-06-07 16:04:52 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
 
 	* sys/v4l2/gstv4l2object.c:
@@ -530,6 +1971,35 @@
 	  failures in USERPTR or DMABUF import mode (when using downstream pools).
 	  https://bugzilla.gnome.org/show_bug.cgi?id=754042
 
+2016-04-28 13:44:49 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: Show state name in debugging
+	  Makes it easier to trace what's going on
+
+2016-05-10 15:45:42 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Remove useless variable
+	  That variable is only needed for a debug statement, move it there
+
+2016-05-10 15:10:36 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: Add/Fix comments on the various structure variables
+	  No variables were added/removed. This was just a good excuse to:
+	  * Comment what most variables are used for (and when)
+	  * Order them in such a way as to show first the common variables used
+	  in all cases, followed by those only used in push-mode
+
+2016-05-10 15:07:40 +0200  Edward Hervey <bilboed@bilboed.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Remove unused structure
+	  Let's just remove it, been commented for 7+ years :)
+
 2015-09-02 11:48:29 +0200  Philipp Zabel <p.zabel@pengutronix.de>
 
 	* sys/v4l2/gstv4l2videodec.c:
@@ -544,6 +2014,28 @@
 	  v4l2videodec: add gst_v4l2_decoder_cmd helper
 	  https://bugzilla.gnome.org/show_bug.cgi?id=733864
 
+2016-06-01 20:28:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Forward segments directly if we are operating in PUSH mode on fragmented streams
+	  We shouldn't go through segment activation as we will only have a limited
+	  understanding of how the whole stream timeline looks like from the moof. We
+	  only know about the current fragment, while upstream knows about the whole
+	  stream.
+	  This fixes seeking in DASH streams, both for seeks after the current moof and
+	  for seeks into the current moof. The former would fail because the moof ends
+	  and we can't activate any segment, the latter would cause a segment that stops
+	  at the moof end, and no further fragments would be played because we end up
+	  being EOS.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
+
+2016-06-06 17:54:10 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* sys/v4l2/gstv4l2transform.c:
+	  v4l2transform: Use looser caps for upstream
+	  When we fixate for upstream, try to not introduce new fields when not
+	  needed. This was imported from videoconvert element.
+
 2015-01-28 12:07:58 +0100  Enrico Jorns <ejo@pengutronix.de>
 
 	* sys/v4l2/gstv4l2transform.c:
@@ -570,6 +2062,25 @@
 	  fixed-height cases.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766711
 
+2016-05-13 16:39:25 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: fill colorimetry in gst_v4l2_object_acquire_format
+	  Instead of relying on the default colorimetry chosen by
+	  gst_video_info_set_format(), set info.colorimetry from the
+	  values returned by G_FMT. This allows decoders to propagate
+	  their input colorimetry downstream.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766383
+
+2016-05-18 10:17:12 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: refactor gst_v4l2_object_get_colorspace to take a v4l2_format parameter
+	  Move the extraction of colorimetry parameters from struct v4l2_format and the
+	  setting of the identity matrix for RGB formats into the function to avoid code
+	  duplication.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766383
+
 2016-05-13 14:58:41 +0200  Philipp Zabel <p.zabel@pengutronix.de>
 
 	* sys/v4l2/gstv4l2videodec.c:
@@ -579,6 +2090,18 @@
 	  filter for caps negotiation with downstream elements.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766382
 
+2016-05-13 14:45:02 +0200  Philipp Zabel <p.zabel@pengutronix.de>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: use G_SELECTION instead of G_CROP in gst_v4l2_object_acquire_format
+	  The gst_v4l2_object_acquire_format() function is used by v4l2videodec to obtain
+	  the currently set capture format. Since G_FMT returns the coded size, the
+	  visible size needs to be obtained from the compose rectangle in order to
+	  negotiate it with downstream elements. The G_CROP call hasn't worked on mem2mem
+	  capture queues for a long time. Instead use the G_SELECTION call to obtain the
+	  compose rectangle and only fall back to G_CROP for ancient kernels.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766381
+
 2016-01-27 09:57:38 +0100  Andreas Naumann <anaumann@ultratronik.de>
 
 	* sys/v4l2/gstv4l2sink.c:
@@ -602,6 +2125,112 @@
 	  this to the new accepted format type, as the preferred format.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767300
 
+2016-05-04 14:50:32 +0200  Michael Olbrich <m.olbrich@pengutronix.de>
+
+	* gst/matroska/matroska-demux.c:
+	  matroskademux: preserve seek flags
+	  Without this some flags get lost in streaming mode.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767194
+
+2016-06-06 10:47:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/Makefile.am:
+	* ext/soup/gstsouphttpclientsink.c:
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  Revert "WIP revert soup"
+	  This reverts commit fdac3a7a231f3848665636cf8122f96103b46e3b.
+	  Was not supposed to be pushed but a local workaround for
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693911#c13
+
+2016-06-03 13:09:35 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/rtpmanager/rtpsource.c:
+	  rtpsource: complete warn log with SSRC
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767195
+
+2016-05-31 15:29:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/Makefile.am:
+	* ext/soup/gstsouphttpclientsink.c:
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  WIP revert soup
+
+2016-06-03 13:18:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Unref seek event in any case
+	  It would be leaked if no seek handler was currently set.
+
+2016-06-03 10:49:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	* ext/dv/gstdvdemux.h:
+	  dvdemux: Properly set event/message sequence numbers based on the previous seek
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767157
+
+2016-06-03 10:36:32 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	* ext/dv/gstdvdemux.h:
+	  dvdemux: Remember if upstream had a time segment and if not properly create time segments
+	  Previously the segment.time was wrong, and the position was not updated
+	  correctly, resulting in seeks in PUSH mode with upstream providing a BYTES
+	  segment to not work at all.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767157
+
+2016-06-03 09:54:53 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Implement SEEKING query so we can actually seek if upstream can't seek in TIME
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767157
+
+2016-06-02 14:19:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	  dvdemux: Recalculate the frame offsets at the beginning of each BYTE segment and whenever upstream gives us a timestamp
+	  This fixes seeking in DV streams where upstream operates in PUSH mode with a
+	  TIME segment (e.g. avidemux). Without this, we would generate wrong durations
+	  and timestamps after a seek.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767157
+
+2016-06-02 13:53:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdemux.c:
+	* ext/dv/gstdvdemux.h:
+	  dvdemux: Pass-through buffer DISCONT flags
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767157
+
+2016-06-02 16:16:45 -0400  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtp/gstrtpvp9depay.c:
+	  rtpvp9depay: Don't assert on flexible mode packets
+	  Instead just post a warning on the bus for now.
+
+2016-06-02 15:03:17 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/rtpbin.c:
+	  tests: rtpbin: fix caps leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767156
+
+2016-06-02 15:00:01 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* tests/check/elements/amrparse.c:
+	  tests: amrparse: clean up test
+	  - use GST_CHECK_MAIN() to reduce boilerplate
+	  - unref the input caps using a teardown function to prevent leaks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767156
+
+2016-05-20 15:22:35 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	* gst/deinterlace/gstdeinterlace.h:
+	  deinterlace: Ensure DISCONT flag is properly propagated
+	  The output of deinterlace at startup, or when receiving a new DISCONT
+	  buffer, should have the DISCONT flag set on the first buffer.
+
 2016-05-31 21:34:04 +0200  Josep Torra <adn770@gmail.com>
 
 	* sys/v4l2/gstv4l2bufferpool.c:
@@ -610,10 +2239,13 @@
 	  with raw video inputs.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767086
 
-2016-02-10 19:56:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+2016-05-31 17:10:36 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* sys/v4l2/gstv4l2deviceprovider.c:
-	  v4l2: Don't leak v4l2 objects and props on probe errors
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Use the demuxer segment instead of a new one for MSS streams
+	  Upstream might have told us something about the to be expected segment, so
+	  let's use that information instead of coming up with a [0,-1] segment.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
 
 2016-05-31 17:04:32 +0300  Sebastian Dröge <sebastian@centricular.com>
 
@@ -623,12 +2255,10 @@
 	  later send a possibly outdated event.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
 
-2016-05-31 17:10:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-31 16:53:50 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/isomp4/qtdemux.c:
-	  qtdemux: Use the demuxer segment instead of a new one for MSS streams
-	  Upstream might have told us something about the to be expected segment, so
-	  let's use that information instead of coming up with a [0,-1] segment.
+	  qtdemux: In PULL mode, nothing is ever going to send us a SEGMENT event
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
 
 2016-05-31 16:38:34 +0300  Sebastian Dröge <sebastian@centricular.com>
@@ -641,19 +2271,21 @@
 	  See https://bugzilla.gnome.org/show_bug.cgi?id=763165
 	  https://bugzilla.gnome.org/show_bug.cgi?id=767071
 
-2016-03-15 03:25:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+2015-07-16 09:48:46 +0530  Prashant Gotarne <ps.gotarne@samsung.com>
 
-	* gst/rtp/gstrtpjpegdepay.c:
-	  rtpjpegdepay: Don't send invalid frames downstream after packet loss or a DISCONT
-	  After clearing the adapter due to a DISCONT, as might happen when some packet(s)
-	  have been lost, the depayloader was pushing data into the adapter (which had no
-	  header due to the clear), creating a headerless frame out of it, and sending it
-	  downstream. The downstream decoder would then usually ignore it; unless there
-	  were lots of DISCONTs from the jitterbuffer in which case the decoder would reach
-	  its max_errors limit and throw an element error. Now we just discard that data.
-	  It is probaby not worth trying to salvage this data because non-progressive
-	  jpeg does not degrade gracefully and makes the video unwatchable even with
-	  low packet loss such as 3-5%.
+	* gst/multifile/gstmultifilesrc.c:
+	  multifilesrc: set position as offset from start-index
+	  query position in GST_FORMAT_BUFFER returns
+	  offset from start-index rather than index.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=752462
+
+2016-05-27 12:49:32 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/pipelines/simple-launch-lines.c:
+	* tests/files/Makefile.am:
+	* tests/files/gradient.j2k:
+	  tests: add unit test for JPEG-2000 rtp payloader leak
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766870
 
 2016-05-25 17:11:13 +0200  Pierre Lamot <pierre.lamot@openwide.fr>
 
@@ -670,12 +2302,18 @@
 	  caps for no reason.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=766610
 
-2016-05-20 11:12:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-22 20:14:18 +0100  Tim-Philipp Müller <tim@centricular.com>
 
-	* gst/avi/gstavidemux.c:
-	* gst/avi/gstavidemux.h:
-	  avidemux: Pass through seek event seqnums in all SEGMENT/EOS events and SEGMENT_DONE messages/events
-	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+	* gst/videocrop/gstvideocrop.c:
+	  videocrop mark crop properties as mutable in playing state
+
+2016-05-20 16:47:35 +0300  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: fix buffer leak when flushing
+	  When early returning in gst_soup_http_src_read_buffer() because the
+	  element is FLUSHING, we need to unmap and unref the buffer which was just created.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766718
 
 2016-05-20 11:15:44 +0300  Sebastian Dröge <sebastian@centricular.com>
 
@@ -684,6 +2322,13 @@
 	  Some were forgotten.
 	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
 
+2016-05-20 11:12:44 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavidemux.c:
+	* gst/avi/gstavidemux.h:
+	  avidemux: Pass through seek event seqnums in all SEGMENT/EOS events and SEGMENT_DONE messages/events
+	  See https://bugzilla.gnome.org/show_bug.cgi?id=765935
+
 2016-05-20 10:56:52 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/matroska/matroska-demux.c:
@@ -717,29 +2362,14 @@
 	  SSRC.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=762219
 
-2016-05-12 11:52:09 +0900  Seungha Yang <sh.yang@lge.com>
+2015-11-15 14:54:28 +0100  Mikhail Fludkov <misha@pexip.com>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: Parsing elst box based on version
-	  segment_duration and media_time should be parsed based on version
-	  of elst box. Specification defines that an elst box with version 1
-	  has uint64 and int64 values for segment_duration and media_time,
-	  respectively.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=766301
-
-2016-05-15 12:30:50 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: Take the lock already when reading the other stats, not just for the hash table
-	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
-
-2016-05-12 14:43:43 +0200  Patricia Muscalu <patricia@axis.com>
-
-	* gst/auparse/gstauparse.c:
-	* gst/auparse/gstauparse.h:
-	  auparse: Fix sticky event misordering warning
-	  Make sure that src pad has caps before sending segment event.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=766359
+	* tests/check/elements/rtpsession.c:
+	  rtpsession: Add test for locking of the stats signal
+	  Keeping the lock while emitting the stats signal introduces potential
+	  deadlock in those situations when the signal callback wants the access
+	  to rtpsession's properties which also requre the lock.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762216
 
 2016-05-19 15:36:57 +0900  Seungha Yang <sh.yang@lge.com>
 
@@ -765,6 +2395,29 @@
 	  souphttpclientsink: Set sent_buffers and streamheader_buffers to NULL after freeing
 	  Otherwise we might use an already freed list later and crash or worse.
 
+2016-05-18 18:32:57 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: fix Since version for new "loop" property
+
+2016-05-16 16:18:37 +0200  Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
+
+	* gst/rtsp/gstrtpdec.c:
+	  rtpdec: fix clock leak
+	  gst_system_clock_obtain() returns a new ref.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766521
+
+2016-05-17 05:33:35 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: add doc blurb with since marker for new "loop" property
+
+2015-11-13 15:52:35 +0100  Dimitrios Katsaros <patcherwork@gmail.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: add support for png
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758059
+
 2016-05-15 22:07:14 +1000  Jan Schmidt <jan@centricular.com>
 
 	* gst/multifile/gstsplitmuxpartreader.c:
@@ -772,272 +2425,10 @@
 	  Fix a race in splitmuxsrc by properly connecting to the
 	  demuxer signals we're interested in *before* setting it running.
 
-2016-05-14 23:39:22 +1000  Jan Schmidt <jan@centricular.com>
+2016-05-15 13:31:37 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst/multifile/gstsplitmuxsink.c:
-	* gst/multifile/gstsplitmuxsink.h:
-	  splitmuxsink: Use GstBin async-handling instead of our own.
-	  Set the async-handling property on GstBin to let it manage
-	  async-handling instead of the local handling from the previous
-	  commit. Works because of #174a5e in core
-
-2016-05-14 18:32:52 +1000  Jan Schmidt <jan@centricular.com>
-
-	* gst/multifile/gstsplitmuxsink.c:
-	* gst/multifile/gstsplitmuxsink.h:
-	  splitmuxsink: Hide internal async state changes.
-	  When switching fragments, hide the async-start/async-done
-	  messages from the parent bin, as otherwise we sometimes (very rarely)
-	  hang in PAUSED instead of returning / continuing to PLAYING
-	  state.
-
-2016-05-13 21:20:28 +1000  Jan Schmidt <jan@centricular.com>
-
-	* gst/multifile/gstsplitmuxsink.c:
-	  splitmuxsink: Remove stray carriage-return from debug
-
-2015-04-30 14:43:04 +0200  Jesper Larsen <knorr.jesper@gmail.com>
-
-	* gst/avi/gstavimux.c:
-	  avimux: Do not write index and header if idx is NULL
-	  Fixes criticals with e.g.
-	  videotestsrc num-buffers=1 ! identity drop-probability=1.0 ! avimux ! fakesink
-	  https://bugzilla.gnome.org/show_bug.cgi?id=748700
-
-2016-05-03 11:45:01 +0200  Havard Graff <havard.graff@gmail.com>
-
-	* gst/rtpmanager/gstrtpjitterbuffer.c:
-	* tests/check/elements/rtpjitterbuffer.c:
-	  rtpjitterbuffer: Fix stall when receiving already lost packet
-	  When a packet arrives that has already been considered lost as part of a
-	  large gap the "lost timer" for this will be cancelled. If the remaining
-	  packets of this large gap never arrives, there will be missing entries
-	  in the queue and the loop function will keep waiting for these packets
-	  to arrive and never push another packet, effectively stalling the
-	  pipeline.
-	  The proposed fix conciders parts of a large gap definitely lost (since
-	  they are calculated from latency) and ignores the late arrivals.
-	  In practice the issue is rare since large gaps are scheduled immediately,
-	  and for the stall to happen the late arrival needs to be processed
-	  before this times out.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765933
-
-2016-05-11 09:28:13 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: Don't notify about stats property changes while taking the session lock
-	  The signal handlers might want to actually get the value of the stats
-	  property, which would take the session lock again and deadlock.
-	  This was introduced by 2e960e70750a0cb7e1117d0c09d08597866a29ee.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
-
-2016-05-05 14:18:21 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
-
-	* gst/rtpmanager/rtpsession.c:
-	  rtpsession: Take session lock when creating stats
-	  The access to the session hash table must happen while the session lock is
-	  taken, otherwise another thread might modify the hash table while we're
-	  creating the stats.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
-
-2016-05-04 09:30:27 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ext/dv/gstdvdec.c:
-	* ext/dv/gstdvdemux.c:
-	  dv: Use correct pixel-aspect-ratio values
-	  The previous ones resulted in odd display aspect ratios and were different
-	  from the ones used by e.g. ffmpeg. The new ones now result in display aspect
-	  ratios of 4:3 and 16:9.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765946
-
-2016-05-03 21:17:01 -0300  Thiago Santos <thiagoss@osg.samsung.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: update segment when new duration is found
-	  Otherwise the old segment will have a shorter stop time and would
-	  cause the stream to end too early.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765805
-
-2016-05-04 11:37:29 -0300  Thiago Santos <thiagoss@osg.samsung.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: dismember activate_segment into 2 parts
-	  One that updates and push a new segment, the other will move the
-	  stream to the new segment starting position
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765805
-
-2016-05-04 11:15:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>
-
-	* gst/multifile/gstsplitmuxsink.c:
-	  splitmuxsink: Fix deadlock case when source reaches EOS
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765072
-
-2016-04-11 10:54:38 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/udp/gstudpsrc.c:
-	  udpsrc: Always bind to ANY when address is a multicast address and not only on Windows
-	  For IPv6 addresses, binding to a multicast group does not work on Linux
-	  either. Always bind to ANY and then later join the multicast group.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764679
-
-2016-04-28 16:24:52 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/gstqtmux.c:
-	* gst/isomp4/gstqtmuxmap.c:
-	  qtmux: Allow MPEG-1 Layer 1 and 2 in addition to 3 in MP4
-	  Via the MPEG-4 Part 3 spec we can support the other layers too.
-	  Also correct the samples per frame calculation for MP3 if it's MPEG-2 or
-	  MPEG-2.5.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765725
-
-2016-04-29 15:04:11 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/qtdemux.c:
-	* gst/isomp4/qtdemux.h:
-	  qtdemux: Store the segment sequence number in the EOS events and SEGMENT_DONE events/message
-	  Also instead of storing it per stream, store it globally in the demuxer. It's
-	  the same for each stream anyway.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765806
-
-2016-04-27 20:46:34 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	* gst/rtsp/gstrtspsrc.h:
-	  rtspsrc: Update caps for TCP whenever they change
-	  We only changed them for UDP so far, which caused the wrong seqnum-base and
-	  other information to be passed to rtpjitterbuffer/etc when seeking. This
-	  usually wasn't that much of a problem as the code there is robust enough, but
-	  every now and then it causes us to drop up to 32756 packets before we
-	  continue doing anything meaningful.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
-
-2016-04-27 20:33:38 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtpmanager/gstrtpjitterbuffer.c:
-	  rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate
-	  Especially the caps on the pad might be out of date, and the new caps would be
-	  provided for the current pt via the request-pt-map signal.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
-
-2016-04-27 18:27:17 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/rtsp/gstrtspsrc.c:
-	  rtspsrc: Don't propagate spurious state change returns from internal elements further
-	  We handle them inside rtspsrc and override them in all other cases anyway, so
-	  do the same for "internal" state changes like PAUSED->PAUSED and
-	  PLAYING->PLAYING.
-	  This keeps unexpected NO_PREROLL to confuse state changes in GstBin.
-	  See also https://bugzilla.gnome.org/show_bug.cgi?id=760532
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
-
-2016-05-01 15:09:27 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>
-
-	* gst/avi/gstavimux.c:
-	  avimux: set audio header rate according to calculated bps in stop_file
-	  ... now that set_fields is no longer called there by
-	  e538608b3f90539003de21c1db238f3c9b946e30
-
-2015-11-26 13:15:06 +0100  Dimitrios Katsaros <patcherwork@gmail.com>
-
-	* sys/v4l2/v4l2_calls.c:
-	  v4l2: Change warning handling to break infinite message loop
-	  v4l2src can cause an "infinite message loop" when a base control exposed as a
-	  property is not provided by the device. In these cases, if in the warning message
-	  handling for the bus, the GST_DEBUG_BIN_TO_DOT_FILE* category of functions are used,
-	  the src lookup causes a new warning to be posted on the bus, causing a loop.
-	  This patch changes the warning for these controls so they are not posted on the bus.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=758703
-
-2016-04-25 15:03:14 +0200  Mats Lindestam <matslm@axis.com>
-
-	* gst/udp/gstmultiudpsink.c:
-	  multiudpsink: Allow setting "socket-v6" without setting "socket" too
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764897
-
-2016-04-27 13:53:00 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/avi/gstavimux.c:
-	  avimux: Actually store the largest audio chunk size for the VBR case of MP2/MP3
-	  3ea338ce271e1f6a96d2ed49d4472b091f6f8b7e changed avimux to do that, but it
-	  never actually kept track of the max audio chunk for MP3 and MP2. These are
-	  knowing the hdr.scale only after parsing the frames instead of at setcaps
-	  time.
-
-2016-04-27 14:09:03 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/avi/gstavimux.c:
-	  avimux: Don't override maximum audio chunk size with the scale again just before writing it
-	  set_fields() should only be called in the beginning, otherwise we will never
-	  remember the maximum audio chunk size and write a wrong block align... which
-	  then causes wrong timestamps and other problems.
-
-2016-04-22 15:02:16 +0100  Mario Sanchez Prada <mario@endlessm.com>
-
-	* ext/vpx/gstvpxenc.c:
-	  vpxenc: Properly handle frames with too low duration
-	  When a frame's duration is too low, calling gst_util_uint64_scale()
-	  to scale its value can result into it being truncated to zero, which
-	  will cause the vpx encoder to return an VPX_CODEC_INVALID_PARAM error
-	  when trying to encode.
-	  To prevent this from happening, we simply ignore the duration when
-	  encoding if it becomes zero after scaling, logging a warning message.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765391
-
-2016-04-22 15:48:08 +0100  Tim-Philipp Müller <tim@centricular.com>
-
-	* gst/deinterlace/gstdeinterlace.c:
-	  deinterlace: fix description of linear interlacing method
-
-2016-04-21 14:08:19 -0300  Thibault Saunier <tsaunier@gnome.org>
-
-	* gst/flv/gstflvmux.c:
-	  flv: Handle the case where we do not get any CollectData in handle_buffer
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765320
-
-2016-02-09 17:17:09 +0000  Alex Ashley <bugzilla@ashley-family.net>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: support seeking of CENC encrypted streams
-	  When playing a stream that has been protected by DASH CENC, playback
-	  will fail if a seek is performed. Qtdemux produces the error "stream
-	  is protected using cenc, but no cenc protection system information
-	  has been found" and playback stops.
-	  The problem is that gst_qtdemux_reset() gets called as part of the
-	  FLUSH during a seek. This function frees the protection_system_ids
-	  array. When gst_qtdemux_configure_protected_caps() is called after the
-	  seek has completed, the protection_system_ids array is empty and
-	  qtdemux is unable to create the correct output caps for the protected
-	  stream.
-	  This commit changes it to only free the protection_system_ids on
-	  hard resets.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=761787
-
-2016-04-11 22:41:20 +0900  Seungha Yang <sh.yang@lge.com>
-
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: Do not use unreliable framerate
-	  timescale/1 is unreliable value for framerate. Due to downstream
-	  element usually use framerate generated by qtdemux, let it be omitted
-	  until the framerate can be reliably calculated.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
-
-2016-04-21 12:53:33 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* gst/isomp4/qtdemux.c:
-	* gst/isomp4/qtdemux.h:
-	  Revert "qtdemux: expose streams with first moof for fragmented format"
-	  This reverts commit d8bb6687ea251570c331038279a43d448167d6ad.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
-
-=== release 1.8.1 ===
-
-2016-04-20 18:16:25 +0300  Sebastian Dröge <sebastian@centricular.com>
-
-	* ChangeLog:
-	* NEWS:
-	* RELEASE:
-	* configure.ac:
 	* docs/plugins/gst-plugins-good-plugins.args:
+	* docs/plugins/gst-plugins-good-plugins.signals:
 	* docs/plugins/inspect/plugin-1394.xml:
 	* docs/plugins/inspect/plugin-aasink.xml:
 	* docs/plugins/inspect/plugin-alaw.xml:
@@ -1104,68 +2495,485 @@
 	* docs/plugins/inspect/plugin-wavparse.xml:
 	* docs/plugins/inspect/plugin-ximagesrc.xml:
 	* docs/plugins/inspect/plugin-y4menc.xml:
-	* gst-plugins-good.doap:
-	* win32/common/config.h:
-	  Release 1.8.1
+	  docs: Update for git master
 
-2016-04-20 18:07:35 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-15 12:16:23 +0200  Olivier Crête <olivier.crete@collabora.com>
 
-	* po/af.po:
-	* po/az.po:
-	* po/bg.po:
-	* po/ca.po:
-	* po/cs.po:
-	* po/de.po:
-	* po/el.po:
-	* po/en_GB.po:
-	* po/eo.po:
-	* po/es.po:
-	* po/eu.po:
-	* po/fi.po:
-	* po/fr.po:
-	* po/gl.po:
-	* po/hr.po:
-	* po/hu.po:
-	* po/id.po:
-	* po/it.po:
-	* po/ja.po:
-	* po/lt.po:
-	* po/lv.po:
-	* po/mt.po:
-	* po/nb.po:
-	* po/nl.po:
-	* po/or.po:
-	* po/pl.po:
-	* po/pt_BR.po:
-	* po/ro.po:
-	* po/ru.po:
-	* po/sk.po:
-	* po/sl.po:
-	* po/sq.po:
-	* po/sr.po:
-	* po/sv.po:
-	* po/tr.po:
-	* po/uk.po:
-	* po/vi.po:
-	* po/zh_CN.po:
-	* po/zh_HK.po:
-	* po/zh_TW.po:
-	  Update .po files
+	* gst/rtp/gstrtpmp4gpay.c:
+	* gst/rtp/gstrtpmp4gpay.h:
+	  rtpmp4gpay: Don't produce timestamps based on byte count
+	  The GST_BUFFER_OFFSET of output buffers returned to GstRtpBasePayload
+	  should reflect the number of "samples" in the unit of the RTP clock in this
+	  buffer. If this is not true, then it shouldn't be set.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761943
 
-2016-04-20 15:31:19 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-05-15 12:24:03 +0200  Edward Hervey <bilboed@bilboed.com>
 
-	* po/da.po:
-	  po: Update translations
+	* gst/matroska/matroska-mux.c:
+	  matroska-mux: Fix strcmp usage
+	  Just use g_strcmp0 which can handle NULL entries
 
-2016-04-15 00:46:56 -0700  Aleix Conchillo Flaqué <aleix@oblong.com>
+2016-03-04 10:14:00 +0100  Carlos Rafael Giani <dv@pseudoterminal.org>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: Use audio/x-unaligned-raw instead of audio/x-raw for L16 data
+	  Directly setting audio/x-raw caps leads to problems when the delivered
+	  data blocks do not align properly at sample boundaries (for example, a
+	  data block with 391 bytes). So, instead, set audio/x-unaligned-raw to
+	  let a parser be autoplugged.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=689460
+
+2016-05-12 11:52:09 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Parsing elst box based on version
+	  segment_duration and media_time should be parsed based on version
+	  of elst box. Specification defines that an elst box with version 1
+	  has uint64 and int64 values for segment_duration and media_time,
+	  respectively.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766301
+
+2016-05-14 12:57:41 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: check if request was cancelled when sending message
+	  It might be that the request was aborted by the application and
+	  we can return immediatelly
+
+2016-05-14 12:43:54 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	  souphttpsrc: proxy resolver is on by default
+	  Remove from the session creation parameters
+
+2016-05-14 12:15:48 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/Makefile.am:
+	  soup: update build to warn about newer deprecated functions
+	  We already depend on 2.48
+
+2016-05-14 11:09:33 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: reduce reading latency by using non-blocking read
+	  Non-blocking read will return the amount of data available without
+	  blocking to wait for the full requested size.
+	  The downside is that now it souphttpsrc needs to have a waiting
+	  mechanism in case there is no data available yet to avoid busy
+	  looping arond the inputstream.
+
+2016-05-15 12:30:50 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Take the lock already when reading the other stats, not just for the hash table
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-14 17:04:57 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/matroska/ebml-read.c:
+	  matroska: use math-compat.h for NAN define
+
+2016-05-14 23:39:22 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  splitmuxsink: Use GstBin async-handling instead of our own.
+	  Set the async-handling property on GstBin to let it manage
+	  async-handling instead of the local handling from the previous
+	  commit. Works because of #174a5e in core
+
+2016-05-13 10:17:33 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/soup/gstsouphttpsrc.h:
+	  souphttpsrc: refactor to use Soup's sync API
+	  Replace the async API with the sync API to remove all the extra mainloop
+	  and context handling. Currently it blocks reading until 'blocksize'
+	  bytes are available but that can be improved by using:
+	  https://developer.gnome.org/gio/unstable/GPollableInputStream.html#g-pollable-input-stream-read-nonblocking
+	  https://bugzilla.gnome.org/show_bug.cgi?id=693911
+
+2016-05-14 04:50:36 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* tests/check/elements/souphttpsrc.c:
+	  tests: souphttpsrc: replace deprecated API
+	  Avoid using soup_server_run_async and old get_port() APIs,
+	  replace with me soup_server_listen and get the port through the
+	  URIs list returned from the server.
+
+2016-05-14 12:34:10 +0200  Olivier Crête <olivier.crete@collabora.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: Upgrade debug message to error
+	  It causes the entire pipeline to fail, it should be easier to find.
+
+2016-05-14 18:32:52 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsink.h:
+	  splitmuxsink: Hide internal async state changes.
+	  When switching fragments, hide the async-start/async-done
+	  messages from the parent bin, as otherwise we sometimes (very rarely)
+	  hang in PAUSED instead of returning / continuing to PLAYING
+	  state.
+
+2016-05-13 21:20:28 +1000  Jan Schmidt <jan@centricular.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Remove stray carriage-return from debug
+
+2016-05-13 16:43:21 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtp/Makefile.am:
+	  rtp: Ship gstrtpj2kcommon.h file to fix distcheck
+
+2015-04-30 14:43:04 +0200  Jesper Larsen <knorr.jesper@gmail.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Do not write index and header if idx is NULL
+	  Fixes criticals with e.g.
+	  videotestsrc num-buffers=1 ! identity drop-probability=1.0 ! avimux ! fakesink
+	  https://bugzilla.gnome.org/show_bug.cgi?id=748700
+
+2016-05-12 08:43:39 -0400  Aaron Boxer <boxerab@gmail.com>
+
+	* gst/rtp/gstrtpj2kpay.c:
+	  rtpj2kpay: manage T tile invalidation bit correctly, update tile id in header correctly.
+	  1. according to RFC, T bit is only set when either the RTP packet only contains the J2K main header, or the packet contains tile parts from multiple tiles. This is now being managed correctly in the code. The second scenario cannot happen with our payloader, since tile headers are always placed in their own RTP packet, and so a packet cannot contain tile parts from multiple tiles.
+	  However, I have added code to track if multiple tile parts are included in a single RTP packet, in case in the future we want to put header and data in same packet.
+	  2. Old code would set the tile id to zero for all J2K packets. This is now set correctly to the appropriate tile id.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745187
+
+2016-05-12 08:41:51 -0400  Aaron Boxer <boxerab@gmail.com>
+
+	* gst/rtp/gstrtpj2kpay.c:
+	  rtpj2kpay: manage fragmented headers correctly
+	  J2K main header framentation across multiple RTP packets is now handled correctly
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745187
+
+2016-05-11 15:04:26 -0400  Aaron Boxer <boxerab@gmail.com>
+
+	* gst/rtp/gstrtpj2kcommon.h:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kdepay.h:
+	* gst/rtp/gstrtpj2kpay.c:
+	* gst/rtp/gstrtpj2kpay.h:
+	  rtpj2k: move common code to shared header, code clean up
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745187
+
+2016-05-11 15:01:32 -0400  Aaron Boxer <boxerab@gmail.com>
+
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kpay.c:
+	  rtpj2k: update documentation
+	  https://bugzilla.gnome.org/show_bug.cgi?id=745187
+
+2016-05-12 14:43:43 +0200  Patricia Muscalu <patricia@axis.com>
+
+	* gst/auparse/gstauparse.c:
+	* gst/auparse/gstauparse.h:
+	  auparse: Fix sticky event misordering warning
+	  Make sure that src pad has caps before sending segment event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766359
+
+2016-05-11 09:28:13 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Don't notify about stats property changes while taking the session lock
+	  The signal handlers might want to actually get the value of the stats
+	  property, which would take the session lock again and deadlock.
+	  This was introduced by 2e960e70750a0cb7e1117d0c09d08597866a29ee.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-03 13:59:54 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: improve edts segment handling after seeks in push mode
+	  Properly handle edts segments for push-based operation seeking.
+	  We only support edts that a single segment that has media at the end,
+	  being preceeded by any number of gap segments.
+	  This also allows the qt segment rate to be respected after seeks
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765669
+
+2016-05-03 10:41:06 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: properly activate segment with rate != 1.0
+	  Also use the qt rate to identify the position within a qt segment
+	  to properly translate playback time to qt media time
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765669
+
+2016-05-03 11:45:01 +0200  Havard Graff <havard.graff@gmail.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* tests/check/elements/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix stall when receiving already lost packet
+	  When a packet arrives that has already been considered lost as part of a
+	  large gap the "lost timer" for this will be cancelled. If the remaining
+	  packets of this large gap never arrives, there will be missing entries
+	  in the queue and the loop function will keep waiting for these packets
+	  to arrive and never push another packet, effectively stalling the
+	  pipeline.
+	  The proposed fix conciders parts of a large gap definitely lost (since
+	  they are calculated from latency) and ignores the late arrivals.
+	  In practice the issue is rare since large gaps are scheduled immediately,
+	  and for the stall to happen the late arrival needs to be processed
+	  before this times out.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765933
+
+2016-05-05 14:18:21 +0200  Miguel París Díaz <mparisdiaz@gmail.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	  rtpsession: Take session lock when creating stats
+	  The access to the session hash table must happen while the session lock is
+	  taken, otherwise another thread might modify the hash table while we're
+	  creating the stats.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=766025
+
+2016-05-03 21:17:01 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: update segment when new duration is found
+	  Otherwise the old segment will have a shorter stop time and would
+	  cause the stream to end too early.
+
+2016-05-04 11:37:29 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: dismember activate_segment into 2 parts
+	  One that updates and push a new segment, the other will move the
+	  stream to the new segment starting position
+
+2016-05-04 09:30:27 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/dv/gstdvdec.c:
+	* ext/dv/gstdvdemux.c:
+	  dv: Use correct pixel-aspect-ratio values
+	  The previous ones resulted in odd display aspect ratios and were different
+	  from the ones used by e.g. ffmpeg. The new ones now result in display aspect
+	  ratios of 4:3 and 16:9.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765946
+
+2015-11-09 17:55:09 +0100  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* tests/check/elements/splitmux.c:
+	  tests: add splitmuxsrc test for new "format-location" signal
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753625
+
+2015-11-09 17:51:12 +0100  George Kiagiadakis <george.kiagiadakis@collabora.com>
+
+	* gst/multifile/gstsplitmuxsrc.c:
+	  splitmuxsrc: add a format-location signal that allows bypassing the location property
+	  This signal allows a user to directly return a sorted list of
+	  files to be joined, so that they don't have to follow the
+	  filename pattern that the "location" property expects.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753625
+
+2016-05-04 11:15:20 -0400  Xavier Claessens <xavier.claessens@collabora.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	  splitmuxsink: Fix deadlock case when source reaches EOS
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765072
+
+2016-05-03 22:59:27 -0700  Stefan Sauer <ensonic@users.sf.net>
+
+	* gst/wavparse/gstwavparse.c:
+	  wavparse: simplify and correct header scanning
+	  The wav spec tells that 'fmt' (and 'bext' if present) must come before 'data'.
+	  There is no requirement for 'fmt' to be first. We already had a list of chunks
+	  to skip, but it is easier to just skip any chunk while seeking for 'fmt'.
+	  This fixes reading files generated by ProTools.
+
+2016-04-30 22:15:13 +0900  Hyunjun Ko <zzoon@igalia.com>
+
+	* sys/osxaudio/Makefile.am:
+	* sys/osxaudio/gstosxaudio.c:
+	* sys/osxaudio/gstosxaudiodeviceprovider.c:
+	* sys/osxaudio/gstosxaudiodeviceprovider.h:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosink.h:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxaudio/gstosxaudiosrc.h:
+	  osxaudio: Support audio device provider on osx
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753265
+
+2016-05-01 15:09:27 +0200  Mark Nauwelaerts <mnauw@users.sourceforge.net>
+
+	* gst/avi/gstavimux.c:
+	  avimux: set audio header rate according to calculated bps in stop_file
+	  ... now that set_fields is no longer called there by
+	  e538608b3f90539003de21c1db238f3c9b946e30
+
+2016-04-29 15:04:11 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  qtdemux: Store the segment sequence number in the EOS events and SEGMENT_DONE events/message
+	  Also instead of storing it per stream, store it globally in the demuxer. It's
+	  the same for each stream anyway.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765806
+
+2016-04-11 10:54:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	  udpsrc: Always bind to ANY when address is a multicast address and not only on Windows
+	  For IPv6 addresses, binding to a multicast group does not work on Linux
+	  either. Always bind to ANY and then later join the multicast group.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764679
+
+2016-04-26 17:01:49 +0800  Song Bing <b06498@freescale.com>
+
+	* sys/ximage/ximageutil.c:
+	  ximageutil: shouldn't implement transform if don't support it
+	  shouldn't implement transform if don't support it. Or gst_buffer_copy_into()
+	  will print ERROR log.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765583
+
+2016-04-28 16:24:52 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/gstqtmux.c:
+	* gst/isomp4/gstqtmuxmap.c:
+	  qtmux: Allow MPEG-1 Layer 1 and 2 in addition to 3 in MP4
+	  Via the MPEG-4 Part 3 spec we can support the other layers too.
+	  Also correct the samples per frame calculation for MP3 if it's MPEG-2 or
+	  MPEG-2.5.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765725
+
+2016-04-27 20:46:34 +0300  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/rtsp/gstrtspsrc.c:
 	* gst/rtsp/gstrtspsrc.h:
-	  rtspsrc: add srtp rollover counters from mikey crypto sessions
-	  The server can send multiple crypto sessions, one for each SSRC with its
-	  own rollover counter. We parse this information and pass it to the SRTP
-	  decoder via the "request-key" signal.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=730540
+	  rtspsrc: Update caps for TCP whenever they change
+	  We only changed them for UDP so far, which caused the wrong seqnum-base and
+	  other information to be passed to rtpjitterbuffer/etc when seeking. This
+	  usually wasn't that much of a problem as the code there is robust enough, but
+	  every now and then it causes us to drop up to 32756 packets before we
+	  continue doing anything meaningful.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-04-27 20:33:38 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  rtpjitterbuffer: Ensure to not take caps with the wrong pt for getting the clock-rate
+	  Especially the caps on the pad might be out of date, and the new caps would be
+	  provided for the current pt via the request-pt-map signal.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-04-27 18:27:17 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtsp/gstrtspsrc.c:
+	  rtspsrc: Don't propagate spurious state change returns from internal elements further
+	  We handle them inside rtspsrc and override them in all other cases anyway, so
+	  do the same for "internal" state changes like PAUSED->PAUSED and
+	  PLAYING->PLAYING.
+	  This keeps unexpected NO_PREROLL to confuse state changes in GstBin.
+	  See also https://bugzilla.gnome.org/show_bug.cgi?id=760532
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765689
+
+2016-04-27 14:09:03 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Don't override maximum audio chunk size with the scale again just before writing it
+	  set_fields() should only be called in the beginning, otherwise we will never
+	  remember the maximum audio chunk size and write a wrong block align... which
+	  then causes wrong timestamps and other problems.
+
+2016-04-27 13:53:00 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/avi/gstavimux.c:
+	  avimux: Actually store the largest audio chunk size for the VBR case of MP2/MP3
+	  3ea338ce271e1f6a96d2ed49d4472b091f6f8b7e changed avimux to do that, but it
+	  never actually kept track of the max audio chunk for MP3 and MP2. These are
+	  knowing the hdr.scale only after parsing the frames instead of at setcaps
+	  time.
+
+2016-04-25 15:03:14 +0200  Mats Lindestam <matslm@axis.com>
+
+	* gst/udp/gstmultiudpsink.c:
+	  multiudpsink: Allow setting "socket-v6" without setting "socket" too
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764897
+
+2016-04-22 15:02:16 +0100  Mario Sanchez Prada <mario@endlessm.com>
+
+	* ext/vpx/gstvpxenc.c:
+	  vpxenc: Properly handle frames with too low duration
+	  When a frame's duration is too low, calling gst_util_uint64_scale()
+	  to scale its value can result into it being truncated to zero, which
+	  will cause the vpx encoder to return an VPX_CODEC_INVALID_PARAM error
+	  when trying to encode.
+	  To prevent this from happening, we simply ignore the duration when
+	  encoding if it becomes zero after scaling, logging a warning message.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765391
+
+2016-04-22 15:48:08 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: fix description of linear interlacing method
+
+2016-04-21 14:08:19 -0300  Thibault Saunier <tsaunier@gnome.org>
+
+	* gst/flv/gstflvmux.c:
+	  flv: Handle the case where we do not get any CollectData in handle_buffer
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765320
+
+2016-04-11 22:41:20 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Do not use unreliable framerate
+	  timescale/1 is unreliable value for framerate. Due to downstream
+	  element usually use framerate generated by qtdemux, let it be omitted
+	  until the framerate can be reliably calculated.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
+
+2016-04-21 12:53:33 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/isomp4/qtdemux.c:
+	* gst/isomp4/qtdemux.h:
+	  Revert "qtdemux: expose streams with first moof for fragmented format"
+	  This reverts commit d8bb6687ea251570c331038279a43d448167d6ad.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764733
+
+2016-02-09 17:17:09 +0000  Alex Ashley <bugzilla@ashley-family.net>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: support seeking of CENC encrypted streams
+	  When playing a stream that has been protected by DASH CENC, playback
+	  will fail if a seek is performed. Qtdemux produces the error "stream
+	  is protected using cenc, but no cenc protection system information
+	  has been found" and playback stops.
+	  The problem is that gst_qtdemux_reset() gets called as part of the
+	  FLUSH during a seek. This function frees the protection_system_ids
+	  array. When gst_qtdemux_configure_protected_caps() is called after the
+	  seek has completed, the protection_system_ids array is empty and
+	  qtdemux is unable to create the correct output caps for the protected
+	  stream.
+	  This commit changes it to only free the protection_system_ids on
+	  hard resets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=761787
+
+2016-04-18 14:33:10 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* gst/udp/gstudpsrc.c:
+	* gst/udp/gstudpsrc.h:
+	  udpsrc: add "retrieve-sender-address" property
+	  This allows disabling of sender address retrieval, which might
+	  be useful in certain scenarios, like when the socket is connected,
+	  or the sender address is not of interest (e.g. when receiving an
+	  MPEG-TS stream). Disabling sender address retrieval in those
+	  cases can have minor performance advantages.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=563323
+
+2015-11-26 13:15:06 +0100  Dimitrios Katsaros <patcherwork@gmail.com>
+
+	* sys/v4l2/v4l2_calls.c:
+	  v4l2: Change warning handling to break infinite message loop
+	  v4l2src can cause an "infinite message loop" when a base control exposed as a
+	  property is not provided by the device. In these cases, if in the warning message
+	  handling for the bus, the GST_DEBUG_BIN_TO_DOT_FILE* category of functions are used,
+	  the src lookup causes a new warning to be posted on the bus, causing a loop.
+	  This patch changes the warning for these controls so they are not posted on the bus.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=758703
 
 2016-04-15 10:44:02 -0400  Xavier Claessens <xavier.claessens@collabora.com>
 
@@ -1175,6 +2983,14 @@
 	  GOP in the mq was written in a new file.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=765072
 
+2016-04-15 19:59:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/audiofx/gstscaletempo.c:
+	  scaletempo: S16 uses S32 temporary buffers, float/double their own type
+	  Make sure to allocate not only a S16 buffer for S16 but a twice as big one to
+	  hold S32.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=765116
+
 2016-04-16 02:17:26 +1000  Jan Schmidt <jan@centricular.com>
 
 	* ext/pulse/pulsesink.c:
@@ -1190,13 +3006,37 @@
 	  more than 10ms to generate.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=657076
 
-2016-04-15 19:59:15 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-04-15 00:46:56 -0700  Aleix Conchillo Flaqué <aleix@oblong.com>
 
-	* gst/audiofx/gstscaletempo.c:
-	  scaletempo: S16 uses S32 temporary buffers, float/double their own type
-	  Make sure to allocate not only a S16 buffer for S16 but a twice as big one to
-	  hold S32.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=765116
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtspsrc: add srtp rollover counters from mikey crypto sessions
+	  The server can send multiple crypto sessions, one for each SSRC with its
+	  own rollover counter. We parse this information and pass it to the SRTP
+	  decoder via the "request-key" signal.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=730540
+
+2016-04-15 14:35:07 +0000  Jan Schmidt <jan@centricular.com>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix debug output when resyncing
+	  Don't output the pointer value of the time() function as a timestamp
+	  by using the correct variable.
+	  Fixes build on Raspberry Pi 3.
+
+2016-04-15 11:36:36 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* ext/soup/gstsouphttpclientsink.c:
+	  souphttpclientsink: If no proxy is set by properties, use the default libsoup proxy resolver
+	  That is, use whatever system settings there might exist. This is the same
+	  behaviour we use in the HTTP source.
+
+2016-04-14 10:01:28 +0100  Julien Isorce <j.isorce@samsung.com>
+
+	* README:
+	* common:
+	  Automatic update of common submodule
+	  From 6f2d209 to ac2f647
 
 2016-04-13 18:45:07 +0100  Damian Ziobro <damian@xmementoit.com>
 
@@ -1205,23 +3045,18 @@
 	  splitmuxsink: Add max_files_number property
 	  https://bugzilla.gnome.org/show_bug.cgi?id=744612
 
-2016-04-12 10:15:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+2016-04-13 10:57:03 -0700  Reynaldo H. Verdejo Pinochet <reynaldo@osg.samsung.com>
 
-	* gst/rtpmanager/rtpjitterbuffer.c:
-	  rtpjitterbuffer: Fix rtp_jitter_buffer_get_ts_diff() fill level calculation
-	  The head of the queue is the oldest packet (as in lowest seqnum), the tail is
-	  the newest packet. To calculate the fill level, we should calculate tail-head
-	  while considering wraparounds. Not the other way around.
-	  Other code is already doing this in the correct order.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764889
+	* gst/videomixer/videomixer2.c:
+	  videomixer: drop reference to videomixer 2
+	  Fix a small grammar mistake on "overlayed" while at it.
 
-2016-04-11 08:33:17 +0900  Seungha Yang <sh.yang@lge.com>
+2016-04-13 09:57:16 +0300  Sebastian Dröge <sebastian@centricular.com>
 
-	* gst/isomp4/qtdemux.c:
-	  qtdemux: Fix parsing segment duration of empty edit list box
-	  For empty edit list, segment-duration in edit list box should not be
-	  used for segment event.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764870
+	* sys/ximage/ximageutil.c:
+	  ximage: Initialize all fields in the meta explicitly
+	  The meta is not allocated with all fields initialized to zeroes.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764902
 
 2016-04-12 09:41:00 +0000  Paolo Pettinato <ppettina@cisco.com>
 
@@ -1237,6 +3072,181 @@
 	  new caps, causing crashes and worse.
 	  Also don't do anything if the same caps are set twice.
 
+2016-04-12 15:00:31 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	  deinterlace: Instead of confusing crashes later, just error out immediately if mapping a video frame fails
+	  This probably still crashes but at least we get some hint about what goes
+	  wrong instead of random behaviour later.
+
+2016-04-12 11:38:51 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: check stream is available in PIFF parser
+	  qtdemux->streams is an array, it will never evaluate to true when comparing
+	  to NULL. Instead we want to check the number of streams to make sure the
+	  stream is available.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753614
+	  CID 1358389
+
+2016-04-12 11:37:36 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  Revert "qtdemux: redundant check in PIFF parser"
+	  This reverts commit 41e10524f3babdd92aac8c8c9d5b9cdf184c2d4e.
+
+2016-04-12 11:05:50 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: redundant check in PIFF parser
+	  qtdemux->streams is an array of size GST_QTDEMUX_MAX_STREAMS, it will never
+	  evaluate to true when comparing to NULL.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753614
+	  CID 1358389
+
+2016-04-12 11:56:08 +0200  Wim Taymans <wtaymans@redhat.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2: avoid leaking GValues
+	  unset the GValue if we don't use it any more to avoid leaks.
+
+2016-04-12 10:15:39 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	  rtpjitterbuffer: Fix rtp_jitter_buffer_get_ts_diff() fill level calculation
+	  The head of the queue is the oldest packet (as in lowest seqnum), the tail is
+	  the newest packet. To calculate the fill level, we should calculate tail-head
+	  while considering wraparounds. Not the other way around.
+	  Other code is already doing this in the correct order.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764889
+
+2016-04-11 10:44:56 +0300  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/Makefile.am:
+	  rtpmanager: It's GST_LIBS, not GST_LIBS_LIBS
+
+2016-04-11 08:33:17 +0900  Seungha Yang <sh.yang@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Fix parsing segment duration of empty edit list box
+	  For empty edit list, segment-duration in edit list box should not be
+	  used for segment event.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764870
+
+2016-04-08 13:05:57 +0200  Nicola Murino <nicola.murino@gmail.com>
+
+	* gst/matroska/matroska-mux.c:
+	  matroskamux: make timecodescale configurable
+	  In some use cases the default timecodescale will produce blocks with the same timestamp
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764769
+
+2016-04-07 13:01:52 +0200  Edward Hervey <edward@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jiterbuffer: Move assertion to the right location
+	  We shouldn't have "late" lost timers at that point
+
+2016-03-02 14:25:24 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: Speed up lost timeout handling
+	  When downstream blocks, "lost" timers are created to notify the
+	  outgoing thread that packets are lost.
+	  The problem is that for high packet-rate streams, we might end up with
+	  a big list of lost timeouts (had a use-case with ~1000...).
+	  The problem isn't so much the amount of lost timeouts to handle, but
+	  rather the way they were handled. All timers would first be iterated,
+	  then the one selected would be handled ... to re-iterate the list again.
+	  All of this is being done while the jbuf lock is taken, which in some use-cases
+	  would return in holding that lock for 10s... blocking any buffers from
+	  being accepted in input... which would then arrive late ... which would
+	  create plenty of lost timers ... which would cause the same issue.
+	  In order to avoid that situation, handle the lost timers immediately when
+	  iterating the list of pending timers. This modifies the complexity from
+	  a quadratic to a linear complexity.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762988
+
+2016-03-02 14:23:01 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: Don't create lost events if we don't need them
+	  When "do-lost" is set to FALSE we don't use/send the lost events.
+	  In that case, don't create them to start with :)
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762988
+
+2016-03-02 13:57:07 +0100  Edward Hervey <edward@centricular.com>
+
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	  jitterbuffer: Add tracing of lock usage
+	  Helps with debugging lock usage
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762988
+
+2016-02-10 19:56:59 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* sys/v4l2/gstv4l2deviceprovider.c:
+	  v4l2: Don't leak v4l2 objects and props on probe errors
+
+2016-04-04 17:42:03 +0100  Tim-Philipp Müller <tim@centricular.com>
+
+	* tests/check/elements/rtp-payloading.c:
+	  tests: add unit test for jpeg depayloader packet loss handling
+	  Make sure it always outputs something that looks like a valid
+	  JPEG frame, ie. starts with an SOI marker and ends with an EOI
+	  marker.
+
+2016-03-15 03:25:26 +0530  Nirbheek Chauhan <nirbheek@centricular.com>
+
+	* gst/rtp/gstrtpjpegdepay.c:
+	  rtpjpegdepay: Don't send invalid frames downstream after packet loss or a DISCONT
+	  After clearing the adapter due to a DISCONT, as might happen when some packet(s)
+	  have been lost, the depayloader was pushing data into the adapter (which had no
+	  header due to the clear), creating a headerless frame out of it, and sending it
+	  downstream. The downstream decoder would then usually ignore it; unless there
+	  were lots of DISCONTs from the jitterbuffer in which case the decoder would reach
+	  its max_errors limit and throw an element error. Now we just discard that data.
+	  It is probaby not worth trying to salvage this data because non-progressive
+	  jpeg does not degrade gracefully and makes the video unwatchable even with
+	  low packet loss such as 3-5%.
+
+2016-01-05 16:15:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpbin.h:
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* gst/rtpmanager/rtpjitterbuffer.c:
+	* gst/rtpmanager/rtpjitterbuffer.h:
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/rtsp/gstrtspsrc.h:
+	  rtpjitterbuffer: Add RFC7273 media clock handling
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762259
+
+2015-07-10 09:44:15 +0200  Philippe Normand <philn@igalia.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: PIFF box detection and parsing support
+	  The PIFF data is stored in a custom UUID box which is parsed and the
+	  crypto_info of the element is updated accordingly. This allows
+	  downstream decryptors to process and decrypt the protected content.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=753614
+
+2016-04-01 12:15:05 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/rtp/gstrtpvorbisdepay.c:
+	  rtpvorbisdepay: remove dead code
+	  payload_buffer hasn't been assigned a value before the jumps to
+	  switch_failed or packet_short. So the value must be NULL. No need
+	  to unmap and unref.
+	  CID #1316476
+
+2016-03-31 14:57:20 +0100  Luis de Bethencourt <luisbg@osg.samsung.com>
+
+	* gst/rtp/gstrtph263pay.c:
+	  rtph263pay: fix leak
+	  Free memory of current macroblock once it isn't needed so it isn't leaked
+	  by the call of the gst_rtp_h263_pay_B_mbfinder function.
+	  if (!(mac = gst_rtp_h263_pay_B_mbfinder (context, gob, mac, mb))) {
+	  CID 1212156
+
 2016-03-31 02:15:04 +1100  Jan Schmidt <jan@centricular.com>
 
 	* gst/multifile/gstsplitmuxsink.c:
@@ -1279,6 +3289,25 @@
 	  that's bigger than previous buffer and smaller than next.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=763711
 
+2015-11-17 18:17:35 +0100  Stian Selnes <stian@pexip.com>
+
+	* gst/rtpmanager/rtpsession.c:
+	* gst/rtpmanager/rtpsession.h:
+	* tests/check/elements/rtpsession.c:
+	  rtpsession: Add new signal 'on-app-rtcp'
+	  Similar to the 'on-feedback-rtcp' signal, but emitted for RTCP APP
+	  packets.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762217
+
+2016-03-24 15:57:11 +0900  Minjae Kim <nate.kim@lge.com>
+
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpsession.c:
+	  rtpmanager: Set to initial value for 'ntpns' in get_current_times()
+	  Initialize "ntpns" variable to -1 as the OE compiler for some reason doesn't
+	  realize that the variable is set in all code paths.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764119
+
 2016-01-31 11:08:38 +1100  Sebastian Dröge <sebastian@centricular.com>
 
 	* gst/rtp/gstrtpjpegpay.c:
@@ -1288,6 +3317,110 @@
 	  be no reason to reject their streams.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=761345
 
+2016-03-24 19:23:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+
+	* ext/vpx/gstvpxdec.c:
+	  vpxdec: Use threads on multi-core systems
+	  This is a redo of commit b848c1b6ffd1e508228820a013f94fb445e4777f. The
+	  code was lost when the elements where ported to use a baseclass.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=764169
+
+2016-02-29 23:40:03 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+
+	* gst/multifile/gstsplitmuxsink.c:
+	* tests/check/elements/splitmux.c:
+	  splitmuxsink: only try to create internal sink if it doesn't exist
+	  This allows splitmuxsink to be reused after being put to NULL.
+	  Test included
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762893
+
+2015-10-01 13:41:23 +0200  Aurélien Zanelli <aurelien.zanelli@parrot.com>
+
+	* sys/v4l2/gstv4l2object.c:
+	  v4l2object: probe all colorspace supported by device
+	  A device can support more than one colorspace for a given image
+	  dimension and pixel format. So we have to probe all the supported
+	  colorspace and not only rely on the default one. Otherwise we could end
+	  up with negotiation failure if the caps colorimetry field don't match
+	  the v4l2 device default one even if the v4l2 could support such
+	  colorimetry.
+	  This patch enable probing if colorspace for both capture and output
+	  device. It really makes sense for output device since the colorspace
+	  shall be set by the application and a little less for capture device
+	  which, at the moment, shall provide the colorspace; ie: the v4l2
+	  specification seems to not take into account the fact that a capture
+	  device could do colorspace conversion.
+	  As a side effet, probing takes some times and so sligthly delay v4l2
+	  initialization. Note that this patch only probe colorspace and not all
+	  colorspace, matrix, transfer and range combination to avoid taking too
+	  much time, especially with low-speed devices as full probing do 1782
+	  ioctl.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=755937
+
+2016-03-24 16:21:56 +0100  Edward Hervey <edward@centricular.com>
+
+	* tests/check/elements/flvdemux.c:
+	  check: Fix indentation
+
+2016-03-24 16:20:39 +0100  Edward Hervey <edward@centricular.com>
+
+	* tests/check/elements/flvdemux.c:
+	  tests: Remove unused variables
+
+2016-03-16 20:26:16 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* gst/interleave/deinterleave.c:
+	  deinterleave: Return the current caps on the srcpads on caps queries
+	  It's not like we could accept any other caps here. The caps are decided by the
+	  upstream caps event.
+	  Also keep the filter order intact when filtering the results against the
+	  filter caps.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763326
+
+2016-03-24 15:14:23 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Fix qtdemux memory leak in src_convert function
+	  If we don't find the index of the sample correctly in src_convert function,
+	  we have to unref about the qtdemux before returning value.
+	  So, I have modify it about instead pass qtdemux as a parameter into
+	  src_convert function.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763973
+
+2016-03-22 13:15:20 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Add check condition for fail case in get_duration function
+	  Currently, get_duration function always return the TRUE even though
+	  it can't be set duration correctly. So, we need to add the else condition
+	  about the fail case. Also, we already set the GST_CLOCK_TIME_NONE
+	  in this function. So I have modify it which is related code in some
+	  function.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763968
+
+2016-03-21 10:11:23 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
+
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Modify data type of duration in handle_src_query function
+	  Data type of duration need to modify from guint64 to GstClockTime
+	  for consistency in handle_src_query function.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763965
+
+2016-03-18 14:40:58 +0200  Vivia Nikolaidou <vivia@ahiru.eu>
+
+	* tests/check/elements/deinterlace.c:
+	  deinterlace: Added unit tests for field=auto
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763869
+
+2016-03-17 21:21:02 +0200  Vivia Nikolaidou <vivia@toolsonair.com>
+
+	* gst/deinterlace/gstdeinterlace.c:
+	* gst/deinterlace/gstdeinterlace.h:
+	  deinterlace: Added "auto" fields mode
+	  The "auto" fields mode will detect the upstream and downstream framerates and
+	  will decide to deinterlace all or only top fields.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763869
+
 2016-03-16 20:17:55 +0100  Havard Graff <havard.graff@gmail.com>
 
 	* gst/flv/gstflvdemux.c:
@@ -1299,24 +3432,259 @@
 	  would happen every time.
 	  https://bugzilla.gnome.org/show_bug.cgi?id=763780
 
-2016-02-29 23:40:03 -0300  Thiago Santos <thiagoss@osg.samsung.com>
+2016-03-04 10:30:12 +0900  Vineeth TM <vineeth.tm@samsung.com>
 
-	* gst/multifile/gstsplitmuxsink.c:
-	* tests/check/elements/splitmux.c:
-	  splitmuxsink: only try to create internal sink if it doesn't exist
-	  This allows splitmuxsink to be reused after being put to NULL.
-	  Test included
-	  https://bugzilla.gnome.org/show_bug.cgi?id=762893
-
-2016-03-24 15:14:23 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
-
+	* ext/aalib/gstaasink.c:
+	* ext/cairo/gstcairooverlay.c:
+	* ext/dv/gstdvdec.c:
+	* ext/dv/gstdvdemux.c:
+	* ext/flac/gstflacdec.c:
+	* ext/flac/gstflacenc.c:
+	* ext/flac/gstflactag.c:
+	* ext/gdk_pixbuf/gstgdkpixbufdec.c:
+	* ext/gdk_pixbuf/gstgdkpixbufoverlay.c:
+	* ext/gdk_pixbuf/gstgdkpixbufsink.c:
+	* ext/jack/gstjackaudiosink.c:
+	* ext/jack/gstjackaudiosrc.c:
+	* ext/jpeg/gstjpegdec.c:
+	* ext/jpeg/gstjpegenc.c:
+	* ext/jpeg/gstsmokedec.c:
+	* ext/jpeg/gstsmokeenc.c:
+	* ext/libcaca/gstcacasink.c:
+	* ext/libpng/gstpngdec.c:
+	* ext/libpng/gstpngenc.c:
+	* ext/pulse/pulsesink.c:
+	* ext/pulse/pulsesrc.c:
+	* ext/raw1394/gstdv1394src.c:
+	* ext/raw1394/gsthdv1394src.c:
+	* ext/shout2/gstshout2.c:
+	* ext/soup/gstsouphttpclientsink.c:
+	* ext/soup/gstsouphttpsrc.c:
+	* ext/speex/gstspeexdec.c:
+	* ext/speex/gstspeexenc.c:
+	* ext/taglib/gstapev2mux.cc:
+	* ext/taglib/gstid3v2mux.cc:
+	* ext/vpx/gstvp8dec.c:
+	* ext/vpx/gstvp8enc.c:
+	* ext/vpx/gstvp9dec.c:
+	* ext/vpx/gstvp9enc.c:
+	* ext/wavpack/gstwavpackdec.c:
+	* ext/wavpack/gstwavpackenc.c:
+	* gst/alpha/gstalpha.c:
+	* gst/alpha/gstalphacolor.c:
+	* gst/apetag/gstapedemux.c:
+	* gst/audiofx/audiopanorama.c:
+	* gst/audiofx/gstscaletempo.c:
+	* 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:
+	* gst/auparse/gstauparse.c:
+	* gst/autodetect/gstautoaudiosink.c:
+	* gst/autodetect/gstautoaudiosrc.c:
+	* gst/autodetect/gstautovideosink.c:
+	* gst/autodetect/gstautovideosrc.c:
+	* gst/avi/gstavidemux.c:
+	* gst/avi/gstavimux.c:
+	* gst/avi/gstavisubtitle.c:
+	* gst/cutter/gstcutter.c:
+	* gst/debugutils/breakmydata.c:
+	* gst/debugutils/cpureport.c:
+	* gst/debugutils/gstcapsdebug.c:
+	* gst/debugutils/gstcapssetter.c:
+	* gst/debugutils/gstnavigationtest.c:
+	* gst/debugutils/gstnavseek.c:
+	* gst/debugutils/gstpushfilesrc.c:
+	* gst/debugutils/gsttaginject.c:
+	* gst/debugutils/progressreport.c:
+	* gst/debugutils/rndbuffersize.c:
+	* gst/debugutils/testplugin.c:
+	* gst/deinterlace/gstdeinterlace.c:
+	* gst/dtmf/gstdtmfsrc.c:
+	* gst/dtmf/gstrtpdtmfdepay.c:
+	* gst/dtmf/gstrtpdtmfsrc.c:
+	* gst/effectv/gstaging.c:
+	* gst/effectv/gstdice.c:
+	* gst/effectv/gstedge.c:
+	* gst/effectv/gstop.c:
+	* gst/effectv/gstquark.c:
+	* gst/effectv/gstradioac.c:
+	* gst/effectv/gstrev.c:
+	* gst/effectv/gstripple.c:
+	* gst/effectv/gstshagadelic.c:
+	* gst/effectv/gststreak.c:
+	* gst/effectv/gstvertigo.c:
+	* gst/effectv/gstwarp.c:
+	* gst/flv/gstflvdemux.c:
+	* gst/flv/gstflvmux.c:
+	* gst/goom/gstgoom.c:
+	* gst/goom2k1/gstgoom.c:
+	* gst/icydemux/gsticydemux.c:
+	* gst/id3demux/gstid3demux.c:
+	* gst/imagefreeze/gstimagefreeze.c:
+	* gst/interleave/deinterleave.c:
+	* gst/interleave/interleave.c:
+	* gst/isomp4/gstrtpxqtdepay.c:
 	* gst/isomp4/qtdemux.c:
-	  qtdemux: Fix qtdemux memory leak in src_convert function
-	  If we don't find the index of the sample correctly in src_convert function,
-	  we have to unref about the qtdemux before returning value.
-	  So, I have modify it about instead pass qtdemux as a parameter into
-	  src_convert function.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=763973
+	* gst/law/alaw-decode.c:
+	* gst/law/alaw-encode.c:
+	* gst/law/mulaw-decode.c:
+	* gst/law/mulaw-encode.c:
+	* gst/level/gstlevel.c:
+	* gst/matroska/matroska-demux.c:
+	* gst/matroska/matroska-mux.c:
+	* gst/matroska/matroska-parse.c:
+	* gst/matroska/webm-mux.c:
+	* gst/monoscope/gstmonoscope.c:
+	* gst/multifile/gstmultifilesink.c:
+	* gst/multifile/gstmultifilesrc.c:
+	* gst/multifile/gstsplitfilesrc.c:
+	* gst/multifile/gstsplitmuxsink.c:
+	* gst/multifile/gstsplitmuxsrc.c:
+	* gst/multipart/multipartdemux.c:
+	* gst/multipart/multipartmux.c:
+	* gst/replaygain/gstrganalysis.c:
+	* gst/replaygain/gstrglimiter.c:
+	* gst/replaygain/gstrgvolume.c:
+	* gst/rtp/gstasteriskh263.c:
+	* gst/rtp/gstrtpL16depay.c:
+	* gst/rtp/gstrtpL16pay.c:
+	* gst/rtp/gstrtpL24depay.c:
+	* gst/rtp/gstrtpL24pay.c:
+	* gst/rtp/gstrtpac3depay.c:
+	* gst/rtp/gstrtpac3pay.c:
+	* gst/rtp/gstrtpamrdepay.c:
+	* gst/rtp/gstrtpamrpay.c:
+	* gst/rtp/gstrtpbvdepay.c:
+	* gst/rtp/gstrtpbvpay.c:
+	* gst/rtp/gstrtpceltdepay.c:
+	* gst/rtp/gstrtpceltpay.c:
+	* gst/rtp/gstrtpdvdepay.c:
+	* gst/rtp/gstrtpdvpay.c:
+	* gst/rtp/gstrtpg722depay.c:
+	* gst/rtp/gstrtpg722pay.c:
+	* gst/rtp/gstrtpg723depay.c:
+	* gst/rtp/gstrtpg723pay.c:
+	* gst/rtp/gstrtpg726depay.c:
+	* gst/rtp/gstrtpg726pay.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/gstrtph265depay.c:
+	* gst/rtp/gstrtph265pay.c:
+	* gst/rtp/gstrtpilbcdepay.c:
+	* gst/rtp/gstrtpilbcpay.c:
+	* gst/rtp/gstrtpj2kdepay.c:
+	* gst/rtp/gstrtpj2kpay.c:
+	* gst/rtp/gstrtpjpegdepay.c:
+	* gst/rtp/gstrtpjpegpay.c:
+	* gst/rtp/gstrtpklvdepay.c:
+	* gst/rtp/gstrtpklvpay.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/gstrtpmparobustdepay.c:
+	* gst/rtp/gstrtpmpvdepay.c:
+	* gst/rtp/gstrtpmpvpay.c:
+	* gst/rtp/gstrtpopusdepay.c:
+	* gst/rtp/gstrtpopuspay.c:
+	* gst/rtp/gstrtppcmadepay.c:
+	* gst/rtp/gstrtppcmapay.c:
+	* gst/rtp/gstrtppcmudepay.c:
+	* gst/rtp/gstrtppcmupay.c:
+	* gst/rtp/gstrtpqcelpdepay.c:
+	* gst/rtp/gstrtpqdmdepay.c:
+	* gst/rtp/gstrtpsbcdepay.c:
+	* gst/rtp/gstrtpsbcpay.c:
+	* gst/rtp/gstrtpsirendepay.c:
+	* gst/rtp/gstrtpsirenpay.c:
+	* gst/rtp/gstrtpspeexdepay.c:
+	* gst/rtp/gstrtpspeexpay.c:
+	* gst/rtp/gstrtpstreamdepay.c:
+	* gst/rtp/gstrtpstreampay.c:
+	* gst/rtp/gstrtpsv3vdepay.c:
+	* gst/rtp/gstrtptheoradepay.c:
+	* gst/rtp/gstrtptheorapay.c:
+	* gst/rtp/gstrtpvorbisdepay.c:
+	* gst/rtp/gstrtpvorbispay.c:
+	* gst/rtp/gstrtpvp8depay.c:
+	* gst/rtp/gstrtpvp8pay.c:
+	* gst/rtp/gstrtpvp9depay.c:
+	* gst/rtp/gstrtpvp9pay.c:
+	* gst/rtp/gstrtpvrawdepay.c:
+	* gst/rtp/gstrtpvrawpay.c:
+	* gst/rtpmanager/gstrtpbin.c:
+	* gst/rtpmanager/gstrtpdtmfmux.c:
+	* gst/rtpmanager/gstrtpjitterbuffer.c:
+	* gst/rtpmanager/gstrtpmux.c:
+	* gst/rtpmanager/gstrtpptdemux.c:
+	* gst/rtpmanager/gstrtprtxqueue.c:
+	* gst/rtpmanager/gstrtprtxreceive.c:
+	* gst/rtpmanager/gstrtprtxsend.c:
+	* gst/rtpmanager/gstrtpsession.c:
+	* gst/rtpmanager/gstrtpssrcdemux.c:
+	* gst/rtsp/gstrtpdec.c:
+	* gst/rtsp/gstrtspsrc.c:
+	* gst/shapewipe/gstshapewipe.c:
+	* gst/smpte/gstsmpte.c:
+	* gst/smpte/gstsmptealpha.c:
+	* gst/udp/gstdynudpsink.c:
+	* gst/udp/gstmultiudpsink.c:
+	* gst/udp/gstudpsrc.c:
+	* gst/videobox/gstvideobox.c:
+	* gst/videocrop/gstaspectratiocrop.c:
+	* gst/videocrop/gstvideocrop.c:
+	* gst/videofilter/gstgamma.c:
+	* gst/videofilter/gstvideobalance.c:
+	* gst/videofilter/gstvideoflip.c:
+	* gst/videofilter/gstvideomedian.c:
+	* gst/videomixer/videomixer2.c:
+	* gst/wavenc/gstwavenc.c:
+	* gst/wavparse/gstwavparse.c:
+	* gst/y4m/gsty4mencode.c:
+	* sys/directsound/gstdirectsoundsink.c:
+	* sys/oss/gstosssink.c:
+	* sys/oss/gstosssrc.c:
+	* sys/osxaudio/gstosxaudiosink.c:
+	* sys/osxaudio/gstosxaudiosrc.c:
+	* sys/osxvideo/osxvideosink.m:
+	* sys/sunaudio/gstsunaudiosink.c:
+	* sys/sunaudio/gstsunaudiosrc.c:
+	* sys/waveform/gstwaveformsink.c:
+	* sys/ximage/gstximagesrc.c:
+	* tests/check/elements/autodetect.c:
+	* tests/check/elements/qtmux.c:
+	  good: use new gst_element_class_add_static_pad_template()
+	  https://bugzilla.gnome.org/show_bug.cgi?id=763076
+
+2016-03-04 09:42:44 +0100  David Buchmann <david.buchmann@gmail.com>
+
+	* tests/check/elements/flvmux.c:
+	  flvmux: Test to verify flvmux handles DTS with GST_CLOCK_TIME NONE
+	  https://bugzilla.gnome.org/show_bug.cgi?id=762207
 
 2015-11-04 14:51:19 +0900  Jihae Yi <jihae.yi@samsung.com>
 
@@ -1324,13 +3692,18 @@
 	  rtspsrc: avoid potentially overflowing expression
 	  https://bugzilla.gnome.org/show_bug.cgi?id=757569
 
-2016-03-24 19:23:12 -0400  Nicolas Dufresne <nicolas.dufresne@collabora.com>
+2016-03-22 10:43:45 +0900  Jimmy Ohn <yongjin.ohn@lge.com>
 
-	* ext/vpx/gstvpxdec.c:
-	  vpxdec: Use threads on multi-core systems
-	  This is a redo of commit b848c1b6ffd1e508228820a013f94fb445e4777f. The
-	  code was lost when the elements where ported to use a baseclass.
-	  https://bugzilla.gnome.org/show_bug.cgi?id=764169
+	* gst/isomp4/qtdemux.c:
+	  qtdemux: Add the function to get channels and sample rate for AAC
+	  Add aac_get_channels and sample_rate function to get these value for
+	  AAC.
+	  https://bugzilla.gnome.org/show_bug.cgi?id=749110
+
+2016-03-24 13:33:02 +0200  Sebastian Dröge <sebastian@centricular.com>
+
+	* configure.ac:
+	  Back to development
 
 === release 1.8.0 ===
 
diff --git a/Makefile.in b/Makefile.in
index 6e10b08..a3ce7c4 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -109,6 +109,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -355,6 +356,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -461,6 +463,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -528,6 +533,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1174,8 +1180,11 @@
 
 update-exports:
 	make check-exports 2>&1 | patch -p1
-	git add win32/common/libgst*.def
-	git diff --cached -- win32/common/
+	if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+	  git checkout "$(top_srcdir)/win32/common/libgstgl.def";  \
+	fi
+	git add $(top_srcdir)/win32/common/libgst*.def
+	git diff --cached -- $(top_srcdir)/win32/common/
 	echo '^^^--- updated and staged changes above'
 
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/NEWS b/NEWS
index 26b271c..072b2df 100644
--- a/NEWS
+++ b/NEWS
@@ -1,29 +1 @@
-### 1.8.3
-
-The third 1.8 bug-fix release (1.8.3) was released on 19 August 2016.
-This release only contains bugfixes and it should be safe to update from 1.8.3.
-
-#### Major bugfixes in 1.8.3
-
- - Fix Android build scripts on OS X and Windows
- - Fix stepping in PAUSED state in certain circumstances
- - Fix jackaudiosink hang when exiting
- - Fix udpsrc receiving multicast packets not only from the selected
-   multicast group
- - Fix unnecessary decoding of unselected streams in GES
- - Fix (multi)udpsink randomly not sending to clients
- - Fix ALL\_BOTH probes not considering EVENT\_FLUSH
- - Fix average input rate calculations in queue2
- - Fix various locking issues causing deadlock in adaptivedemux
- - Fix gst-libav encoders to correctly produce codec\_data in caps
- - Add Wayland, Windows and Rasberry Pi support to the QML GL video sink
- - Add support for building with OpenH264 1.6
- - Add support for controlling deinterlacing in GES video sources
- - ... and many, many more!
-
-For a full list of bugfixes see [Bugzilla][buglist-1.8.3]. Note that this is
-not the full list of changes. For the full list of changes please refer to the
-GIT logs or ChangeLogs of the particular modules.
-
-[buglist-1.8.3]: https://bugzilla.gnome.org/buglist.cgi?bug_status=RESOLVED&bug_status=VERIFIED&classification=Platform&limit=0&list_id=145400&order=bug_id&product=GStreamer&query_format=advanced&resolution=FIXED&target_milestone=1.8.3
-
+This is GStreamer 1.9.90
diff --git a/README b/README
index fa53f95..48e2c9f 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-GStreamer 1.7.x development series
+GStreamer 1.9.x development series
 
 WHAT IT IS
 ----------
diff --git a/RELEASE b/RELEASE
index fd7cf9b..e8db314 100644
--- a/RELEASE
+++ b/RELEASE
@@ -1,15 +1,13 @@
 
-Release notes for GStreamer Good Plugins 1.8.3
+Release notes for GStreamer Good Plugins 1.9.90
 
-The GStreamer team is proud to announce the third bugfix release in the stable
-1.8 release series of your favourite cross-platform multimedia framework!
+The GStreamer team is pleased to announce the first release candidate of the
+stable 1.10 release series. The 1.10 release series is adding new features on
+top of the 1.0, 1.2, 1.4, 1.6 and 1.8 series and is part of the API and
+ABI-stable 1.x release series of the GStreamer multimedia framework.
 
 
-This release only contains bugfixes and it is safe to update from 1.8.x. For a
-full list of bugfixes see Bugzilla.
-
-
-See /releases/1.8/ for the full release notes.
+Binaries for Android, iOS, Mac OS X and Windows will be provided in the next days.
 
 
 "Such ingratitude.  After all the times I've saved your life."
@@ -55,19 +53,17 @@
 
 Bugs fixed in this release
      
-      * 767666 : splitmuxsink: infinite change_state loop
-      * 747275 : jackaudiosink: hangs when jackd exits
-      * 766025 : rtpsession: race condition accessing ssrcs hash table
-      * 766970 : aacparse: sticky event criticals with RTL HD mpeg-ts stream
-      * 767496 : flvdemux: won't parse a date string with trailing whitespace
-      * 767680 : rtph265pay: fix nal type parsing an sps/pps/vps insertion via config-interval property
-      * 767980 : udpsrc: Receiving multicast packets from all addresses, not just the configured
-      * 768232 : rtspsrc: protocols aren't reset after rtsp redirect
-      * 768268 : qtdemux: Push caps only when it was updated
-      * 768509 : matroskamux: Segmentation fault in string comparison
-      * 768623 : udpsrc: There is no struct in_pktinfo on FreeBSD
-      * 769514 : splitmuxsink: Deadlock
-      * 769773 : multiudpsink: Randomly ceases to send to clients
+      * 751559 : qtmux: Implement the preset interface.
+      * 766990 : multifilesink: 'buffer'-mode writes no longer atomic (regression)
+      * 769278 : aacparse: a few fixes and improvements for LOAS parsing
+      * 769757 : rtpjitterbuffer: Fix calculating next_seqnum when dropping old buffers from a full queue.
+      * 769768 : rtpjitterbuffer: lots of improvements around RTX
+      * 770951 : qtdemux: Crash with no cenc auxiliary offset available
+      * 771272 : jackaudiosink: hangs when jackd changes sample rate and/or buffer size
+      * 771278 : udpsrc: Compilation error on NetBSD
+      * 771395 : autodetect: Use gst_bin_set_suppressed_flags() API
+      * 772143 : qtmux: Don't calculate PTS offset and DTS with GST_CLOCK_TIME_NONE
+      * 772228 : tagschecking: Unit test fails because it sends untimestamped buffers to qtdemux
 
 ==== Download ====
 
@@ -104,16 +100,21 @@
         
 Contributors to this release
     
-      * Brad Lackey
+      * Arun Raghavan
+      * Georg Lippitsch
+      * Havard Graff
       * Jan Schmidt
-      * Jonas Holmberg
-      * Jürgen Slowack
-      * Miguel París Díaz
+      * Mathieu Duponchelle
       * Nicolas Dufresne
-      * Reynaldo H. Verdejo Pinochet
+      * Olivier Crête
       * Sebastian Dröge
-      * Seungha Yang
+      * Stian Selnes
+      * Thibault Saunier
       * Thomas Bluemel
+      * Thomas Klausner
       * Thomas Scheuermann
       * Tim-Philipp Müller
+      * Vincent Penquerc'h
+      * Wonchul Lee
+      * Xabier Rodriguez Calvar
  
\ No newline at end of file
diff --git a/aclocal.m4 b/aclocal.m4
index 18f8476..8cd7778 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1480,6 +1480,7 @@
 m4_include([common/m4/as-libtool.m4])
 m4_include([common/m4/as-version.m4])
 m4_include([common/m4/ax_create_stdint_h.m4])
+m4_include([common/m4/ax_pthread.m4])
 m4_include([common/m4/gst-arch.m4])
 m4_include([common/m4/gst-args.m4])
 m4_include([common/m4/gst-check.m4])
diff --git a/common/Makefile.in b/common/Makefile.in
index 5cb51dd..a490184 100644
--- a/common/Makefile.in
+++ b/common/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -315,6 +316,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -421,6 +423,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -488,6 +493,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/common/gst.supp b/common/gst.supp
index 2740e9a..f85cd69 100644
--- a/common/gst.supp
+++ b/common/gst.supp
@@ -4024,5 +4024,4 @@
    fun:malloc
    ...
    fun:g_quark_init
-   fun:glib_init_ctor
 }
diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak
index fe0977c..4b5dd1b 100644
--- a/common/gtk-doc-plugins.mak
+++ b/common/gtk-doc-plugins.mak
@@ -179,9 +179,13 @@
 		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 	@for f in $(EXAMPLE_CFILES); do \
 		$(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-	@gtkdoc-mkdb \
+	@_source_dir='' ;						\
+	for i in $(DOC_SOURCE_DIR) ; do					\
+	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+	done ;								\
+	gtkdoc-mkdb \
 		--module=$(DOC_MODULE) \
-		--source-dir=$(DOC_SOURCE_DIR) \
+		$${_source_dir} \
 		 --expand-content-files="$(expand_content_files)" \
 		--main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
 		--output-format=xml \
diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak
index 2aab3a9..3f83491 100644
--- a/common/gtk-doc.mak
+++ b/common/gtk-doc.mak
@@ -121,7 +121,11 @@
 
 sgml-build.stamp: setup-build.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files)
 	@echo '  DOC   Building XML'
-	@gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR)  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
+	@_source_dir='' ;						\
+	for i in $(DOC_SOURCE_DIR) ; do					\
+	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+	done ;							        \
+	gtkdoc-mkdb --module=$(DOC_MODULE) $${_source_dir}  --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS)
 	@cp ../version.entities xml
 	@touch sgml-build.stamp
 
diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in
index 559c954..f1ce0bd 100644
--- a/common/m4/Makefile.in
+++ b/common/m4/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -255,6 +256,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -361,6 +363,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -428,6 +433,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/common/m4/ax_pthread.m4 b/common/m4/ax_pthread.m4
index d383ad5..4c4051e 100644
--- a/common/m4/ax_pthread.m4
+++ b/common/m4/ax_pthread.m4
@@ -19,10 +19,10 @@
 #   is necessary on AIX to use the special cc_r compiler alias.)
 #
 #   NOTE: You are assumed to not only compile your program with these flags,
-#   but also link it with them as well. e.g. you should link with
+#   but also to link with them as well. For example, you might link with
 #   $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS
 #
-#   If you are only building threads programs, you may wish to use these
+#   If you are only building threaded programs, you may wish to use these
 #   variables in your default LIBS, CFLAGS, and CC:
 #
 #     LIBS="$PTHREAD_LIBS $LIBS"
@@ -30,8 +30,8 @@
 #     CC="$PTHREAD_CC"
 #
 #   In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant
-#   has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name
-#   (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+#   has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to
+#   that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
 #
 #   Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the
 #   PTHREAD_PRIO_INHERIT symbol is defined when compiling with
@@ -82,35 +82,40 @@
 #   modified version of the Autoconf Macro, you may extend this special
 #   exception to the GPL to apply to your modified version as well.
 
-#serial 21
+#serial 23
 
 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD])
 AC_DEFUN([AX_PTHREAD], [
 AC_REQUIRE([AC_CANONICAL_HOST])
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_SED])
 AC_LANG_PUSH([C])
 ax_pthread_ok=no
 
 # We used to check for pthread.h first, but this fails if pthread.h
-# requires special compiler flags (e.g. on True64 or Sequent).
+# requires special compiler flags (e.g. on Tru64 or Sequent).
 # It gets checked for in the link test anyway.
 
 # First of all, check if the user has set any of the PTHREAD_LIBS,
 # etcetera environment variables, and if threads linking works using
 # them:
-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
-        save_CFLAGS="$CFLAGS"
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+        ax_pthread_save_CC="$CC"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"])
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
-        save_LIBS="$LIBS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
-        AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes])
+        AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS])
+        AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes])
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test x"$ax_pthread_ok" = xno; then
+        if test "x$ax_pthread_ok" = "xno"; then
                 PTHREAD_LIBS=""
                 PTHREAD_CFLAGS=""
         fi
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CC="$ax_pthread_save_CC"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 fi
 
 # We must check for the threads library under a number of different
@@ -123,7 +128,7 @@
 # which indicates that we try without any flags at all, and "pthread-config"
 # which is a program returning the flags for the Pth emulation library.
 
-ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
 
 # The ordering *is* (sometimes) important.  Some notes on the
 # individual items follow:
@@ -132,82 +137,225 @@
 # none: in case threads are in libc; should be tried before -Kthread and
 #       other compiler flags to prevent continual compiler warnings
 # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
-# -pthreads: Solaris/gcc
-# -mthreads: Mingw32/gcc, Lynx/gcc
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+#           (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
 # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
-#      doesn't hurt to check since this sometimes defines pthreads too;
-#      also defines -D_REENTRANT)
-#      ... -mt is also the pthreads flag for HP/aCC
+#      doesn't hurt to check since this sometimes defines pthreads and
+#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
+#      is present but should not be used directly; and before -mthreads,
+#      because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
 # pthread: Linux, etcetera
 # --thread-safe: KAI C++
 # pthread-config: use pthread-config program (for GNU Pth library)
 
-case ${host_os} in
+case $host_os in
+
+        freebsd*)
+
+        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+        ;;
+
+        hpux*)
+
+        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+        # multi-threading and also sets -lpthread."
+
+        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+        ;;
+
+        openedition*)
+
+        # IBM z/OS requires a feature-test macro to be defined in order to
+        # enable POSIX threads at all, so give the user a hint if this is
+        # not set. (We don't define these ourselves, as they can affect
+        # other portions of the system API in unpredictable ways.)
+
+        AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING],
+            [
+#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+             AX_PTHREAD_ZOS_MISSING
+#            endif
+            ],
+            [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])])
+        ;;
+
         solaris*)
 
         # On Solaris (at least, for some versions), libc contains stubbed
         # (non-functional) versions of the pthreads routines, so link-based
-        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
-        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
-        # a function called by this macro, so we could check for that, but
-        # who knows whether they'll stub that too in a future libc.)  So,
-        # we'll just look for -pthreads and -lpthread first:
+        # tests will erroneously succeed. (N.B.: The stubs are missing
+        # pthread_cleanup_push, or rather a function called by this macro,
+        # so we could check for that, but who knows whether they'll stub
+        # that too in a future libc.)  So we'll check first for the
+        # standard Solaris way of linking pthreads (-mt -lpthread).
 
-        ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags"
-        ;;
-
-        darwin*)
-        ax_pthread_flags="-pthread $ax_pthread_flags"
+        ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
         ;;
 esac
 
-# Clang doesn't consider unrecognized options an error unless we specify
-# -Werror. We throw in some extra Clang-specific options to ensure that
-# this doesn't happen for GCC, which also accepts -Werror.
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
 
-AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags])
-save_CFLAGS="$CFLAGS"
-ax_pthread_extra_flags="-Werror"
-CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument"
-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])],
-                  [AC_MSG_RESULT([yes])],
-                  [ax_pthread_extra_flags=
-                   AC_MSG_RESULT([no])])
-CFLAGS="$save_CFLAGS"
+AS_IF([test "x$GCC" = "xyes"],
+      [ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"])
 
-if test x"$ax_pthread_ok" = xno; then
-for flag in $ax_pthread_flags; do
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
 
-        case $flag in
+case $host_os in
+        darwin* | hpux* | linux* | osf* | solaris*)
+        ax_pthread_check_macro="_REENTRANT"
+        ;;
+
+        aix*)
+        ax_pthread_check_macro="_THREAD_SAFE"
+        ;;
+
+        *)
+        ax_pthread_check_macro="--"
+        ;;
+esac
+AS_IF([test "x$ax_pthread_check_macro" = "x--"],
+      [ax_pthread_check_cond=0],
+      [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"])
+
+# Are we compiling with Clang?
+
+AC_CACHE_CHECK([whether $CC is Clang],
+    [ax_cv_PTHREAD_CLANG],
+    [ax_cv_PTHREAD_CLANG=no
+     # Note that Autoconf sets GCC=yes for Clang as well as GCC
+     if test "x$GCC" = "xyes"; then
+        AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG],
+            [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+#            if defined(__clang__) && defined(__llvm__)
+             AX_PTHREAD_CC_IS_CLANG
+#            endif
+            ],
+            [ax_cv_PTHREAD_CLANG=yes])
+     fi
+    ])
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+ax_pthread_clang_warning=no
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+        # Clang takes -pthread; it has never supported any other flag
+
+        # (Note 1: This will need to be revisited if a system that Clang
+        # supports has POSIX threads in a separate library.  This tends not
+        # to be the way of modern systems, but it's conceivable.)
+
+        # (Note 2: On some systems, notably Darwin, -pthread is not needed
+        # to get POSIX threads support; the API is always present and
+        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
+        # -pthread does define _REENTRANT, and while the Darwin headers
+        # ignore this macro, third-party headers might not.)
+
+        PTHREAD_CFLAGS="-pthread"
+        PTHREAD_LIBS=
+
+        ax_pthread_ok=yes
+
+        # However, older versions of Clang make a point of warning the user
+        # that, in an invocation where only linking and no compilation is
+        # taking place, the -pthread option has no effect ("argument unused
+        # during compilation").  They expect -pthread to be passed in only
+        # when source code is being compiled.
+        #
+        # Problem is, this is at odds with the way Automake and most other
+        # C build frameworks function, which is that the same flags used in
+        # compilation (CFLAGS) are also used in linking.  Many systems
+        # supported by AX_PTHREAD require exactly this for POSIX threads
+        # support, and in fact it is often not straightforward to specify a
+        # flag that is used only in the compilation phase and not in
+        # linking.  Such a scenario is extremely rare in practice.
+        #
+        # Even though use of the -pthread flag in linking would only print
+        # a warning, this can be a nuisance for well-run software projects
+        # that build with -Werror.  So if the active version of Clang has
+        # this misfeature, we search for an option to squash it.
+
+        AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG],
+            [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+             # Create an alternate version of $ac_link that compiles and
+             # links in two steps (.c -> .o, .o -> exe) instead of one
+             # (.c -> exe), because the warning occurs only in the second
+             # step
+             ax_pthread_save_ac_link="$ac_link"
+             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+             ax_pthread_save_CFLAGS="$CFLAGS"
+             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+                AS_IF([test "x$ax_pthread_try" = "xunknown"], [break])
+                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+                ac_link="$ax_pthread_save_ac_link"
+                AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                    [ac_link="$ax_pthread_2step_ac_link"
+                     AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])],
+                         [break])
+                    ])
+             done
+             ac_link="$ax_pthread_save_ac_link"
+             CFLAGS="$ax_pthread_save_CFLAGS"
+             AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no])
+             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+            ])
+
+        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+                no | unknown) ;;
+                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+        esac
+
+fi # $ax_pthread_clang = yes
+
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
+
+        case $ax_pthread_try_flag in
                 none)
                 AC_MSG_CHECKING([whether pthreads work without any flags])
                 ;;
 
+                -mt,pthread)
+                AC_MSG_CHECKING([whether pthreads work with -mt -lpthread])
+                PTHREAD_CFLAGS="-mt"
+                PTHREAD_LIBS="-lpthread"
+                ;;
+
                 -*)
-                AC_MSG_CHECKING([whether pthreads work with $flag])
-                PTHREAD_CFLAGS="$flag"
+                AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag])
+                PTHREAD_CFLAGS="$ax_pthread_try_flag"
                 ;;
 
                 pthread-config)
                 AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no])
-                if test x"$ax_pthread_config" = xno; then continue; fi
+                AS_IF([test "x$ax_pthread_config" = "xno"], [continue])
                 PTHREAD_CFLAGS="`pthread-config --cflags`"
                 PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
                 ;;
 
                 *)
-                AC_MSG_CHECKING([for the pthreads library -l$flag])
-                PTHREAD_LIBS="-l$flag"
+                AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag])
+                PTHREAD_LIBS="-l$ax_pthread_try_flag"
                 ;;
         esac
 
-        save_LIBS="$LIBS"
-        save_CFLAGS="$CFLAGS"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
         LIBS="$PTHREAD_LIBS $LIBS"
-        CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags"
 
         # Check for various functions.  We must include pthread.h,
         # since some functions may be macros.  (On the Sequent, we
@@ -218,7 +366,11 @@
         # pthread_cleanup_push because it is one of the few pthread
         # functions on Solaris that doesn't have a non-functional libc stub.
         # We try pthread_create on general principles.
+
         AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>
+#                       if $ax_pthread_check_cond
+#                        error "$ax_pthread_check_macro must be defined"
+#                       endif
                         static void routine(void *a) { a = 0; }
                         static void *start_routine(void *a) { return a; }],
                        [pthread_t th; pthread_attr_t attr;
@@ -227,16 +379,14 @@
                         pthread_attr_init(&attr);
                         pthread_cleanup_push(routine, 0);
                         pthread_cleanup_pop(0) /* ; */])],
-                [ax_pthread_ok=yes],
-                [])
+            [ax_pthread_ok=yes],
+            [])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         AC_MSG_RESULT([$ax_pthread_ok])
-        if test "x$ax_pthread_ok" = xyes; then
-                break;
-        fi
+        AS_IF([test "x$ax_pthread_ok" = "xyes"], [break])
 
         PTHREAD_LIBS=""
         PTHREAD_CFLAGS=""
@@ -244,71 +394,74 @@
 fi
 
 # Various other checks:
-if test "x$ax_pthread_ok" = xyes; then
-        save_LIBS="$LIBS"
-        LIBS="$PTHREAD_LIBS $LIBS"
-        save_CFLAGS="$CFLAGS"
+if test "x$ax_pthread_ok" = "xyes"; then
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
         CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
 
         # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
-        AC_MSG_CHECKING([for joinable pthread attribute])
-        attr_name=unknown
-        for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
-            AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
-                           [int attr = $attr; return attr /* ; */])],
-                [attr_name=$attr; break],
-                [])
-        done
-        AC_MSG_RESULT([$attr_name])
-        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
-            AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name],
-                               [Define to necessary symbol if this constant
-                                uses a non-standard name on your system.])
-        fi
+        AC_CACHE_CHECK([for joinable pthread attribute],
+            [ax_cv_PTHREAD_JOINABLE_ATTR],
+            [ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+                 AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <pthread.h>],
+                                                 [int attr = $ax_pthread_attr; return attr /* ; */])],
+                                [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break],
+                                [])
+             done
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"],
+              [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE],
+                                  [$ax_cv_PTHREAD_JOINABLE_ATTR],
+                                  [Define to necessary symbol if this constant
+                                   uses a non-standard name on your system.])
+               ax_pthread_joinable_attr_defined=yes
+              ])
 
-        AC_MSG_CHECKING([if more special flags are required for pthreads])
-        flag=no
-        case ${host_os} in
-            aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";;
-            osf* | hpux*) flag="-D_REENTRANT";;
-            solaris*)
-            if test "$GCC" = "yes"; then
-                flag="-D_REENTRANT"
-            else
-                # TODO: What about Clang on Solaris?
-                flag="-mt -D_REENTRANT"
-            fi
-            ;;
-        esac
-        AC_MSG_RESULT([$flag])
-        if test "x$flag" != xno; then
-            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
-        fi
+        AC_CACHE_CHECK([whether more special flags are required for pthreads],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS],
+            [ax_cv_PTHREAD_SPECIAL_FLAGS=no
+             case $host_os in
+             solaris*)
+             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+             ;;
+             esac
+            ])
+        AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+               test "x$ax_pthread_special_flags_added" != "xyes"],
+              [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+               ax_pthread_special_flags_added=yes])
 
         AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT],
-            [ax_cv_PTHREAD_PRIO_INHERIT], [
-                AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
-                                                [[int i = PTHREAD_PRIO_INHERIT;]])],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=yes],
-                    [ax_cv_PTHREAD_PRIO_INHERIT=no])
+            [ax_cv_PTHREAD_PRIO_INHERIT],
+            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]],
+                                             [[int i = PTHREAD_PRIO_INHERIT;]])],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=yes],
+                            [ax_cv_PTHREAD_PRIO_INHERIT=no])
             ])
-        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"],
-            [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])])
+        AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"],
+              [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])
+               ax_pthread_prio_inherit_defined=yes
+              ])
 
-        LIBS="$save_LIBS"
-        CFLAGS="$save_CFLAGS"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
 
         # More AIX lossage: compile with *_r variant
-        if test "x$GCC" != xyes; then
+        if test "x$GCC" != "xyes"; then
             case $host_os in
                 aix*)
                 AS_CASE(["x/$CC"],
-                  [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
-                  [#handle absolute path differently from PATH based program lookup
-                   AS_CASE(["x$CC"],
-                     [x/*],
-                     [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
-                     [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
+                    [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6],
+                    [#handle absolute path differently from PATH based program lookup
+                     AS_CASE(["x$CC"],
+                         [x/*],
+                         [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])],
+                         [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])])
                 ;;
             esac
         fi
@@ -321,7 +474,7 @@
 AC_SUBST([PTHREAD_CC])
 
 # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
-if test x"$ax_pthread_ok" = xyes; then
+if test "x$ax_pthread_ok" = "xyes"; then
         ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1])
         :
 else
diff --git a/common/win32.mak b/common/win32.mak
index 87cd346..6060532 100644
--- a/common/win32.mak
+++ b/common/win32.mak
@@ -61,8 +61,11 @@
 
 update-exports:
 	make check-exports 2>&1 | patch -p1
-	git add win32/common/libgst*.def
-	git diff --cached -- win32/common/
+	if test -f "$(top_srcdir)/win32/common/libgstgl.def"; then \
+	  git checkout "$(top_srcdir)/win32/common/libgstgl.def";  \
+	fi
+	git add $(top_srcdir)/win32/common/libgst*.def
+	git diff --cached -- $(top_srcdir)/win32/common/
 	echo '^^^--- updated and staged changes above'
 
 # complain about nonportable printf format strings (%lld, %llu, %zu etc.)
diff --git a/config.h.in b/config.h.in
index 045cb16..3b317b6 100644
--- a/config.h.in
+++ b/config.h.in
@@ -269,6 +269,12 @@
 /* Define to 1 if you have the <process.h> header file. */
 #undef HAVE_PROCESS_H
 
+/* Define if you have POSIX threads libraries and header files. */
+#undef HAVE_PTHREAD
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#undef HAVE_PTHREAD_PRIO_INHERIT
+
 /* Define to enable pulseaudio plug-in (used by pulseaudio). */
 #undef HAVE_PULSE
 
@@ -404,6 +410,10 @@
 /* directory where plugins are located */
 #undef PLUGINDIR
 
+/* Define to necessary symbol if this constant uses a non-standard name on
+   your system. */
+#undef PTHREAD_CREATE_JOINABLE
+
 /* The size of `char', as computed by sizeof. */
 #undef SIZEOF_CHAR
 
diff --git a/configure b/configure
index f2ebd4f..3b0341c 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.8.3.
+# Generated by GNU Autoconf 2.69 for GStreamer Good Plug-ins 1.9.90.
 #
 # Report bugs to <http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer>.
 #
@@ -591,8 +591,8 @@
 # Identity of this package.
 PACKAGE_NAME='GStreamer Good Plug-ins'
 PACKAGE_TARNAME='gst-plugins-good'
-PACKAGE_VERSION='1.8.3'
-PACKAGE_STRING='GStreamer Good Plug-ins 1.8.3'
+PACKAGE_VERSION='1.9.90'
+PACKAGE_STRING='GStreamer Good Plug-ins 1.9.90'
 PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer'
 PACKAGE_URL=''
 
@@ -932,6 +932,10 @@
 GST_HAVE_MMAP_TRUE
 HAVE_GCC_ASM_FALSE
 HAVE_GCC_ASM_TRUE
+PTHREAD_CFLAGS
+PTHREAD_LIBS
+PTHREAD_CC
+ax_pthread_config
 LIBRT
 LIBM
 ENABLE_PLUGIN_DOCS_FALSE
@@ -1009,6 +1013,7 @@
 HAVE_CPU_PPC_TRUE
 HAVE_CPU_I386_FALSE
 HAVE_CPU_I386_TRUE
+GST_PKG_CONFIG_PATH
 BUILD_EXPERIMENTAL_FALSE
 BUILD_EXPERIMENTAL_TRUE
 USE_EXPERIMENTAL_FALSE
@@ -1964,7 +1969,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GStreamer Good Plug-ins 1.8.3 to adapt to many kinds of systems.
+\`configure' configures GStreamer Good Plug-ins 1.9.90 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -2037,7 +2042,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.8.3:";;
+     short | recursive ) echo "Configuration of GStreamer Good Plug-ins 1.9.90:";;
    esac
   cat <<\_ACEOF
 
@@ -2413,7 +2418,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GStreamer Good Plug-ins configure 1.8.3
+GStreamer Good Plug-ins configure 1.9.90
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -3224,7 +3229,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GStreamer Good Plug-ins $as_me 1.8.3, which was
+It was created by GStreamer Good Plug-ins $as_me 1.9.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4206,7 +4211,7 @@
 
 # Define the identity of the package.
  PACKAGE='gst-plugins-good'
- VERSION='1.8.3'
+ VERSION='1.9.90'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -4417,9 +4422,9 @@
 
 
 
-  PACKAGE_VERSION_MAJOR=$(echo 1.8.3 | cut -d'.' -f1)
-  PACKAGE_VERSION_MINOR=$(echo 1.8.3 | cut -d'.' -f2)
-  PACKAGE_VERSION_MICRO=$(echo 1.8.3 | cut -d'.' -f3)
+  PACKAGE_VERSION_MAJOR=$(echo 1.9.90 | cut -d'.' -f1)
+  PACKAGE_VERSION_MINOR=$(echo 1.9.90 | cut -d'.' -f2)
+  PACKAGE_VERSION_MICRO=$(echo 1.9.90 | cut -d'.' -f3)
 
 
 
@@ -4430,7 +4435,7 @@
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5
 $as_echo_n "checking nano version... " >&6; }
 
-  NANO=$(echo 1.8.3 | cut -d'.' -f4)
+  NANO=$(echo 1.9.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
@@ -9271,10 +9276,10 @@
 done
 
 
-  GST_CURRENT=803
+  GST_CURRENT=990
   GST_REVISION=0
-  GST_AGE=803
-  GST_LIBVERSION=803:0:803
+  GST_AGE=990
+  GST_LIBVERSION=990:0:990
 
 
 
@@ -13902,8 +13907,8 @@
 
 
 
-GST_REQ=1.8.0
-GSTPB_REQ=1.8.1
+GST_REQ=1.9.90
+GSTPB_REQ=1.9.90
 
 
 
@@ -16675,6 +16680,16 @@
 
 
 
+  GST_PKG_CONFIG_PATH="\$(top_builddir)/pkgconfig"
+  if test "x$PKG_CONFIG_PATH" != "x"; then
+    GST_PKG_CONFIG_PATH="$GST_PKG_CONFIG_PATH:$PKG_CONFIG_PATH"
+  fi
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: Using GST_PKG_CONFIG_PATH = $GST_PKG_CONFIG_PATH" >&5
+$as_echo "$as_me: Using GST_PKG_CONFIG_PATH = $GST_PKG_CONFIG_PATH" >&6;}
+
+
+
 
 
     case "x${target_cpu}" in
@@ -23712,6 +23727,648 @@
 
 
 
+
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ax_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on Tru64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then
+        ax_pthread_save_CC="$CC"
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        if test "x$PTHREAD_CC" != "x"; then :
+  CC="$PTHREAD_CC"
+fi
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5
+$as_echo_n "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; }
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char pthread_join ();
+int
+main ()
+{
+return pthread_join ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_pthread_ok=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
+        if test "x$ax_pthread_ok" = "xno"; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        CC="$ax_pthread_save_CC"
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64
+#           (Note: HP C rejects this with "bad form for `-t' option")
+# -pthreads: Solaris/gcc (Note: HP C also rejects)
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads and
+#      -D_REENTRANT too), HP C (must be checked before -lpthread, which
+#      is present but should not be used directly; and before -mthreads,
+#      because the compiler interprets this as "-mt" + "-hreads")
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case $host_os in
+
+        freebsd*)
+
+        # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+        # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+
+        ax_pthread_flags="-kthread lthread $ax_pthread_flags"
+        ;;
+
+        hpux*)
+
+        # From the cc(1) man page: "[-mt] Sets various -D flags to enable
+        # multi-threading and also sets -lpthread."
+
+        ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags"
+        ;;
+
+        openedition*)
+
+        # IBM z/OS requires a feature-test macro to be defined in order to
+        # enable POSIX threads at all, so give the user a hint if this is
+        # not set. (We don't define these ourselves, as they can affect
+        # other portions of the system API in unpredictable ways.)
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+#            if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS)
+             AX_PTHREAD_ZOS_MISSING
+#            endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5
+$as_echo "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;}
+fi
+rm -f conftest*
+
+        ;;
+
+        solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed. (N.B.: The stubs are missing
+        # pthread_cleanup_push, or rather a function called by this macro,
+        # so we could check for that, but who knows whether they'll stub
+        # that too in a future libc.)  So we'll check first for the
+        # standard Solaris way of linking pthreads (-mt -lpthread).
+
+        ax_pthread_flags="-mt,pthread pthread $ax_pthread_flags"
+        ;;
+esac
+
+# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC)
+
+if test "x$GCC" = "xyes"; then :
+  ax_pthread_flags="-pthread -pthreads $ax_pthread_flags"
+fi
+
+# The presence of a feature test macro requesting re-entrant function
+# definitions is, on some systems, a strong hint that pthreads support is
+# correctly enabled
+
+case $host_os in
+        darwin* | hpux* | linux* | osf* | solaris*)
+        ax_pthread_check_macro="_REENTRANT"
+        ;;
+
+        aix*)
+        ax_pthread_check_macro="_THREAD_SAFE"
+        ;;
+
+        *)
+        ax_pthread_check_macro="--"
+        ;;
+esac
+if test "x$ax_pthread_check_macro" = "x--"; then :
+  ax_pthread_check_cond=0
+else
+  ax_pthread_check_cond="!defined($ax_pthread_check_macro)"
+fi
+
+# Are we compiling with Clang?
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5
+$as_echo_n "checking whether $CC is Clang... " >&6; }
+if ${ax_cv_PTHREAD_CLANG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_CLANG=no
+     # Note that Autoconf sets GCC=yes for Clang as well as GCC
+     if test "x$GCC" = "xyes"; then
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Note: Clang 2.7 lacks __clang_[a-z]+__ */
+#            if defined(__clang__) && defined(__llvm__)
+             AX_PTHREAD_CC_IS_CLANG
+#            endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1; then :
+  ax_cv_PTHREAD_CLANG=yes
+fi
+rm -f conftest*
+
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5
+$as_echo "$ax_cv_PTHREAD_CLANG" >&6; }
+ax_pthread_clang="$ax_cv_PTHREAD_CLANG"
+
+ax_pthread_clang_warning=no
+
+# Clang needs special handling, because older versions handle the -pthread
+# option in a rather... idiosyncratic way
+
+if test "x$ax_pthread_clang" = "xyes"; then
+
+        # Clang takes -pthread; it has never supported any other flag
+
+        # (Note 1: This will need to be revisited if a system that Clang
+        # supports has POSIX threads in a separate library.  This tends not
+        # to be the way of modern systems, but it's conceivable.)
+
+        # (Note 2: On some systems, notably Darwin, -pthread is not needed
+        # to get POSIX threads support; the API is always present and
+        # active.  We could reasonably leave PTHREAD_CFLAGS empty.  But
+        # -pthread does define _REENTRANT, and while the Darwin headers
+        # ignore this macro, third-party headers might not.)
+
+        PTHREAD_CFLAGS="-pthread"
+        PTHREAD_LIBS=
+
+        ax_pthread_ok=yes
+
+        # However, older versions of Clang make a point of warning the user
+        # that, in an invocation where only linking and no compilation is
+        # taking place, the -pthread option has no effect ("argument unused
+        # during compilation").  They expect -pthread to be passed in only
+        # when source code is being compiled.
+        #
+        # Problem is, this is at odds with the way Automake and most other
+        # C build frameworks function, which is that the same flags used in
+        # compilation (CFLAGS) are also used in linking.  Many systems
+        # supported by AX_PTHREAD require exactly this for POSIX threads
+        # support, and in fact it is often not straightforward to specify a
+        # flag that is used only in the compilation phase and not in
+        # linking.  Such a scenario is extremely rare in practice.
+        #
+        # Even though use of the -pthread flag in linking would only print
+        # a warning, this can be a nuisance for well-run software projects
+        # that build with -Werror.  So if the active version of Clang has
+        # this misfeature, we search for an option to squash it.
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5
+$as_echo_n "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; }
+if ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown
+             # Create an alternate version of $ac_link that compiles and
+             # links in two steps (.c -> .o, .o -> exe) instead of one
+             # (.c -> exe), because the warning occurs only in the second
+             # step
+             ax_pthread_save_ac_link="$ac_link"
+             ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g'
+             ax_pthread_link_step=`$as_echo "$ac_link" | sed "$ax_pthread_sed"`
+             ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)"
+             ax_pthread_save_CFLAGS="$CFLAGS"
+             for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do
+                if test "x$ax_pthread_try" = "xunknown"; then :
+  break
+fi
+                CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS"
+                ac_link="$ax_pthread_save_ac_link"
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(void){return 0;}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_link="$ax_pthread_2step_ac_link"
+                     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int main(void){return 0;}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+             done
+             ac_link="$ax_pthread_save_ac_link"
+             CFLAGS="$ax_pthread_save_CFLAGS"
+             if test "x$ax_pthread_try" = "x"; then :
+  ax_pthread_try=no
+fi
+             ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try"
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5
+$as_echo "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; }
+
+        case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in
+                no | unknown) ;;
+                *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;;
+        esac
+
+fi # $ax_pthread_clang = yes
+
+if test "x$ax_pthread_ok" = "xno"; then
+for ax_pthread_try_flag in $ax_pthread_flags; do
+
+        case $ax_pthread_try_flag in
+                none)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5
+$as_echo_n "checking whether pthreads work without any flags... " >&6; }
+                ;;
+
+                -mt,pthread)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with -mt -lpthread" >&5
+$as_echo_n "checking whether pthreads work with -mt -lpthread... " >&6; }
+                PTHREAD_CFLAGS="-mt"
+                PTHREAD_LIBS="-lpthread"
+                ;;
+
+                -*)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5
+$as_echo_n "checking whether pthreads work with $ax_pthread_try_flag... " >&6; }
+                PTHREAD_CFLAGS="$ax_pthread_try_flag"
+                ;;
+
+                pthread-config)
+                # Extract the first word of "pthread-config", so it can be a program name with args.
+set dummy pthread-config; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ax_pthread_config+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ax_pthread_config"; then
+  ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ax_pthread_config="yes"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no"
+fi
+fi
+ax_pthread_config=$ac_cv_prog_ax_pthread_config
+if test -n "$ax_pthread_config"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5
+$as_echo "$ax_pthread_config" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+                if test "x$ax_pthread_config" = "xno"; then :
+  continue
+fi
+                PTHREAD_CFLAGS="`pthread-config --cflags`"
+                PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+                ;;
+
+                *)
+                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5
+$as_echo_n "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; }
+                PTHREAD_LIBS="-l$ax_pthread_try_flag"
+                ;;
+        esac
+
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+#                       if $ax_pthread_check_cond
+#                        error "$ax_pthread_check_macro must be defined"
+#                       endif
+                        static void routine(void *a) { a = 0; }
+                        static void *start_routine(void *a) { return a; }
+int
+main ()
+{
+pthread_t th; pthread_attr_t attr;
+                        pthread_create(&th, 0, start_routine, 0);
+                        pthread_join(th, 0);
+                        pthread_attr_init(&attr);
+                        pthread_cleanup_push(routine, 0);
+                        pthread_cleanup_pop(0) /* ; */
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_pthread_ok=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5
+$as_echo "$ax_pthread_ok" >&6; }
+        if test "x$ax_pthread_ok" = "xyes"; then :
+  break
+fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$ax_pthread_ok" = "xyes"; then
+        ax_pthread_save_CFLAGS="$CFLAGS"
+        ax_pthread_save_LIBS="$LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5
+$as_echo_n "checking for joinable pthread attribute... " >&6; }
+if ${ax_cv_PTHREAD_JOINABLE_ATTR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_JOINABLE_ATTR=unknown
+             for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+                 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int attr = $ax_pthread_attr; return attr /* ; */
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+             done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5
+$as_echo "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; }
+        if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \
+               test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \
+               test "x$ax_pthread_joinable_attr_defined" != "xyes"; then :
+
+cat >>confdefs.h <<_ACEOF
+#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR
+_ACEOF
+
+               ax_pthread_joinable_attr_defined=yes
+
+fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5
+$as_echo_n "checking whether more special flags are required for pthreads... " >&6; }
+if ${ax_cv_PTHREAD_SPECIAL_FLAGS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ax_cv_PTHREAD_SPECIAL_FLAGS=no
+             case $host_os in
+             solaris*)
+             ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS"
+             ;;
+             esac
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5
+$as_echo "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; }
+        if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \
+               test "x$ax_pthread_special_flags_added" != "xyes"; then :
+  PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS"
+               ax_pthread_special_flags_added=yes
+fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5
+$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; }
+if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <pthread.h>
+int
+main ()
+{
+int i = PTHREAD_PRIO_INHERIT;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ax_cv_PTHREAD_PRIO_INHERIT=yes
+else
+  ax_cv_PTHREAD_PRIO_INHERIT=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5
+$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; }
+        if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \
+               test "x$ax_pthread_prio_inherit_defined" != "xyes"; then :
+
+$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h
+
+               ax_pthread_prio_inherit_defined=yes
+
+fi
+
+        CFLAGS="$ax_pthread_save_CFLAGS"
+        LIBS="$ax_pthread_save_LIBS"
+
+        # More AIX lossage: compile with *_r variant
+        if test "x$GCC" != "xyes"; then
+            case $host_os in
+                aix*)
+                case "x/$CC" in #(
+  x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) :
+    #handle absolute path differently from PATH based program lookup
+                     case "x$CC" in #(
+  x/*) :
+    if as_fn_executable_p ${CC}_r; then :
+  PTHREAD_CC="${CC}_r"
+fi ;; #(
+  *) :
+    for ac_prog in ${CC}_r
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_PTHREAD_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$PTHREAD_CC"; then
+  ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+    ac_cv_prog_PTHREAD_CC="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC
+if test -n "$PTHREAD_CC"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5
+$as_echo "$PTHREAD_CC" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$PTHREAD_CC" && break
+done
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+ ;;
+esac ;; #(
+  *) :
+     ;;
+esac
+                ;;
+            esac
+        fi
+fi
+
+test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
+
+
+
+
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test "x$ax_pthread_ok" = "xyes"; then
+
+$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h
+
+        :
+else
+        ax_pthread_ok=no
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+
+
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
 if ${ac_cv_header_stdc+:} false; then :
@@ -30423,12 +31080,27 @@
   fi
 fi
 
+case $host in #(
+  *-*linux*) :
+    case $host_cpu in #(
+  arm*) :
+
+          enable_v4l2_probe="yes" ;; #(
+  aarch64*) :
+
+          enable_v4l2_probe="yes" ;; #(
+  *) :
+     ;;
+esac ;; #(
+  *) :
+     ;;
+esac
 # Check whether --enable-v4l2-probe was given.
 if test "${enable_v4l2_probe+set}" = set; then :
   enableval=$enable_v4l2_probe;
 fi
 
-if test "x$enable_v4l2_probe" = xyes; then
+if test "x$enable_v4l2_probe" = "xyes"; then
 
 $as_echo "#define GST_V4L2_ENABLE_PROBE 1" >>confdefs.h
 
@@ -36873,7 +37545,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GStreamer Good Plug-ins $as_me 1.8.3, which was
+This file was extended by GStreamer Good Plug-ins $as_me 1.9.90, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -36939,7 +37611,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GStreamer Good Plug-ins config.status 1.8.3
+GStreamer Good Plug-ins config.status 1.9.90
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index e5675d4..3f0e7cd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -5,7 +5,7 @@
 dnl initialize autoconf
 dnl releases only do -Wall, git and prerelease does -Werror too
 dnl use a three digit version number for releases, and four for git/pre
-AC_INIT([GStreamer Good Plug-ins],[1.8.3],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
+AC_INIT([GStreamer Good Plug-ins],[1.9.90],[http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer],[gst-plugins-good])
 
 AG_GST_INIT
 
@@ -43,11 +43,11 @@
   [GStreamer API Version])
 
 AG_GST_LIBTOOL_PREPARE
-AS_LIBTOOL(GST, 803, 0, 803)
+AS_LIBTOOL(GST, 990, 0, 990)
 
 dnl *** required versions of GStreamer stuff ***
-GST_REQ=1.8.0
-GSTPB_REQ=1.8.1
+GST_REQ=1.9.90
+GSTPB_REQ=1.9.90
 
 dnl *** autotools stuff ****
 
@@ -85,6 +85,8 @@
 
 AG_GST_ARG_ENABLE_EXPERIMENTAL
 
+AG_GST_PKG_CONFIG_PATH
+
 dnl *** checks for platform ***
 
 dnl * hardware/architecture *
@@ -143,6 +145,9 @@
   ])
 ])
 
+dnl check for pthreads
+AX_PTHREAD
+
 dnl *** checks for header files ***
 
 dnl check if we have ANSI C header files
@@ -571,12 +576,19 @@
 fi
 
 dnl Allow enabling v4l2 device probing
+AS_CASE([$host],
+    [*-*linux*],
+      [AS_CASE([$host_cpu],
+        [arm*], [
+          enable_v4l2_probe="yes"],
+        [aarch64*], [
+          enable_v4l2_probe="yes"])])
 AC_ARG_ENABLE(
   v4l2-probe,
   AC_HELP_STRING(
     [--enable-v4l2-probe],
     [enable V4L2 plugin to probe devices @<:@default=no@:>@]))
-if test "x$enable_v4l2_probe" = xyes; then
+if test "x$enable_v4l2_probe" = "xyes"; then
   AC_DEFINE(GST_V4L2_ENABLE_PROBE, 1,
     [Define if Video4Linux probe shall be run at plugin load])
 fi
diff --git a/docs/Makefile.in b/docs/Makefile.in
index ce70b0a..c36a67b 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -314,6 +315,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -420,6 +422,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -487,6 +492,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am
index 4e8ab0f..54069c7 100644
--- a/docs/plugins/Makefile.am
+++ b/docs/plugins/Makefile.am
@@ -208,6 +208,8 @@
 	$(top_srcdir)/sys/osxvideo/osxvideosink.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2src.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2sink.h \
+	$(top_srcdir)/sys/v4l2/gstv4l2transform.h \
+	$(top_srcdir)/sys/v4l2/gstv4l2videodec.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2radio.h \
 	$(top_srcdir)/sys/waveform/gstwaveformsink.h \
 	$(top_srcdir)/sys/ximage/gstximagesrc.h
diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in
index f6f63cf..634f9de 100644
--- a/docs/plugins/Makefile.in
+++ b/docs/plugins/Makefile.in
@@ -114,6 +114,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -274,6 +275,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -380,6 +382,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -447,6 +452,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -710,6 +716,8 @@
 	$(top_srcdir)/sys/osxvideo/osxvideosink.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2src.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2sink.h \
+	$(top_srcdir)/sys/v4l2/gstv4l2transform.h \
+	$(top_srcdir)/sys/v4l2/gstv4l2videodec.h \
 	$(top_srcdir)/sys/v4l2/gstv4l2radio.h \
 	$(top_srcdir)/sys/waveform/gstwaveformsink.h \
 	$(top_srcdir)/sys/ximage/gstximagesrc.h
@@ -1164,9 +1172,13 @@
 @ENABLE_GTK_DOC_TRUE@		$(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done
 @ENABLE_GTK_DOC_TRUE@	@for f in $(EXAMPLE_CFILES); do \
 @ENABLE_GTK_DOC_TRUE@		$(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done
-@ENABLE_GTK_DOC_TRUE@	@gtkdoc-mkdb \
+@ENABLE_GTK_DOC_TRUE@	@_source_dir='' ;						\
+@ENABLE_GTK_DOC_TRUE@	for i in $(DOC_SOURCE_DIR) ; do					\
+@ENABLE_GTK_DOC_TRUE@	    _source_dir="$${_source_dir} --source-dir=$$i" ;	        \
+@ENABLE_GTK_DOC_TRUE@	done ;								\
+@ENABLE_GTK_DOC_TRUE@	gtkdoc-mkdb \
 @ENABLE_GTK_DOC_TRUE@		--module=$(DOC_MODULE) \
-@ENABLE_GTK_DOC_TRUE@		--source-dir=$(DOC_SOURCE_DIR) \
+@ENABLE_GTK_DOC_TRUE@		$${_source_dir} \
 @ENABLE_GTK_DOC_TRUE@		 --expand-content-files="$(expand_content_files)" \
 @ENABLE_GTK_DOC_TRUE@		--main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \
 @ENABLE_GTK_DOC_TRUE@		--output-format=xml \
diff --git a/docs/plugins/gst-plugins-good-plugins-docs.sgml b/docs/plugins/gst-plugins-good-plugins-docs.sgml
index 6d7489d..0d0be62 100644
--- a/docs/plugins/gst-plugins-good-plugins-docs.sgml
+++ b/docs/plugins/gst-plugins-good-plugins-docs.sgml
@@ -31,6 +31,7 @@
     <xi:include href="xml/element-apedemux.xml" />
     <xi:include href="xml/element-apev2mux.xml" />
     <xi:include href="xml/element-aspectratiocrop.xml" />
+    <xi:include href="xml/element-asteriskh263.xml" />
     <xi:include href="xml/element-audioamplify.xml" />
     <xi:include href="xml/element-audiochebband.xml" />
     <xi:include href="xml/element-audiocheblimit.xml" />
@@ -51,9 +52,11 @@
     <xi:include href="xml/element-avidemux.xml" />
     <xi:include href="xml/element-avimux.xml" />
     <xi:include href="xml/element-avisubtitle.xml" />
+    <xi:include href="xml/element-breakmydata.xml" />
     <xi:include href="xml/element-cacasink.xml" />
     <xi:include href="xml/element-cairooverlay.xml" />
     <xi:include href="xml/element-capssetter.xml" />
+    <xi:include href="xml/element-cpureport.xml" />
     <xi:include href="xml/element-cutter.xml" />
     <xi:include href="xml/element-dcaparse.xml" />
     <xi:include href="xml/element-deinterlace.xml" />
@@ -64,6 +67,7 @@
     <xi:include href="xml/element-dv1394src.xml" />
     <xi:include href="xml/element-dvdec.xml" />
     <xi:include href="xml/element-dvdemux.xml" />
+    <xi:include href="xml/element-dynudpsink.xml" />
     <xi:include href="xml/element-edgetv.xml" />
     <xi:include href="xml/element-equalizer-10bands.xml" />
     <xi:include href="xml/element-equalizer-3bands.xml" />
@@ -77,6 +81,8 @@
     <xi:include href="xml/element-flvmux.xml" />
     <xi:include href="xml/element-flxdec.xml" />
     <xi:include href="xml/element-gamma.xml" />
+    <xi:include href="xml/element-gdkpixbufdec.xml" />
+    <xi:include href="xml/element-gdkpixbufoverlay.xml" />
     <xi:include href="xml/element-gdkpixbufsink.xml" />
     <xi:include href="xml/element-goom2k1.xml" />
     <xi:include href="xml/element-goom.xml" />
@@ -84,6 +90,7 @@
     <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-iirequalizer.xml" />
     <xi:include href="xml/element-iirfilter-example.xml" />
     <xi:include href="xml/element-imagefreeze.xml" />
     <xi:include href="xml/element-interleave.xml" />
@@ -96,6 +103,7 @@
     <xi:include href="xml/element-level.xml" />
     <xi:include href="xml/element-matroskademux.xml" />
     <xi:include href="xml/element-matroskamux.xml" />
+    <xi:include href="xml/element-matroskaparse.xml" />
     <xi:include href="xml/element-mj2mux.xml" />
     <xi:include href="xml/element-monoscope.xml" />
     <xi:include href="xml/element-mp4mux.xml" />
@@ -107,6 +115,8 @@
     <xi:include href="xml/element-multipartdemux.xml" />
     <xi:include href="xml/element-multipartmux.xml" />
     <xi:include href="xml/element-multiudpsink.xml" />
+    <xi:include href="xml/element-navigationtest.xml" />
+    <xi:include href="xml/element-navseek.xml" />
     <xi:include href="xml/element-optv.xml" />
     <xi:include href="xml/element-oss4sink.xml" />
     <xi:include href="xml/element-oss4src.xml" />
@@ -120,6 +130,7 @@
     <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-pushfilesrc.xml" />
     <xi:include href="xml/element-qtdemux.xml" />
     <xi:include href="xml/element-qtmoovrecover.xml" />
     <xi:include href="xml/element-qtmux.xml" />
@@ -130,6 +141,7 @@
     <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-rndbuffersize.xml" />
     <xi:include href="xml/element-rtpac3depay.xml" />
     <xi:include href="xml/element-rtpac3pay.xml" />
     <xi:include href="xml/element-rtpamrdepay.xml" />
@@ -137,44 +149,107 @@
     <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" />
-    <xi:include href="xml/element-rtpjpegpay.xml" />
-    <xi:include href="xml/element-rtpsbcpay.xml" />
-    <xi:include href="xml/element-rtpbin.xml" />
+    <xi:include href="xml/element-rtpceltdepay.xml" />
+    <xi:include href="xml/element-rtpceltpay.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-rtpdvdepay.xml" />
+    <xi:include href="xml/element-rtpdvpay.xml" />
+    <xi:include href="xml/element-rtpg722depay.xml" />
+    <xi:include href="xml/element-rtpg722pay.xml" />
+    <xi:include href="xml/element-rtpg723depay.xml" />
+    <xi:include href="xml/element-rtpg723pay.xml" />
+    <xi:include href="xml/element-rtpg726depay.xml" />
+    <xi:include href="xml/element-rtpg726pay.xml" />
+    <xi:include href="xml/element-rtpg729depay.xml" />
+    <xi:include href="xml/element-rtpg729pay.xml" />
+    <xi:include href="xml/element-rtpgsmdepay.xml" />
+    <xi:include href="xml/element-rtpgsmpay.xml" />
+    <xi:include href="xml/element-rtpgstdepay.xml" />
+    <xi:include href="xml/element-rtpgstpay.xml" />
+    <xi:include href="xml/element-rtph261depay.xml" />
+    <xi:include href="xml/element-rtph261pay.xml" />
+    <xi:include href="xml/element-rtph263depay.xml" />
+    <xi:include href="xml/element-rtph263pay.xml" />
+    <xi:include href="xml/element-rtph263pdepay.xml" />
+    <xi:include href="xml/element-rtph263ppay.xml" />
+    <xi:include href="xml/element-rtph264depay.xml" />
+    <xi:include href="xml/element-rtph264pay.xml" />
+    <xi:include href="xml/element-rtph265depay.xml" />
+    <xi:include href="xml/element-rtph265pay.xml" />
+    <xi:include href="xml/element-rtpilbcdepay.xml" />
+    <xi:include href="xml/element-rtpilbcpay.xml" />
+    <xi:include href="xml/element-rtpj2kdepay.xml" />
     <xi:include href="xml/element-rtpj2kpay.xml" />
     <xi:include href="xml/element-rtpjitterbuffer.xml" />
+    <xi:include href="xml/element-rtpjpegdepay.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-rtpL24depay.xml" />
+    <xi:include href="xml/element-rtpL24pay.xml" />
+    <xi:include href="xml/element-rtpmp1sdepay.xml" />
+    <xi:include href="xml/element-rtpmp2tdepay.xml" />
+    <xi:include href="xml/element-rtpmp2tpay.xml" />
+    <xi:include href="xml/element-rtpmp4adepay.xml" />
+    <xi:include href="xml/element-rtpmp4apay.xml" />
+    <xi:include href="xml/element-rtpmp4gdepay.xml" />
+    <xi:include href="xml/element-rtpmp4gpay.xml" />
+    <xi:include href="xml/element-rtpmp4vdepay.xml" />
+    <xi:include href="xml/element-rtpmp4vpay.xml" />
+    <xi:include href="xml/element-rtpmpadepay.xml" />
+    <xi:include href="xml/element-rtpmpapay.xml" />
+    <xi:include href="xml/element-rtpmparobustdepay.xml" />
+    <xi:include href="xml/element-rtpmpvdepay.xml" />
+    <xi:include href="xml/element-rtpmpvpay.xml" />
     <xi:include href="xml/element-rtpmux.xml" />
-    <xi:include href="xml/element-rtpopuspay.xml" />
     <xi:include href="xml/element-rtpopusdepay.xml" />
+    <xi:include href="xml/element-rtpopuspay.xml" />
+    <xi:include href="xml/element-rtppcmadepay.xml" />
+    <xi:include href="xml/element-rtppcmapay.xml" />
+    <xi:include href="xml/element-rtppcmudepay.xml" />
+    <xi:include href="xml/element-rtppcmupay.xml" />
     <xi:include href="xml/element-rtpptdemux.xml" />
+    <xi:include href="xml/element-rtpqcelpdepay.xml" />
+    <xi:include href="xml/element-rtpqdm2depay.xml" />
+    <xi:include href="xml/element-rtprtxqueue.xml" />
     <xi:include href="xml/element-rtprtxreceive.xml" />
     <xi:include href="xml/element-rtprtxsend.xml" />
+    <xi:include href="xml/element-rtpsbcdepay.xml" />
     <xi:include href="xml/element-rtpsbcpay.xml" />
     <xi:include href="xml/element-rtpsession.xml" />
+    <xi:include href="xml/element-rtpsirendepay.xml" />
+    <xi:include href="xml/element-rtpsirenpay.xml" />
+    <xi:include href="xml/element-rtpspeexdepay.xml" />
+    <xi:include href="xml/element-rtpspeexpay.xml" />
     <xi:include href="xml/element-rtpssrcdemux.xml" />
+    <xi:include href="xml/element-rtpstreamdepay.xml" />
+    <xi:include href="xml/element-rtpstreampay.xml" />
+    <xi:include href="xml/element-rtpsv3vdepay.xml" />
+    <xi:include href="xml/element-rtptheoradepay.xml" />
+    <xi:include href="xml/element-rtptheorapay.xml" />
+    <xi:include href="xml/element-rtpvorbisdepay.xml" />
+    <xi:include href="xml/element-rtpvorbispay.xml" />
+    <xi:include href="xml/element-rtpvp8depay.xml" />
+    <xi:include href="xml/element-rtpvp8pay.xml" />
+    <xi:include href="xml/element-rtpvp9depay.xml" />
+    <xi:include href="xml/element-rtpvp9pay.xml" />
+    <xi:include href="xml/element-rtpvrawdepay.xml" />
+    <xi:include href="xml/element-rtpvrawpay.xml" />
+    <xi:include href="xml/element-rtpxqtdepay.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-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-souphttpclientsink.xml" />
     <xi:include href="xml/element-souphttpsrc.xml" />
     <xi:include href="xml/element-spectrum-example.xml" />
     <xi:include href="xml/element-spectrum.xml" />
@@ -185,6 +260,7 @@
     <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-testsink.xml" />
     <xi:include href="xml/element-udpsink.xml" />
     <xi:include href="xml/element-udpsrc.xml" />
     <xi:include href="xml/element-v4l2radio.xml" />
@@ -195,9 +271,12 @@
     <xi:include href="xml/element-videobox.xml" />
     <xi:include href="xml/element-videocrop.xml" />
     <xi:include href="xml/element-videoflip.xml" />
+    <xi:include href="xml/element-videomedian.xml" />
     <xi:include href="xml/element-videomixer.xml" />
     <xi:include href="xml/element-vp8dec.xml" />
     <xi:include href="xml/element-vp8enc.xml" />
+    <xi:include href="xml/element-vp9dec.xml" />
+    <xi:include href="xml/element-vp9enc.xml" />
     <xi:include href="xml/element-warptv.xml" />
     <xi:include href="xml/element-waveformsink.xml" />
     <xi:include href="xml/element-wavenc.xml" />
@@ -284,10 +363,4 @@
     <xi:include href="xml/plugin-ximagesrc.xml" />
     <xi:include href="xml/plugin-y4menc.xml" />
   </chapter>
-  
-  <chapter>
-    <title>gst-plugins-good Base Classes</title>
-    <xi:include href="xml/gstiirequalizer.xml" />
-    <xi:include href="xml/gstvideomixerpad.xml" />
-  </chapter>
 </book>
diff --git a/docs/plugins/gst-plugins-good-plugins-sections.txt b/docs/plugins/gst-plugins-good-plugins-sections.txt
index 8787f7a..d1c1a14 100644
--- a/docs/plugins/gst-plugins-good-plugins-sections.txt
+++ b/docs/plugins/gst-plugins-good-plugins-sections.txt
@@ -3,6 +3,65 @@
 <TITLE>3gppmux</TITLE>
 Gst3GPPMux
 <SUBSECTION Standard>
+Gst3GPPMuxClass
+GST_3_GPP_MUX
+GST_3_GPP_MUX_CAST
+GST_IS_3_GPP_MUX
+GST_3_GPP_MUX_CLASS
+GST_IS_3_GPP_MUX_CLASS
+GST_TYPE_3_GPP_MUX
+<SUBSECTION Private>
+gst_3_gpp_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-aasink</FILE>
+<TITLE>aasink</TITLE>
+GstAASink
+GstAASinkDitherers
+GstAASinkDrivers
+<SUBSECTION Standard>
+GstAASinkClass
+GST_AA_SINK
+GST_AA_SINK_CAST
+GST_IS_AA_SINK
+GST_AA_SINK_CLASS
+GST_IS_AA_SINK_CLASS
+GST_TYPE_AA_SINK
+<SUBSECTION Private>
+gst_aa_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-alawdec</FILE>
+<TITLE>alawdec</TITLE>
+GstALawDec
+<SUBSECTION Standard>
+GstALawDecClass
+GST_A_LAW_DEC
+GST_A_LAW_DEC_CAST
+GST_IS_A_LAW_DEC
+GST_A_LAW_DEC_CLASS
+GST_IS_A_LAW_DEC_CLASS
+GST_TYPE_A_LAW_DEC
+<SUBSECTION Private>
+gst_a_law_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-alawenc</FILE>
+<TITLE>alawenc</TITLE>
+GstALawEnc
+<SUBSECTION Standard>
+GstALawEncClass
+GST_A_LAW_ENC
+GST_A_LAW_ENC_CAST
+GST_IS_A_LAW_ENC
+GST_A_LAW_ENC_CLASS
+GST_IS_A_LAW_ENC_CLASS
+GST_TYPE_A_LAW_ENC
+<SUBSECTION Private>
+gst_a_law_enc_get_type
 </SECTION>
 
 <SECTION>
@@ -12,66 +71,45 @@
 <SUBSECTION Standard>
 GstAacParseClass
 GST_AAC_PARSE
-GST_AAC_PARSE_CLASS
+GST_AAC_PARSE_CAST
 GST_IS_AAC_PARSE
+GST_AAC_PARSE_CLASS
 GST_IS_AAC_PARSE_CLASS
 GST_TYPE_AAC_PARSE
+<SUBSECTION Private>
 gst_aac_parse_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-aasink</FILE>
-<TITLE>aasink</TITLE>
-GstAASink
-<SUBSECTION Standard>
-GstAASinkClass
-GST_AASINK
-GST_IS_AASINK
-GST_TYPE_AASINK
-GST_AASINK_CLASS
-GST_IS_AASINK_CLASS
-gst_aasink_get_type
-</SECTION>
-
-<SECTION>
 <FILE>element-ac3parse</FILE>
 <TITLE>ac3parse</TITLE>
 GstAc3Parse
 <SUBSECTION Standard>
 GstAc3ParseClass
 GST_AC3_PARSE
-GST_AC3_PARSE_CLASS
+GST_AC3_PARSE_CAST
 GST_IS_AC3_PARSE
+GST_AC3_PARSE_CLASS
 GST_IS_AC3_PARSE_CLASS
 GST_TYPE_AC3_PARSE
+<SUBSECTION Private>
 gst_ac3_parse_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-alawdec</FILE>
-<TITLE>alawdec</TITLE>
-GstALawDec
+<FILE>element-agingtv</FILE>
+<TITLE>agingtv</TITLE>
+GstAgingTV
 <SUBSECTION Standard>
-GstALawDecClass
-GST_ALAW_DEC
-GST_IS_ALAW_DEC
-GST_TYPE_ALAW_DEC
-GST_ALAW_DEC_CLASS
-GST_IS_ALAW_DEC_CLASS
-gst_alaw_dec_get_type
-</SECTION>
-
-<FILE>element-alawenc</FILE>
-<TITLE>alawenc</TITLE>
-GstALawEnc
-<SUBSECTION Standard>
-GstALawEncClass
-GST_ALAW_ENC
-GST_IS_ALAW_ENC
-GST_TYPE_ALAW_ENC
-GST_ALAW_ENC_CLASS
-GST_IS_ALAW_ENC_CLASS
-gst_alaw_enc_get_type
+GstAgingTVClass
+GST_AGING_TV
+GST_AGING_TV_CAST
+GST_IS_AGING_TV
+GST_AGING_TV_CLASS
+GST_IS_AGING_TV_CLASS
+GST_TYPE_AGING_TV
+<SUBSECTION Private>
+gst_aging_tv_get_type
 </SECTION>
 
 <SECTION>
@@ -82,11 +120,13 @@
 <SUBSECTION Standard>
 GstAlphaClass
 GST_ALPHA
+GST_ALPHA_CAST
 GST_IS_ALPHA
-GST_TYPE_ALPHA
-gst_alpha_get_type
 GST_ALPHA_CLASS
 GST_IS_ALPHA_CLASS
+GST_TYPE_ALPHA
+<SUBSECTION Private>
+gst_alpha_get_type
 </SECTION>
 
 <SECTION>
@@ -96,11 +136,13 @@
 <SUBSECTION Standard>
 GstAlphaColorClass
 GST_ALPHA_COLOR
+GST_ALPHA_COLOR_CAST
 GST_IS_ALPHA_COLOR
-GST_TYPE_ALPHA_COLOR
-gst_alpha_color_get_type
 GST_ALPHA_COLOR_CLASS
 GST_IS_ALPHA_COLOR_CLASS
+GST_TYPE_ALPHA_COLOR
+<SUBSECTION Private>
+gst_alpha_color_get_type
 </SECTION>
 
 <SECTION>
@@ -110,10 +152,12 @@
 <SUBSECTION Standard>
 GstAmrParseClass
 GST_AMR_PARSE
-GST_AMR_PARSE_CLASS
+GST_AMR_PARSE_CAST
 GST_IS_AMR_PARSE
+GST_AMR_PARSE_CLASS
 GST_IS_AMR_PARSE_CLASS
 GST_TYPE_AMR_PARSE
+<SUBSECTION Private>
 gst_amr_parse_get_type
 </SECTION>
 
@@ -124,11 +168,13 @@
 <SUBSECTION Standard>
 GstApeDemuxClass
 GST_APE_DEMUX
+GST_APE_DEMUX_CAST
 GST_IS_APE_DEMUX
-GST_TYPE_APE_DEMUX
-gst_ape_demux_get_type
 GST_APE_DEMUX_CLASS
 GST_IS_APE_DEMUX_CLASS
+GST_TYPE_APE_DEMUX
+<SUBSECTION Private>
+gst_ape_demux_get_type
 </SECTION>
 
 <SECTION>
@@ -138,26 +184,77 @@
 <SUBSECTION Standard>
 GstApev2MuxClass
 GST_APEV2_MUX
+GST_APEV2_MUX_CAST
 GST_IS_APEV2_MUX
-GST_TYPE_APEV2_MUX
-gst_apev2_mux_get_type
 GST_APEV2_MUX_CLASS
 GST_IS_APEV2_MUX_CLASS
+GST_TYPE_APEV2_MUX
+<SUBSECTION Private>
+gst_apev2_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-aspectratiocrop</FILE>
+<TITLE>aspectratiocrop</TITLE>
+GstAspectRatioCrop
+<SUBSECTION Standard>
+GstAspectRatioCropClass
+GST_ASPECT_RATIO_CROP
+GST_ASPECT_RATIO_CROP_CAST
+GST_IS_ASPECT_RATIO_CROP
+GST_ASPECT_RATIO_CROP_CLASS
+GST_IS_ASPECT_RATIO_CROP_CLASS
+GST_TYPE_ASPECT_RATIO_CROP
+<SUBSECTION Private>
+gst_aspect_ratio_crop_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-asteriskh263</FILE>
+<TITLE>asteriskh263</TITLE>
+GstAsteriskh263
+<SUBSECTION Standard>
+GstAsteriskh263Class
+GST_ASTERISKH263
+GST_ASTERISKH263_CAST
+GST_IS_ASTERISKH263
+GST_ASTERISKH263_CLASS
+GST_IS_ASTERISKH263_CLASS
+GST_TYPE_ASTERISKH263
+<SUBSECTION Private>
+gst_asteriskh263_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-auparse</FILE>
+<TITLE>auparse</TITLE>
+GstAuParse
+<SUBSECTION Standard>
+GstAuParseClass
+GST_AU_PARSE
+GST_AU_PARSE_CAST
+GST_IS_AU_PARSE
+GST_AU_PARSE_CLASS
+GST_IS_AU_PARSE_CLASS
+GST_TYPE_AU_PARSE
+<SUBSECTION Private>
+gst_au_parse_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-audioamplify</FILE>
 <TITLE>audioamplify</TITLE>
 GstAudioAmplify
+GstAudioAmplifyClippingMethod
 <SUBSECTION Standard>
 GstAudioAmplifyClass
-GstAudioAmplifyProcessFunc
 GST_AUDIO_AMPLIFY
-GST_AUDIO_AMPLIFY_CLASS
-GST_AUDIO_AMPLIFY_GET_CLASS
+GST_AUDIO_AMPLIFY_CAST
 GST_IS_AUDIO_AMPLIFY
+GST_AUDIO_AMPLIFY_CLASS
 GST_IS_AUDIO_AMPLIFY_CLASS
 GST_TYPE_AUDIO_AMPLIFY
+<SUBSECTION Private>
 gst_audio_amplify_get_type
 </SECTION>
 
@@ -165,14 +262,16 @@
 <FILE>element-audiochebband</FILE>
 <TITLE>audiochebband</TITLE>
 GstAudioChebBand
+GstAudioChebBandMode
 <SUBSECTION Standard>
 GstAudioChebBandClass
 GST_AUDIO_CHEB_BAND
-GST_AUDIO_CHEB_BAND_CLASS
-GST_AUDIO_CHEB_BAND_GET_CLASS
+GST_AUDIO_CHEB_BAND_CAST
 GST_IS_AUDIO_CHEB_BAND
+GST_AUDIO_CHEB_BAND_CLASS
 GST_IS_AUDIO_CHEB_BAND_CLASS
 GST_TYPE_AUDIO_CHEB_BAND
+<SUBSECTION Private>
 gst_audio_cheb_band_get_type
 </SECTION>
 
@@ -180,14 +279,16 @@
 <FILE>element-audiocheblimit</FILE>
 <TITLE>audiocheblimit</TITLE>
 GstAudioChebLimit
+GstAudioChebLimitMode
 <SUBSECTION Standard>
 GstAudioChebLimitClass
 GST_AUDIO_CHEB_LIMIT
-GST_AUDIO_CHEB_LIMIT_CLASS
-GST_AUDIO_CHEB_LIMIT_GET_CLASS
+GST_AUDIO_CHEB_LIMIT_CAST
 GST_IS_AUDIO_CHEB_LIMIT
+GST_AUDIO_CHEB_LIMIT_CLASS
 GST_IS_AUDIO_CHEB_LIMIT_CLASS
 GST_TYPE_AUDIO_CHEB_LIMIT
+<SUBSECTION Private>
 gst_audio_cheb_limit_get_type
 </SECTION>
 
@@ -195,15 +296,17 @@
 <FILE>element-audiodynamic</FILE>
 <TITLE>audiodynamic</TITLE>
 GstAudioDynamic
+GstAudioDynamicCharacteristics
+GstAudioDynamicMode
 <SUBSECTION Standard>
 GstAudioDynamicClass
-GstAudioDynamicProcessFunc
 GST_AUDIO_DYNAMIC
-GST_AUDIO_DYNAMIC_CLASS
-GST_AUDIO_DYNAMIC_GET_CLASS
+GST_AUDIO_DYNAMIC_CAST
 GST_IS_AUDIO_DYNAMIC
+GST_AUDIO_DYNAMIC_CLASS
 GST_IS_AUDIO_DYNAMIC_CLASS
 GST_TYPE_AUDIO_DYNAMIC
+<SUBSECTION Private>
 gst_audio_dynamic_get_type
 </SECTION>
 
@@ -213,13 +316,13 @@
 GstAudioEcho
 <SUBSECTION Standard>
 GstAudioEchoClass
-GstAudioEchoProcessFunc
 GST_AUDIO_ECHO
-GST_AUDIO_ECHO_CLASS
-GST_AUDIO_ECHO_GET_CLASS
+GST_AUDIO_ECHO_CAST
 GST_IS_AUDIO_ECHO
+GST_AUDIO_ECHO_CLASS
 GST_IS_AUDIO_ECHO_CLASS
 GST_TYPE_AUDIO_ECHO
+<SUBSECTION Private>
 gst_audio_echo_get_type
 </SECTION>
 
@@ -230,10 +333,12 @@
 <SUBSECTION Standard>
 GstAudioFIRFilterClass
 GST_AUDIO_FIR_FILTER
-GST_AUDIO_FIR_FILTER_CLASS
+GST_AUDIO_FIR_FILTER_CAST
 GST_IS_AUDIO_FIR_FILTER
+GST_AUDIO_FIR_FILTER_CLASS
 GST_IS_AUDIO_FIR_FILTER_CLASS
 GST_TYPE_AUDIO_FIR_FILTER
+<SUBSECTION Private>
 gst_audio_fir_filter_get_type
 </SECTION>
 
@@ -244,10 +349,12 @@
 <SUBSECTION Standard>
 GstAudioIIRFilterClass
 GST_AUDIO_IIR_FILTER
-GST_AUDIO_IIR_FILTER_CLASS
+GST_AUDIO_IIR_FILTER_CAST
 GST_IS_AUDIO_IIR_FILTER
+GST_AUDIO_IIR_FILTER_CLASS
 GST_IS_AUDIO_IIR_FILTER_CLASS
 GST_TYPE_AUDIO_IIR_FILTER
+<SUBSECTION Private>
 gst_audio_iir_filter_get_type
 </SECTION>
 
@@ -257,13 +364,13 @@
 GstAudioInvert
 <SUBSECTION Standard>
 GstAudioInvertClass
-GstAudioInvertProcessFunc
 GST_AUDIO_INVERT
-GST_AUDIO_INVERT_CLASS
-GST_AUDIO_INVERT_GET_CLASS
+GST_AUDIO_INVERT_CAST
 GST_IS_AUDIO_INVERT
+GST_AUDIO_INVERT_CLASS
 GST_IS_AUDIO_INVERT_CLASS
 GST_TYPE_AUDIO_INVERT
+<SUBSECTION Private>
 gst_audio_invert_get_type
 </SECTION>
 
@@ -273,13 +380,13 @@
 GstAudioKaraoke
 <SUBSECTION Standard>
 GstAudioKaraokeClass
-GstAudioKaraokeProcessFunc
 GST_AUDIO_KARAOKE
-GST_AUDIO_KARAOKE_CLASS
-GST_AUDIO_KARAOKE_GET_CLASS
+GST_AUDIO_KARAOKE_CAST
 GST_IS_AUDIO_KARAOKE
+GST_AUDIO_KARAOKE_CLASS
 GST_IS_AUDIO_KARAOKE_CLASS
 GST_TYPE_AUDIO_KARAOKE
+<SUBSECTION Private>
 gst_audio_karaoke_get_type
 </SECTION>
 
@@ -287,15 +394,16 @@
 <FILE>element-audiopanorama</FILE>
 <TITLE>audiopanorama</TITLE>
 GstAudioPanorama
+GstAudioPanoramaMethod
 <SUBSECTION Standard>
 GstAudioPanoramaClass
-GstAudioPanoramaProcessFunc
 GST_AUDIO_PANORAMA
-GST_AUDIO_PANORAMA_CLASS
-GST_AUDIO_PANORAMA_GET_CLASS
+GST_AUDIO_PANORAMA_CAST
 GST_IS_AUDIO_PANORAMA
+GST_AUDIO_PANORAMA_CLASS
 GST_IS_AUDIO_PANORAMA_CLASS
 GST_TYPE_AUDIO_PANORAMA
+<SUBSECTION Private>
 gst_audio_panorama_get_type
 </SECTION>
 
@@ -303,42 +411,36 @@
 <FILE>element-audiowsincband</FILE>
 <TITLE>audiowsincband</TITLE>
 GstAudioWSincBand
+GstAudioWSincBandMode
+GstAudioWSincBandWindow
 <SUBSECTION Standard>
 GstAudioWSincBandClass
-GST_AUDIO_WSINC_BAND
-GST_AUDIO_WSINC_BAND_CLASS
-GST_IS_AUDIO_WSINC_BAND
-GST_IS_AUDIO_WSINC_BAND_CLASS
-GST_TYPE_AUDIO_WSINC_BAND
-gst_audio_wsincband_get_type
+GST_AUDIO_W_SINC_BAND
+GST_AUDIO_W_SINC_BAND_CAST
+GST_IS_AUDIO_W_SINC_BAND
+GST_AUDIO_W_SINC_BAND_CLASS
+GST_IS_AUDIO_W_SINC_BAND_CLASS
+GST_TYPE_AUDIO_W_SINC_BAND
+<SUBSECTION Private>
+gst_audio_w_sinc_band_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-audiowsinclimit</FILE>
 <TITLE>audiowsinclimit</TITLE>
 GstAudioWSincLimit
+GstAudioWSincLimitMode
+GstAudioWSincLimitWindow
 <SUBSECTION Standard>
 GstAudioWSincLimitClass
-GST_AUDIO_WSINC_LIMIT
-GST_AUDIO_WSINC_LIMIT_CLASS
-GST_IS_AUDIO_WSINC_LIMIT
-GST_IS_AUDIO_WSINC_LIMIT_CLASS
-GST_TYPE_AUDIO_WSINC_LIMIT
-gst_audio_wsinclimit_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-auparse</FILE>
-<TITLE>auparse</TITLE>
-GstAuParse
-<SUBSECTION Standard>
-GstAuParseClass
-GST_TYPE_AU_PARSE
-GST_AU_PARSE
-GST_AU_PARSE_CLASS
-GST_IS_AU_PARSE
-GST_IS_AU_PARSE_CLASS
-gst_au_parse_get_type
+GST_AUDIO_W_SINC_LIMIT
+GST_AUDIO_W_SINC_LIMIT_CAST
+GST_IS_AUDIO_W_SINC_LIMIT
+GST_AUDIO_W_SINC_LIMIT_CLASS
+GST_IS_AUDIO_W_SINC_LIMIT_CLASS
+GST_TYPE_AUDIO_W_SINC_LIMIT
+<SUBSECTION Private>
+gst_audio_w_sinc_limit_get_type
 </SECTION>
 
 <SECTION>
@@ -347,11 +449,13 @@
 GstAutoAudioSink
 <SUBSECTION Standard>
 GstAutoAudioSinkClass
-GST_TYPE_AUTO_AUDIO_SINK
 GST_AUTO_AUDIO_SINK
-GST_AUTO_AUDIO_SINK_CLASS
+GST_AUTO_AUDIO_SINK_CAST
 GST_IS_AUTO_AUDIO_SINK
+GST_AUTO_AUDIO_SINK_CLASS
 GST_IS_AUTO_AUDIO_SINK_CLASS
+GST_TYPE_AUTO_AUDIO_SINK
+<SUBSECTION Private>
 gst_auto_audio_sink_get_type
 </SECTION>
 
@@ -361,11 +465,13 @@
 GstAutoAudioSrc
 <SUBSECTION Standard>
 GstAutoAudioSrcClass
-GST_TYPE_AUTO_AUDIO_SRC
 GST_AUTO_AUDIO_SRC
-GST_AUTO_AUDIO_SRC_CLASS
+GST_AUTO_AUDIO_SRC_CAST
 GST_IS_AUTO_AUDIO_SRC
+GST_AUTO_AUDIO_SRC_CLASS
 GST_IS_AUTO_AUDIO_SRC_CLASS
+GST_TYPE_AUTO_AUDIO_SRC
+<SUBSECTION Private>
 gst_auto_audio_src_get_type
 </SECTION>
 
@@ -375,11 +481,13 @@
 GstAutoVideoSink
 <SUBSECTION Standard>
 GstAutoVideoSinkClass
-GST_TYPE_AUTO_VIDEO_SINK
 GST_AUTO_VIDEO_SINK
-GST_AUTO_VIDEO_SINK_CLASS
+GST_AUTO_VIDEO_SINK_CAST
 GST_IS_AUTO_VIDEO_SINK
+GST_AUTO_VIDEO_SINK_CLASS
 GST_IS_AUTO_VIDEO_SINK_CLASS
+GST_TYPE_AUTO_VIDEO_SINK
+<SUBSECTION Private>
 gst_auto_video_sink_get_type
 </SECTION>
 
@@ -389,11 +497,13 @@
 GstAutoVideoSrc
 <SUBSECTION Standard>
 GstAutoVideoSrcClass
-GST_TYPE_AUTO_VIDEO_SRC
 GST_AUTO_VIDEO_SRC
-GST_AUTO_VIDEO_SRC_CLASS
+GST_AUTO_VIDEO_SRC_CAST
 GST_IS_AUTO_VIDEO_SRC
+GST_AUTO_VIDEO_SRC_CLASS
 GST_IS_AUTO_VIDEO_SRC_CLASS
+GST_TYPE_AUTO_VIDEO_SRC
+<SUBSECTION Private>
 gst_auto_video_src_get_type
 </SECTION>
 
@@ -403,22 +513,14 @@
 GstAviDemux
 <SUBSECTION Standard>
 GstAviDemuxClass
-GstAviAudioPad
-GstAviCollectData
-GstAviDemuxHeaderState
-GstAviDemuxState
-GstAviPad
-GstAviVideoPad
-GstAviIndexEntry
-GstAviStream
-GST_TYPE_AVI_DEMUX
 GST_AVI_DEMUX
-GST_AVI_DEMUX_CLASS
+GST_AVI_DEMUX_CAST
 GST_IS_AVI_DEMUX
+GST_AVI_DEMUX_CLASS
 GST_IS_AVI_DEMUX_CLASS
-GST_AVI_DEMUX_MAX_STREAMS
+GST_TYPE_AVI_DEMUX
+<SUBSECTION Private>
 gst_avi_demux_get_type
-CHUNKID_TO_STREAMNR
 </SECTION>
 
 <SECTION>
@@ -427,19 +529,14 @@
 GstAviMux
 <SUBSECTION Standard>
 GstAviMuxClass
-GstAviPadHook
-GST_AVI_MAX_SIZE
-GST_TYPE_AVI_MUX
 GST_AVI_MUX
-GST_AVI_MUX_CLASS
+GST_AVI_MUX_CAST
 GST_IS_AVI_MUX
+GST_AVI_MUX_CLASS
 GST_IS_AVI_MUX_CLASS
+GST_TYPE_AVI_MUX
+<SUBSECTION Private>
 gst_avi_mux_get_type
-GST_AVI_INDEX_OF_CHUNKS
-GST_AVI_INDEX_OF_INDEXES
-GST_AVI_SUPERINDEX_COUNT
-gst_avi_superindex_entry
-gst_riff_strh_full
 </SECTION>
 
 <SECTION>
@@ -448,27 +545,47 @@
 GstAviSubtitle
 <SUBSECTION Standard>
 GstAviSubtitleClass
-GST_TYPE_AVI_SUBTITLE
 GST_AVI_SUBTITLE
-GST_AVI_SUBTITLE_CLASS
-GST_AVI_SUBTITLE_GET_CLASS
+GST_AVI_SUBTITLE_CAST
 GST_IS_AVI_SUBTITLE
+GST_AVI_SUBTITLE_CLASS
 GST_IS_AVI_SUBTITLE_CLASS
+GST_TYPE_AVI_SUBTITLE
+<SUBSECTION Private>
 gst_avi_subtitle_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-breakmydata</FILE>
+<TITLE>breakmydata</TITLE>
+GstBreakMyData
+<SUBSECTION Standard>
+GstBreakMyDataClass
+GST_BREAK_MY_DATA
+GST_BREAK_MY_DATA_CAST
+GST_IS_BREAK_MY_DATA
+GST_BREAK_MY_DATA_CLASS
+GST_IS_BREAK_MY_DATA_CLASS
+GST_TYPE_BREAK_MY_DATA
+<SUBSECTION Private>
+gst_break_my_data_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-cacasink</FILE>
 <TITLE>cacasink</TITLE>
 GstCACASink
+GstCACASinkDithering
 <SUBSECTION Standard>
 GstCACASinkClass
-GST_CACASINK
-GST_IS_CACASINK
-GST_TYPE_CACASINK
-GST_CACASINK_CLASS
-GST_IS_CACASINK_CLASS
-gst_cacasink_get_type
+GST_CACA_SINK
+GST_CACA_SINK_CAST
+GST_IS_CACA_SINK
+GST_CACA_SINK_CLASS
+GST_IS_CACA_SINK_CLASS
+GST_TYPE_CACA_SINK
+<SUBSECTION Private>
+gst_caca_sink_get_type
 </SECTION>
 
 <SECTION>
@@ -477,9 +594,13 @@
 GstCairoOverlay
 <SUBSECTION Standard>
 GstCairoOverlayClass
-GST_TYPE_CAIRO_OVERLAY
 GST_CAIRO_OVERLAY
+GST_CAIRO_OVERLAY_CAST
+GST_IS_CAIRO_OVERLAY
 GST_CAIRO_OVERLAY_CLASS
+GST_IS_CAIRO_OVERLAY_CLASS
+GST_TYPE_CAIRO_OVERLAY
+<SUBSECTION Private>
 gst_cairo_overlay_get_type
 </SECTION>
 
@@ -489,105 +610,49 @@
 GstCapsSetter
 <SUBSECTION Standard>
 GstCapsSetterClass
-GST_TYPE_CAPS_SETTER
 GST_CAPS_SETTER
+GST_CAPS_SETTER_CAST
 GST_IS_CAPS_SETTER
 GST_CAPS_SETTER_CLASS
 GST_IS_CAPS_SETTER_CLASS
+GST_TYPE_CAPS_SETTER
+<SUBSECTION Private>
 gst_caps_setter_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-cpureport</FILE>
+<TITLE>cpureport</TITLE>
+GstCpuReport
+<SUBSECTION Standard>
+GstCpuReportClass
+GST_CPU_REPORT
+GST_CPU_REPORT_CAST
+GST_IS_CPU_REPORT
+GST_CPU_REPORT_CLASS
+GST_IS_CPU_REPORT_CLASS
+GST_TYPE_CPU_REPORT
+<SUBSECTION Private>
+gst_cpu_report_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-cutter</FILE>
 <TITLE>cutter</TITLE>
 GstCutter
 <SUBSECTION Standard>
+GstCutterClass
 GST_CUTTER
-GST_CUTTER_CLASS
+GST_CUTTER_CAST
 GST_IS_CUTTER
+GST_CUTTER_CLASS
 GST_IS_CUTTER_CLASS
 GST_TYPE_CUTTER
-GstCutterClass
+<SUBSECTION Private>
 gst_cutter_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-dcaparse</FILE>
-<TITLE>dcaparse</TITLE>
-GstDcaParse
-<SUBSECTION Standard>
-GstDcaParseClass
-GST_DCA_PARSE
-GST_DCA_PARSE_CLASS
-GST_IS_DCA_PARSE
-GST_IS_DCA_PARSE_CLASS
-GST_TYPE_DCA_PARSE
-gst_dca_parse_get_type
-</SECTION>
-
-
-<SECTION>
-<FILE>element-deinterlace</FILE>
-<TITLE>deinterlace</TITLE>
-GstDeinterlace
-<SUBSECTION Standard>
-GST_DEINTERLACE_MAX_FIELD_HISTORY
-BUILD_X86_ASM
-PICTURE_PROGRESSIVE
-PICTURE_INTERLACED_BOTTOM
-PICTURE_INTERLACED_TOP
-PICTURE_INTERLACED_MASK
-GstDeinterlaceClass
-GST_IS_DEINTERLACE
-GST_IS_DEINTERLACE_CLASS
-GST_DEINTERLACE
-GST_DEINTERLACE_CLASS
-GST_TYPE_DEINTERLACE
-gst_deinterlace_get_type
-GstDeinterlaceFieldLayout
-GstDeinterlaceFields
-GstDeinterlaceMethods
-GstDeinterlaceMode
-GstDeinterlaceScanlineData
-GstDeinterlaceMethod
-GstDeinterlaceMethodClass
-GST_DEINTERLACE_METHOD
-GST_DEINTERLACE_METHOD_CAST
-GST_DEINTERLACE_METHOD_CLASS
-GST_DEINTERLACE_METHOD_GET_CLASS
-GST_IS_DEINTERLACE_METHOD
-GST_IS_DEINTERLACE_METHOD_CLASS
-GST_TYPE_DEINTERLACE_METHOD
-gst_deinterlace_method_get_type
-GstDeinterlaceSimpleMethod
-GstDeinterlaceSimpleMethodClass
-GST_DEINTERLACE_SIMPLE_METHOD
-GST_DEINTERLACE_SIMPLE_METHOD_CAST
-GST_DEINTERLACE_SIMPLE_METHOD_CLASS
-GST_DEINTERLACE_SIMPLE_METHOD_GET_CLASS
-GST_IS_DEINTERLACE_SIMPLE_METHOD
-GST_IS_DEINTERLACE_SIMPLE_METHOD_CLASS
-GST_TYPE_DEINTERLACE_SIMPLE_METHOD
-gst_deinterlace_simple_method_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-deinterleave</FILE>
-<TITLE>deinterleave</TITLE>
-GstDeinterleave
-<SUBSECTION Standard>
-GST_DEINTERLEAVE
-GST_DEINTERLEAVE_CLASS
-GST_DEINTERLEAVE_GET_CLASS
-GST_IS_DEINTERLEAVE
-GST_IS_DEINTERLEAVE_CLASS
-GST_TYPE_DEINTERLEAVE
-GstDeinterleaveClass
-GstDeinterleaveFunc
-gst_deinterleave_get_type
-</SECTION>
-
-<SECTION>
 <FILE>element-directsoundsink</FILE>
 <TITLE>directsoundsink</TITLE>
 GstDirectSoundSink
@@ -608,18 +673,15 @@
 <TITLE>dtmfsrc</TITLE>
 GstDTMFSrc
 <SUBSECTION Standard>
-GstDTMFEventType
-GstDTMFSrcEvent
 GstDTMFSrcClass
-GST_TYPE_DTMF_SRC
 GST_DTMF_SRC
 GST_DTMF_SRC_CAST
-GST_DTMF_SRC_CLASS
-GST_DTMF_SRC_GET_CLASS
 GST_IS_DTMF_SRC
+GST_DTMF_SRC_CLASS
 GST_IS_DTMF_SRC_CLASS
+GST_TYPE_DTMF_SRC
+<SUBSECTION Private>
 gst_dtmf_src_get_type
-gst_dtmf_src_plugin_init
 </SECTION>
 
 <SECTION>
@@ -628,40 +690,31 @@
 GstDV1394Src
 <SUBSECTION Standard>
 GstDV1394SrcClass
-GST_TYPE_DV1394SRC
-GST_DV1394SRC
-GST_DV1394SRC_CLASS
-GST_IS_DV1394SRC
-GST_IS_DV1394SRC_CLASS
-gst_dv1394src_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-hdv1394src</FILE>
-<TITLE>hdv1394src</TITLE>
-GstHDV1394Src
-<SUBSECTION Standard>
-GstHDV1394SrcClass
-GST_TYPE_HDV1394SRC
-GST_HDV1394SRC
-GST_HDV1394SRC_CLASS
-GST_IS_HDV1394SRC
-GST_IS_HDV1394SRC_CLASS
-gst_hdv1394src_get_type
+GST_D_V1394_SRC
+GST_D_V1394_SRC_CAST
+GST_IS_D_V1394_SRC
+GST_D_V1394_SRC_CLASS
+GST_IS_D_V1394_SRC_CLASS
+GST_TYPE_D_V1394_SRC
+<SUBSECTION Private>
+gst_d_v1394_src_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-dvdec</FILE>
 <TITLE>dvdec</TITLE>
 GstDVDec
+GstDVDecQualityEnum
 <SUBSECTION Standard>
 GstDVDecClass
-GST_TYPE_DVDEC
-GST_DVDEC
-GST_DVDEC_CLASS
-GST_IS_DVDEC
-GST_IS_DVDEC_CLASS
-gst_dvdec_get_type
+GST_DV_DEC
+GST_DV_DEC_CAST
+GST_IS_DV_DEC
+GST_DV_DEC_CLASS
+GST_IS_DV_DEC_CLASS
+GST_TYPE_DV_DEC
+<SUBSECTION Private>
+gst_dv_dec_get_type
 </SECTION>
 
 <SECTION>
@@ -670,75 +723,115 @@
 GstDVDemux
 <SUBSECTION Standard>
 GstDVDemuxClass
-GstDVDemuxSeekHandler
-GST_TYPE_DVDEMUX
-GST_DVDEMUX
-GST_DVDEMUX_CLASS
-GST_IS_DVDEMUX
-GST_IS_DVDEMUX_CLASS
-gst_dvdemux_get_type
-</SECTION>
-
-<SECTION>
-<FILE>gstiirequalizer</FILE>
-<TITLE>GstIirEqualizer</TITLE>
-GstIirEqualizer
-<SUBSECTION Standard>
-GstIirEqualizerBand
-GstIirEqualizerClass
-GST_IIR_EQUALIZER
-GST_IIR_EQUALIZER_CLASS
-GST_IS_IIR_EQUALIZER
-GST_IS_IIR_EQUALIZER_CLASS
-GST_TYPE_IIR_EQUALIZER
-gst_iir_equalizer_get_type
-gst_iir_equalizer_compute_frequencies
-</SECTION>
-
-<SECTION>
-<FILE>element-equalizer-3bands</FILE>
-<TITLE>equalizer-3bands</TITLE>
-GstIirEqualizer3Bands
-<SUBSECTION Standard>
-GstIirEqualizer3BandsClass
-GST_IIR_EQUALIZER_3BANDS
-GST_IIR_EQUALIZER_3BANDS_CLASS
-GST_IS_IIR_EQUALIZER_3BANDS
-GST_IS_IIR_EQUALIZER_3BANDS_CLASS
-GST_TYPE_IIR_EQUALIZER_3BANDS
-gst_iir_equalizer_3bands_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-equalizer-10bands</FILE>
-<TITLE>equalizer-10bands</TITLE>
-GstIirEqualizer10Bands
-<SUBSECTION Standard>
-GstIirEqualizer10BandsClass
-GST_IIR_EQUALIZER_10BANDS
-GST_IIR_EQUALIZER_10BANDS_CLASS
-GST_IS_IIR_EQUALIZER_10BANDS
-GST_IS_IIR_EQUALIZER_10BANDS_CLASS
-GST_TYPE_IIR_EQUALIZER_10BANDS
-gst_iir_equalizer_10bands_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-equalizer-nbands</FILE>
-<TITLE>equalizer-nbands</TITLE>
-GstIirEqualizerNBands
-<SUBSECTION Standard>
-GstIirEqualizerNBandsClass
-GST_IIR_EQUALIZER_NBANDS
-GST_IIR_EQUALIZER_NBANDS_CLASS
-GST_IS_IIR_EQUALIZER_NBANDS
-GST_IS_IIR_EQUALIZER_NBANDS_CLASS
-GST_TYPE_IIR_EQUALIZER_NBANDS
-gst_iir_equalizer_nbands_get_type
+GST_DV_DEMUX
+GST_DV_DEMUX_CAST
+GST_IS_DV_DEMUX
+GST_DV_DEMUX_CLASS
+GST_IS_DV_DEMUX_CLASS
+GST_TYPE_DV_DEMUX
 <SUBSECTION Private>
-HIGHEST_FREQ
-LOWEST_FREQ
-ProcessFunc
+gst_dv_demux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-dcaparse</FILE>
+<TITLE>dcaparse</TITLE>
+GstDcaParse
+<SUBSECTION Standard>
+GstDcaParseClass
+GST_DCA_PARSE
+GST_DCA_PARSE_CAST
+GST_IS_DCA_PARSE
+GST_DCA_PARSE_CLASS
+GST_IS_DCA_PARSE_CLASS
+GST_TYPE_DCA_PARSE
+<SUBSECTION Private>
+gst_dca_parse_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-deinterlace</FILE>
+<TITLE>deinterlace</TITLE>
+GstDeinterlace
+GstDeinterlaceFields
+GstDeinterlaceLocking
+GstDeinterlaceMethods
+GstDeinterlaceModes
+GstDeinterlaceFieldLayout
+<SUBSECTION Standard>
+GstDeinterlaceClass
+GST_DEINTERLACE
+GST_DEINTERLACE_CAST
+GST_IS_DEINTERLACE
+GST_DEINTERLACE_CLASS
+GST_IS_DEINTERLACE_CLASS
+GST_TYPE_DEINTERLACE
+<SUBSECTION Private>
+gst_deinterlace_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-deinterleave</FILE>
+<TITLE>deinterleave</TITLE>
+GstDeinterleave
+<SUBSECTION Standard>
+GstDeinterleaveClass
+GST_DEINTERLEAVE
+GST_DEINTERLEAVE_CAST
+GST_IS_DEINTERLEAVE
+GST_DEINTERLEAVE_CLASS
+GST_IS_DEINTERLEAVE_CLASS
+GST_TYPE_DEINTERLEAVE
+<SUBSECTION Private>
+gst_deinterleave_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-dicetv</FILE>
+<TITLE>dicetv</TITLE>
+GstDiceTV
+<SUBSECTION Standard>
+GstDiceTVClass
+GST_DICE_TV
+GST_DICE_TV_CAST
+GST_IS_DICE_TV
+GST_DICE_TV_CLASS
+GST_IS_DICE_TV_CLASS
+GST_TYPE_DICE_TV
+<SUBSECTION Private>
+gst_dice_tv_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-dynudpsink</FILE>
+<TITLE>dynudpsink</TITLE>
+GstDynUDPSink
+<SUBSECTION Standard>
+GstDynUDPSinkClass
+GST_DYN_UDP_SINK
+GST_DYN_UDP_SINK_CAST
+GST_IS_DYN_UDP_SINK
+GST_DYN_UDP_SINK_CLASS
+GST_IS_DYN_UDP_SINK_CLASS
+GST_TYPE_DYN_UDP_SINK
+<SUBSECTION Private>
+gst_dyn_udp_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-edgetv</FILE>
+<TITLE>edgetv</TITLE>
+GstEdgeTV
+<SUBSECTION Standard>
+GstEdgeTVClass
+GST_EDGE_TV
+GST_EDGE_TV_CAST
+GST_IS_EDGE_TV
+GST_EDGE_TV_CLASS
+GST_IS_EDGE_TV_CLASS
+GST_TYPE_EDGE_TV
+<SUBSECTION Private>
+gst_edge_tv_get_type
 </SECTION>
 
 <SECTION>
@@ -747,11 +840,13 @@
 GstFlacDec
 <SUBSECTION Standard>
 GstFlacDecClass
-GST_TYPE_FLAC_DEC
 GST_FLAC_DEC
-GST_FLAC_DEC_CLASS
+GST_FLAC_DEC_CAST
 GST_IS_FLAC_DEC
+GST_FLAC_DEC_CLASS
 GST_IS_FLAC_DEC_CLASS
+GST_TYPE_FLAC_DEC
+<SUBSECTION Private>
 gst_flac_dec_get_type
 </SECTION>
 
@@ -759,14 +854,16 @@
 <FILE>element-flacenc</FILE>
 <TITLE>flacenc</TITLE>
 GstFlacEnc
+GstFlacEncQuality
 <SUBSECTION Standard>
 GstFlacEncClass
-GstFlacTagState
-GST_TYPE_FLAC_ENC
 GST_FLAC_ENC
-GST_FLAC_ENC_CLASS
+GST_FLAC_ENC_CAST
 GST_IS_FLAC_ENC
+GST_FLAC_ENC_CLASS
 GST_IS_FLAC_ENC_CLASS
+GST_TYPE_FLAC_ENC
+<SUBSECTION Private>
 gst_flac_enc_get_type
 </SECTION>
 
@@ -777,10 +874,12 @@
 <SUBSECTION Standard>
 GstFlacParseClass
 GST_FLAC_PARSE
-GST_FLAC_PARSE_CLASS
+GST_FLAC_PARSE_CAST
 GST_IS_FLAC_PARSE
+GST_FLAC_PARSE_CLASS
 GST_IS_FLAC_PARSE_CLASS
 GST_TYPE_FLAC_PARSE
+<SUBSECTION Private>
 gst_flac_parse_get_type
 </SECTION>
 
@@ -790,11 +889,13 @@
 GstFlacTag
 <SUBSECTION Standard>
 GstFlacTagClass
-GST_TYPE_FLAC_TAG
 GST_FLAC_TAG
-GST_FLAC_TAG_CLASS
+GST_FLAC_TAG_CAST
 GST_IS_FLAC_TAG
+GST_FLAC_TAG_CLASS
 GST_IS_FLAC_TAG_CLASS
+GST_TYPE_FLAC_TAG
+<SUBSECTION Private>
 gst_flac_tag_get_type
 </SECTION>
 
@@ -804,12 +905,13 @@
 GstFlvDemux
 <SUBSECTION Standard>
 GstFlvDemuxClass
-GstFlvDemuxState
 GST_FLV_DEMUX
-GST_FLV_DEMUX_CLASS
+GST_FLV_DEMUX_CAST
 GST_IS_FLV_DEMUX
+GST_FLV_DEMUX_CLASS
 GST_IS_FLV_DEMUX_CLASS
 GST_TYPE_FLV_DEMUX
+<SUBSECTION Private>
 gst_flv_demux_get_type
 </SECTION>
 
@@ -819,12 +921,13 @@
 GstFlvMux
 <SUBSECTION Standard>
 GstFlvMuxClass
-GstFlvMuxState
 GST_FLV_MUX
-GST_FLV_MUX_CLASS
+GST_FLV_MUX_CAST
 GST_IS_FLV_MUX
+GST_FLV_MUX_CLASS
 GST_IS_FLV_MUX_CLASS
 GST_TYPE_FLV_MUX
+<SUBSECTION Private>
 gst_flv_mux_get_type
 </SECTION>
 
@@ -834,13 +937,14 @@
 GstFlxDec
 <SUBSECTION Standard>
 GstFlxDecClass
-GstFlxDecState
-GST_FLXDEC
-GST_FLXDEC_CLASS
-GST_IS_FLXDEC
-GST_IS_FLXDEC_CLASS
-GST_TYPE_FLXDEC
-gst_flxdec_get_type
+GST_FLX_DEC
+GST_FLX_DEC_CAST
+GST_IS_FLX_DEC
+GST_FLX_DEC_CLASS
+GST_IS_FLX_DEC_CLASS
+GST_TYPE_FLX_DEC
+<SUBSECTION Private>
+gst_flx_dec_get_type
 </SECTION>
 
 <SECTION>
@@ -850,24 +954,60 @@
 <SUBSECTION Standard>
 GstGammaClass
 GST_GAMMA
+GST_GAMMA_CAST
 GST_IS_GAMMA
-GST_TYPE_GAMMA
 GST_GAMMA_CLASS
 GST_IS_GAMMA_CLASS
+GST_TYPE_GAMMA
+<SUBSECTION Private>
 gst_gamma_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-gdkpixbufdec</FILE>
+<TITLE>gdkpixbufdec</TITLE>
+GstGdkPixbufDec
+<SUBSECTION Standard>
+GstGdkPixbufDecClass
+GST_GDK_PIXBUF_DEC
+GST_GDK_PIXBUF_DEC_CAST
+GST_IS_GDK_PIXBUF_DEC
+GST_GDK_PIXBUF_DEC_CLASS
+GST_IS_GDK_PIXBUF_DEC_CLASS
+GST_TYPE_GDK_PIXBUF_DEC
+<SUBSECTION Private>
+gst_gdk_pixbuf_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-gdkpixbufoverlay</FILE>
+<TITLE>gdkpixbufoverlay</TITLE>
+GstGdkPixbufOverlay
+<SUBSECTION Standard>
+GstGdkPixbufOverlayClass
+GST_GDK_PIXBUF_OVERLAY
+GST_GDK_PIXBUF_OVERLAY_CAST
+GST_IS_GDK_PIXBUF_OVERLAY
+GST_GDK_PIXBUF_OVERLAY_CLASS
+GST_IS_GDK_PIXBUF_OVERLAY_CLASS
+GST_TYPE_GDK_PIXBUF_OVERLAY
+<SUBSECTION Private>
+gst_gdk_pixbuf_overlay_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-gdkpixbufsink</FILE>
 <TITLE>gdkpixbufsink</TITLE>
 GstGdkPixbufSink
 <SUBSECTION Standard>
 GstGdkPixbufSinkClass
-GST_TYPE_GDK_PIXBUF_SINK
 GST_GDK_PIXBUF_SINK
-GST_GDK_PIXBUF_SINK_CLASS
+GST_GDK_PIXBUF_SINK_CAST
 GST_IS_GDK_PIXBUF_SINK
+GST_GDK_PIXBUF_SINK_CLASS
 GST_IS_GDK_PIXBUF_SINK_CLASS
+GST_TYPE_GDK_PIXBUF_SINK
+<SUBSECTION Private>
 gst_gdk_pixbuf_sink_get_type
 </SECTION>
 
@@ -877,12 +1017,13 @@
 GstGoom
 <SUBSECTION Standard>
 GstGoomClass
-GOOM_SAMPLES
 GST_GOOM
+GST_GOOM_CAST
 GST_IS_GOOM
-GST_TYPE_GOOM
 GST_GOOM_CLASS
 GST_IS_GOOM_CLASS
+GST_TYPE_GOOM
+<SUBSECTION Private>
 gst_goom_get_type
 </SECTION>
 
@@ -891,119 +1032,31 @@
 <TITLE>goom2k1</TITLE>
 GstGoom2k1
 <SUBSECTION Standard>
-GstGoomClass2k1
-GOOM2K1_SAMPLES
+GstGoom2k1Class
 GST_GOOM2K1
+GST_GOOM2K1_CAST
 GST_IS_GOOM2K1
-GST_TYPE_GOOM2K1
 GST_GOOM2K1_CLASS
 GST_IS_GOOM2K1_CLASS
+GST_TYPE_GOOM2K1
+<SUBSECTION Private>
+gst_goom2k1_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpbin</FILE>
-<TITLE>rtpbin</TITLE>
-GstRtpBin
-RTPJitterBufferMode
-GstRTCPSync
+<FILE>element-hdv1394src</FILE>
+<TITLE>hdv1394src</TITLE>
+GstHDV1394Src
 <SUBSECTION Standard>
-GstRtpBinPrivate
-GstRtpBinClass
-GST_RTP_BIN
-GST_IS_RTP_BIN
-GST_TYPE_RTP_BIN
-gst_rtp_bin_get_type
-GST_RTP_BIN_CLASS
-GST_IS_RTP_BIN_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpjitterbuffer</FILE>
-<TITLE>rtpjitterbuffer</TITLE>
-GstRtpJitterBuffer
-<SUBSECTION Standard>
-GstRtpJitterBufferClass
-GstRtpJitterBufferPrivate
-GST_RTP_JITTER_BUFFER
-GST_IS_RTP_JITTER_BUFFER
-GST_TYPE_RTP_JITTER_BUFFER
-gst_rtp_jitter_buffer_get_type
-GST_RTP_JITTER_BUFFER_CLASS
-GST_IS_RTP_JITTER_BUFFER_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpptdemux</FILE>
-<TITLE>rtpptdemux</TITLE>
-GstRtpPtDemux
-<SUBSECTION Standard>
-GstRtpPtDemuxClass
-GstRtpPtDemuxPad
-GST_RTP_PT_DEMUX
-GST_IS_RTP_PT_DEMUX
-GST_TYPE_RTP_PT_DEMUX
-gst_rtp_pt_demux_get_type
-GST_RTP_PT_DEMUX_CLASS
-GST_IS_RTP_PT_DEMUX_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpsession</FILE>
-<TITLE>rtpsession</TITLE>
-GstRtpSession
-<SUBSECTION Standard>
-GstRtpSessionClass
-GstRtpSessionPrivate
-GST_RTP_SESSION
-GST_IS_RTP_SESSION
-GST_TYPE_RTP_SESSION
-gst_rtp_session_get_type
-GST_RTP_SESSION_CLASS
-GST_IS_RTP_SESSION_CLASS
-GST_RTP_SESSION_CAST
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpssrcdemux</FILE>
-<TITLE>rtpssrcdemux</TITLE>
-GstRtpSsrcDemux
-<SUBSECTION Standard>
-GstRtpSsrcDemuxClass
-GstRtpSsrcDemuxPad
-GST_RTP_SSRC_DEMUX
-GST_IS_RTP_SSRC_DEMUX
-GST_TYPE_RTP_SSRC_DEMUX
-gst_rtp_ssrc_demux_get_type
-GST_RTP_SSRC_DEMUX_CLASS
-GST_IS_RTP_SSRC_DEMUX_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-rtprtxsend</FILE>
-<TITLE>rtprtxsend</TITLE>
-GstRtpRtxSend
-<SUBSECTION Standard>
-GstRtpRtxSendClass
-GST_RTP_RTX_SEND
-GST_IS_RTP_RTX_SEND
-GST_TYPE_RTP_RTX_SEND
-gst_rtp_rtx_send_get_type
-GST_RTP_RTX_SEND_CLASS
-GST_IS_RTP_RTX_SEND_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-rtprtxreceive</FILE>
-<TITLE>rtprtxreceive</TITLE>
-GstRtpRtxReceive
-<SUBSECTION Standard>
-GstRtpRtxReceiveClass
-GST_RTP_RTX_RECEIVE
-GST_IS_RTP_RTX_RECEIVE
-GST_TYPE_RTP_RTX_RECEIVE
-gst_rtp_rtx_receive_get_type
-GST_RTP_RTX_RECEIVE_CLASS
-GST_IS_RTP_RTX_RECEIVE_CLASS
+GstHDV1394SrcClass
+GST_HD_V1394_SRC
+GST_HD_V1394_SRC_CAST
+GST_IS_HD_V1394_SRC
+GST_HD_V1394_SRC_CLASS
+GST_IS_HD_V1394_SRC_CLASS
+GST_TYPE_HD_V1394_SRC
+<SUBSECTION Private>
+gst_hd_v1394_src_get_type
 </SECTION>
 
 <SECTION>
@@ -1012,12 +1065,14 @@
 GstICYDemux
 <SUBSECTION Standard>
 GstICYDemuxClass
-GST_TYPE_ICYDEMUX
-GST_ICYDEMUX
-GST_ICYDEMUX_CLASS
-GST_IS_ICYDEMUX
-GST_IS_ICYDEMUX_CLASS
-gst_icydemux_get_type
+GST_ICY_DEMUX
+GST_ICY_DEMUX_CAST
+GST_IS_ICY_DEMUX
+GST_ICY_DEMUX_CLASS
+GST_IS_ICY_DEMUX_CLASS
+GST_TYPE_ICY_DEMUX
+<SUBSECTION Private>
+gst_icy_demux_get_type
 </SECTION>
 
 <SECTION>
@@ -1026,12 +1081,30 @@
 GstID3Demux
 <SUBSECTION Standard>
 GstID3DemuxClass
-GST_TYPE_ID3DEMUX
-GST_ID3DEMUX
-GST_ID3DEMUX_CLASS
-GST_IS_ID3DEMUX
-GST_IS_ID3DEMUX_CLASS
-gst_id3demux_get_type
+GST_I_D3_DEMUX
+GST_I_D3_DEMUX_CAST
+GST_IS_I_D3_DEMUX
+GST_I_D3_DEMUX_CLASS
+GST_IS_I_D3_DEMUX_CLASS
+GST_TYPE_I_D3_DEMUX
+<SUBSECTION Private>
+gst_i_d3_demux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-ismlmux</FILE>
+<TITLE>ismlmux</TITLE>
+GstISMLMux
+<SUBSECTION Standard>
+GstISMLMuxClass
+GST_ISML_MUX
+GST_ISML_MUX_CAST
+GST_IS_ISML_MUX
+GST_ISML_MUX_CLASS
+GST_IS_ISML_MUX_CLASS
+GST_TYPE_ISML_MUX
+<SUBSECTION Private>
+gst_isml_mux_get_type
 </SECTION>
 
 <SECTION>
@@ -1040,26 +1113,93 @@
 GstId3v2Mux
 <SUBSECTION Standard>
 GstId3v2MuxClass
-GST_TYPE_ID3V2_MUX
 GST_ID3V2_MUX
-GST_ID3V2_MUX_CLASS
+GST_ID3V2_MUX_CAST
 GST_IS_ID3V2_MUX
+GST_ID3V2_MUX_CLASS
 GST_IS_ID3V2_MUX_CLASS
+GST_TYPE_ID3V2_MUX
+<SUBSECTION Private>
 gst_id3v2_mux_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-iirequalizer</FILE>
+<TITLE>iirequalizer</TITLE>
+GstIirEqualizer
+<SUBSECTION Standard>
+GstIirEqualizerClass
+GST_IIR_EQUALIZER
+GST_IIR_EQUALIZER_CAST
+GST_IS_IIR_EQUALIZER
+GST_IIR_EQUALIZER_CLASS
+GST_IS_IIR_EQUALIZER_CLASS
+GST_TYPE_IIR_EQUALIZER
+<SUBSECTION Private>
+gst_iir_equalizer_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-equalizer-10bands</FILE>
+<TITLE>equalizer-10bands</TITLE>
+GstIirEqualizer10Bands
+<SUBSECTION Standard>
+GstIirEqualizer10BandsClass
+GST_IIR_EQUALIZER10_BANDS
+GST_IIR_EQUALIZER10_BANDS_CAST
+GST_IS_IIR_EQUALIZER10_BANDS
+GST_IIR_EQUALIZER10_BANDS_CLASS
+GST_IS_IIR_EQUALIZER10_BANDS_CLASS
+GST_TYPE_IIR_EQUALIZER10_BANDS
+<SUBSECTION Private>
+gst_iir_equalizer10_bands_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-equalizer-3bands</FILE>
+<TITLE>equalizer-3bands</TITLE>
+GstIirEqualizer3Bands
+<SUBSECTION Standard>
+GstIirEqualizer3BandsClass
+GST_IIR_EQUALIZER3_BANDS
+GST_IIR_EQUALIZER3_BANDS_CAST
+GST_IS_IIR_EQUALIZER3_BANDS
+GST_IIR_EQUALIZER3_BANDS_CLASS
+GST_IS_IIR_EQUALIZER3_BANDS_CLASS
+GST_TYPE_IIR_EQUALIZER3_BANDS
+<SUBSECTION Private>
+gst_iir_equalizer3_bands_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-equalizer-nbands</FILE>
+<TITLE>equalizer-nbands</TITLE>
+GstIirEqualizerNBands
+<SUBSECTION Standard>
+GstIirEqualizerNBandsClass
+GST_IIR_EQUALIZER_N_BANDS
+GST_IIR_EQUALIZER_N_BANDS_CAST
+GST_IS_IIR_EQUALIZER_N_BANDS
+GST_IIR_EQUALIZER_N_BANDS_CLASS
+GST_IS_IIR_EQUALIZER_N_BANDS_CLASS
+GST_TYPE_IIR_EQUALIZER_N_BANDS
+<SUBSECTION Private>
+gst_iir_equalizer_n_bands_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-imagefreeze</FILE>
 <TITLE>imagefreeze</TITLE>
 GstImageFreeze
 <SUBSECTION Standard>
 GstImageFreezeClass
 GST_IMAGE_FREEZE
-GST_IMAGE_FREEZE_CLASS
+GST_IMAGE_FREEZE_CAST
 GST_IS_IMAGE_FREEZE
+GST_IMAGE_FREEZE_CLASS
 GST_IS_IMAGE_FREEZE_CLASS
-GST_IMAGE_FREEZE_GET_CLASS
 GST_TYPE_IMAGE_FREEZE
+<SUBSECTION Private>
 gst_image_freeze_get_type
 </SECTION>
 
@@ -1068,65 +1208,62 @@
 <TITLE>interleave</TITLE>
 GstInterleave
 <SUBSECTION Standard>
+GstInterleaveClass
 GST_INTERLEAVE
-GST_INTERLEAVE_CLASS
-GST_INTERLEAVE_GET_CLASS
+GST_INTERLEAVE_CAST
 GST_IS_INTERLEAVE
+GST_INTERLEAVE_CLASS
 GST_IS_INTERLEAVE_CLASS
 GST_TYPE_INTERLEAVE
-GstInterleaveClass
-GstInterleaveFunc
+<SUBSECTION Private>
 gst_interleave_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-ismlmux</FILE>
-<TITLE>ismlmux</TITLE>
-GstISMLMux
-<SUBSECTION Standard>
-</SECTION>
-
-<SECTION>
-<FILE>element-jackaudiosrc</FILE>
-<TITLE>jackaudiosrc</TITLE>
-GstJackAudioSrc
-<SUBSECTION Standard>
-GstJackAudioSrcClass
-GST_JACK_AUDIO_SRC
-GST_JACK_AUDIO_SRC_CLASS
-GST_JACK_AUDIO_SRC_GET_CLASS
-GST_IS_JACK_AUDIO_SRC
-GST_IS_JACK_AUDIO_SRC_CLASS
-GST_TYPE_JACK_AUDIO_SRC
-gst_jack_audio_src_get_type
-</SECTION>
-
-<SECTION>
 <FILE>element-jackaudiosink</FILE>
 <TITLE>jackaudiosink</TITLE>
 GstJackAudioSink
 <SUBSECTION Standard>
 GstJackAudioSinkClass
 GST_JACK_AUDIO_SINK
-GST_JACK_AUDIO_SINK_CLASS
-GST_JACK_AUDIO_SINK_GET_CLASS
+GST_JACK_AUDIO_SINK_CAST
 GST_IS_JACK_AUDIO_SINK
+GST_JACK_AUDIO_SINK_CLASS
 GST_IS_JACK_AUDIO_SINK_CLASS
 GST_TYPE_JACK_AUDIO_SINK
+<SUBSECTION Private>
 gst_jack_audio_sink_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-jackaudiosrc</FILE>
+<TITLE>jackaudiosrc</TITLE>
+GstJackAudioSrc
+<SUBSECTION Standard>
+GstJackAudioSrcClass
+GST_JACK_AUDIO_SRC
+GST_JACK_AUDIO_SRC_CAST
+GST_IS_JACK_AUDIO_SRC
+GST_JACK_AUDIO_SRC_CLASS
+GST_IS_JACK_AUDIO_SRC_CLASS
+GST_TYPE_JACK_AUDIO_SRC
+<SUBSECTION Private>
+gst_jack_audio_src_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-jpegdec</FILE>
 <TITLE>jpegdec</TITLE>
 GstJpegDec
 <SUBSECTION Standard>
 GstJpegDecClass
 GST_JPEG_DEC
+GST_JPEG_DEC_CAST
 GST_IS_JPEG_DEC
-GST_TYPE_JPEG_DEC
 GST_JPEG_DEC_CLASS
 GST_IS_JPEG_DEC_CLASS
+GST_TYPE_JPEG_DEC
+<SUBSECTION Private>
 gst_jpeg_dec_get_type
 </SECTION>
 
@@ -1136,12 +1273,14 @@
 GstJpegEnc
 <SUBSECTION Standard>
 GstJpegEncClass
-GST_JPEGENC
-GST_IS_JPEGENC
-GST_TYPE_JPEGENC
-GST_JPEGENC_CLASS
-GST_IS_JPEGENC_CLASS
-gst_jpegenc_get_type
+GST_JPEG_ENC
+GST_JPEG_ENC_CAST
+GST_IS_JPEG_ENC
+GST_JPEG_ENC_CLASS
+GST_IS_JPEG_ENC_CLASS
+GST_TYPE_JPEG_ENC
+<SUBSECTION Private>
+gst_jpeg_enc_get_type
 </SECTION>
 
 <SECTION>
@@ -1150,29 +1289,46 @@
 GstLevel
 <SUBSECTION Standard>
 GstLevelClass
-GST_TYPE_LEVEL
 GST_LEVEL
-GST_LEVEL_CLASS
-GST_LEVEL_GET_CLASS
+GST_LEVEL_CAST
 GST_IS_LEVEL
+GST_LEVEL_CLASS
 GST_IS_LEVEL_CLASS
+GST_TYPE_LEVEL
+<SUBSECTION Private>
 gst_level_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-matroskamux</FILE>
-<TITLE>matroskamux</TITLE>
-GstMatroskaMux
+<FILE>element-mj2mux</FILE>
+<TITLE>mj2mux</TITLE>
+GstMJ2Mux
 <SUBSECTION Standard>
-GstMatroskaMuxClass
-GstMatroskaMuxState
-GstMatroskaMetaSeekIndex
-GST_TYPE_MATROSKA_MUX
-GST_MATROSKA_MUX
-GST_MATROSKA_MUX_CLASS
-GST_IS_MATROSKA_MUX
-GST_IS_MATROSKA_MUX_CLASS
-gst_matroska_mux_get_type
+GstMJ2MuxClass
+GST_M_J2_MUX
+GST_M_J2_MUX_CAST
+GST_IS_M_J2_MUX
+GST_M_J2_MUX_CLASS
+GST_IS_M_J2_MUX_CLASS
+GST_TYPE_M_J2_MUX
+<SUBSECTION Private>
+gst_m_j2_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-mp4mux</FILE>
+<TITLE>mp4mux</TITLE>
+GstMP4Mux
+<SUBSECTION Standard>
+GstMP4MuxClass
+GST_M_P4_MUX
+GST_M_P4_MUX_CAST
+GST_IS_M_P4_MUX
+GST_M_P4_MUX_CLASS
+GST_IS_M_P4_MUX_CLASS
+GST_TYPE_M_P4_MUX
+<SUBSECTION Private>
+gst_m_p4_mux_get_type
 </SECTION>
 
 <SECTION>
@@ -1181,20 +1337,30 @@
 GstMatroskaDemux
 <SUBSECTION Standard>
 GstMatroskaDemuxClass
-GstMatroskaDemuxState
-GST_TYPE_MATROSKA_DEMUX
 GST_MATROSKA_DEMUX
-GST_MATROSKA_DEMUX_CLASS
+GST_MATROSKA_DEMUX_CAST
 GST_IS_MATROSKA_DEMUX
+GST_MATROSKA_DEMUX_CLASS
 GST_IS_MATROSKA_DEMUX_CLASS
-gst_matroska_demux_plugin_init
+GST_TYPE_MATROSKA_DEMUX
+<SUBSECTION Private>
+gst_matroska_demux_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-mj2mux</FILE>
-<TITLE>mj2mux</TITLE>
-GstMJ2Mux
+<FILE>element-matroskamux</FILE>
+<TITLE>matroskamux</TITLE>
+GstMatroskaMux
 <SUBSECTION Standard>
+GstMatroskaMuxClass
+GST_MATROSKA_MUX
+GST_MATROSKA_MUX_CAST
+GST_IS_MATROSKA_MUX
+GST_MATROSKA_MUX_CLASS
+GST_IS_MATROSKA_MUX_CLASS
+GST_TYPE_MATROSKA_MUX
+<SUBSECTION Private>
+gst_matroska_mux_get_type
 </SECTION>
 
 <SECTION>
@@ -1212,65 +1378,67 @@
 </SECTION>
 
 <SECTION>
+<FILE>element-matroskaparse</FILE>
+<TITLE>matroskaparse</TITLE>
+GstMatroskaParse
+<SUBSECTION Standard>
+GstMatroskaParseClass
+GST_MATROSKA_PARSE
+GST_MATROSKA_PARSE_CAST
+GST_IS_MATROSKA_PARSE
+GST_MATROSKA_PARSE_CLASS
+GST_IS_MATROSKA_PARSE_CLASS
+GST_TYPE_MATROSKA_PARSE
+<SUBSECTION Private>
+gst_matroska_parse_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-mpegaudioparse</FILE>
 <TITLE>mpegaudioparse</TITLE>
 GstMpegAudioParse
 <SUBSECTION Standard>
 GstMpegAudioParseClass
 GST_MPEG_AUDIO_PARSE
-GST_MPEG_AUDIO_PARSE_CLASS
+GST_MPEG_AUDIO_PARSE_CAST
 GST_IS_MPEG_AUDIO_PARSE
+GST_MPEG_AUDIO_PARSE_CLASS
 GST_IS_MPEG_AUDIO_PARSE_CLASS
 GST_TYPE_MPEG_AUDIO_PARSE
+<SUBSECTION Private>
 gst_mpeg_audio_parse_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-mp4mux</FILE>
-<TITLE>mp4mux</TITLE>
-GstMP4Mux
-<SUBSECTION Standard>
-</SECTION>
-
-<SECTION>
 <FILE>element-mulawdec</FILE>
 <TITLE>mulawdec</TITLE>
 GstMuLawDec
 <SUBSECTION Standard>
 GstMuLawDecClass
-GST_MULAWDEC
-GST_IS_MULAWDEC
-GST_TYPE_MULAWDEC
-GST_MULAWDEC_CLASS
-GST_IS_MULAWDEC_CLASS
-gst_mulawdec_get_type
+GST_MU_LAW_DEC
+GST_MU_LAW_DEC_CAST
+GST_IS_MU_LAW_DEC
+GST_MU_LAW_DEC_CLASS
+GST_IS_MU_LAW_DEC_CLASS
+GST_TYPE_MU_LAW_DEC
+<SUBSECTION Private>
+gst_mu_law_dec_get_type
 </SECTION>
 
+<SECTION>
 <FILE>element-mulawenc</FILE>
 <TITLE>mulawenc</TITLE>
 GstMuLawEnc
 <SUBSECTION Standard>
 GstMuLawEncClass
-GST_MULAWENC
-GST_IS_MULAWENC
-GST_TYPE_MULAWENC
-GST_MULAWENC_CLASS
-GST_IS_MULAWENC_CLASS
-gst_mulawenc_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-multifilesrc</FILE>
-<TITLE>multifilesrc</TITLE>
-GstMultiFileSrc
-<SUBSECTION Standard>
-GstMultiFileSrcClass
-GST_MULTI_FILE_SRC
-GST_MULTI_FILE_SRC_CLASS
-GST_IS_MULTI_FILE_SRC
-GST_IS_MULTI_FILE_SRC_CLASS
-GST_TYPE_MULTI_FILE_SRC
-gst_multi_file_src_get_type
+GST_MU_LAW_ENC
+GST_MU_LAW_ENC_CAST
+GST_IS_MU_LAW_ENC
+GST_MU_LAW_ENC_CLASS
+GST_IS_MU_LAW_ENC_CLASS
+GST_TYPE_MU_LAW_ENC
+<SUBSECTION Private>
+gst_mu_law_enc_get_type
 </SECTION>
 
 <SECTION>
@@ -1281,46 +1449,29 @@
 <SUBSECTION Standard>
 GstMultiFileSinkClass
 GST_MULTI_FILE_SINK
-GST_MULTI_FILE_SINK_CLASS
+GST_MULTI_FILE_SINK_CAST
 GST_IS_MULTI_FILE_SINK
+GST_MULTI_FILE_SINK_CLASS
 GST_IS_MULTI_FILE_SINK_CLASS
 GST_TYPE_MULTI_FILE_SINK
+<SUBSECTION Private>
 gst_multi_file_sink_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-multipartdemux</FILE>
-<TITLE>multipartdemux</TITLE>
-GstMultipartDemux
+<FILE>element-multifilesrc</FILE>
+<TITLE>multifilesrc</TITLE>
+GstMultiFileSrc
 <SUBSECTION Standard>
-GstMultipartDemuxClass
-GST_TYPE_MULTIPART_DEMUX
-GST_MULTIPART_DEMUX
-GST_MULTIPART_DEMUX_CLASS
-GST_IS_MULTIPART_DEMUX
-GST_IS_MULTIPART_DEMUX_CLASS
-GST_MULTIPART_DEMUX_GET_CLASS
-MULTIPART_DATA_EOS
-MULTIPART_DATA_ERROR
-MULTIPART_NEED_MORE_DATA
-gst_multipart_demux_get_type
-gst_multipart_demux_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-multipartmux</FILE>
-<TITLE>multipartmux</TITLE>
-GstMultipartMux
-<SUBSECTION Standard>
-GstMultipartMuxClass
-GST_TYPE_MULTIPART_MUX
-GST_MULTIPART_MUX
-GST_MULTIPART_MUX_CLASS
-GST_IS_MULTIPART_MUX
-GST_IS_MULTIPART_MUX_CLASS
-GST_MULTIPART_MUX_GET_CLASS
-gst_multipart_mux_get_type
-gst_multipart_mux_plugin_init
+GstMultiFileSrcClass
+GST_MULTI_FILE_SRC
+GST_MULTI_FILE_SRC_CAST
+GST_IS_MULTI_FILE_SRC
+GST_MULTI_FILE_SRC_CLASS
+GST_IS_MULTI_FILE_SRC_CLASS
+GST_TYPE_MULTI_FILE_SRC
+<SUBSECTION Private>
+gst_multi_file_src_get_type
 </SECTION>
 
 <SECTION>
@@ -1329,17 +1480,95 @@
 GstMultiUDPSink
 <SUBSECTION Standard>
 GstMultiUDPSinkClass
-GstUDPClient
-gst_multiudpsink_add
-gst_multiudpsink_remove
-gst_multiudpsink_clear
-gst_multiudpsink_get_stats
-GST_MULTIUDPSINK
-GST_IS_MULTIUDPSINK
-GST_TYPE_MULTIUDPSINK
-GST_MULTIUDPSINK_CLASS
-GST_IS_MULTIUDPSINK_CLASS
-gst_multiudpsink_get_type
+GST_MULTI_UDP_SINK
+GST_MULTI_UDP_SINK_CAST
+GST_IS_MULTI_UDP_SINK
+GST_MULTI_UDP_SINK_CLASS
+GST_IS_MULTI_UDP_SINK_CLASS
+GST_TYPE_MULTI_UDP_SINK
+<SUBSECTION Private>
+gst_multi_udp_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-multipartdemux</FILE>
+<TITLE>multipartdemux</TITLE>
+GstMultipartDemux
+<SUBSECTION Standard>
+GstMultipartDemuxClass
+GST_MULTIPART_DEMUX
+GST_MULTIPART_DEMUX_CAST
+GST_IS_MULTIPART_DEMUX
+GST_MULTIPART_DEMUX_CLASS
+GST_IS_MULTIPART_DEMUX_CLASS
+GST_TYPE_MULTIPART_DEMUX
+<SUBSECTION Private>
+gst_multipart_demux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-multipartmux</FILE>
+<TITLE>multipartmux</TITLE>
+GstMultipartMux
+<SUBSECTION Standard>
+GstMultipartMuxClass
+GST_MULTIPART_MUX
+GST_MULTIPART_MUX_CAST
+GST_IS_MULTIPART_MUX
+GST_MULTIPART_MUX_CLASS
+GST_IS_MULTIPART_MUX_CLASS
+GST_TYPE_MULTIPART_MUX
+<SUBSECTION Private>
+gst_multipart_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-navseek</FILE>
+<TITLE>navseek</TITLE>
+GstNavSeek
+<SUBSECTION Standard>
+GstNavSeekClass
+GST_NAV_SEEK
+GST_NAV_SEEK_CAST
+GST_IS_NAV_SEEK
+GST_NAV_SEEK_CLASS
+GST_IS_NAV_SEEK_CLASS
+GST_TYPE_NAV_SEEK
+<SUBSECTION Private>
+gst_nav_seek_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-navigationtest</FILE>
+<TITLE>navigationtest</TITLE>
+GstNavigationtest
+<SUBSECTION Standard>
+GstNavigationtestClass
+GST_NAVIGATIONTEST
+GST_NAVIGATIONTEST_CAST
+GST_IS_NAVIGATIONTEST
+GST_NAVIGATIONTEST_CLASS
+GST_IS_NAVIGATIONTEST_CLASS
+GST_TYPE_NAVIGATIONTEST
+<SUBSECTION Private>
+gst_navigationtest_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-optv</FILE>
+<TITLE>optv</TITLE>
+GstOpTV
+GstOpTVMode
+<SUBSECTION Standard>
+GstOpTVClass
+GST_OP_TV
+GST_OP_TV_CAST
+GST_IS_OP_TV
+GST_OP_TV_CLASS
+GST_IS_OP_TV_CLASS
+GST_TYPE_OP_TV
+<SUBSECTION Private>
+gst_op_tv_get_type
 </SECTION>
 
 <SECTION>
@@ -1348,13 +1577,14 @@
 GstOss4Sink
 <SUBSECTION Standard>
 GstOss4SinkClass
-GST_TYPE_OSS4_SINK
 GST_OSS4_SINK
-GST_OSS4_SINK_CLASS
-GST_IS_OSS4_SINK
-GST_IS_OSS4_SINK_CLASS
-gst_oss4_sink_get_type
 GST_OSS4_SINK_CAST
+GST_IS_OSS4_SINK
+GST_OSS4_SINK_CLASS
+GST_IS_OSS4_SINK_CLASS
+GST_TYPE_OSS4_SINK
+<SUBSECTION Private>
+gst_oss4_sink_get_type
 </SECTION>
 
 <SECTION>
@@ -1363,20 +1593,14 @@
 GstOss4Source
 <SUBSECTION Standard>
 GstOss4SourceClass
-GST_TYPE_OSS4_SOURCE
 GST_OSS4_SOURCE
-GST_OSS4_SOURCE_CLASS
-GST_IS_OSS4_SOURCE
-GST_IS_OSS4_SOURCE_CLASS
-gst_oss4_source_get_type
-GST_IS_OSS4_SOURCE_INPUT
-GST_IS_OSS4_SOURCE_INPUT_CLASS
 GST_OSS4_SOURCE_CAST
-GST_OSS4_SOURCE_INPUT
-GST_OSS4_SOURCE_INPUT_CLASS
-GST_TYPE_OSS4_SOURCE_INPUT
-GstOss4SourceInput
-GstOss4SourceInputClass
+GST_IS_OSS4_SOURCE
+GST_OSS4_SOURCE_CLASS
+GST_IS_OSS4_SOURCE_CLASS
+GST_TYPE_OSS4_SOURCE
+<SUBSECTION Private>
+gst_oss4_source_get_type
 </SECTION>
 
 <SECTION>
@@ -1385,11 +1609,13 @@
 GstOssSink
 <SUBSECTION Standard>
 GstOssSinkClass
-GST_TYPE_OSSSINK
-GST_OSSSINK
-GST_OSSSINK_CLASS
-GST_IS_OSSSINK
-GST_IS_OSSSINK_CLASS
+GST_OSS_SINK
+GST_OSS_SINK_CAST
+GST_IS_OSS_SINK
+GST_OSS_SINK_CLASS
+GST_IS_OSS_SINK_CLASS
+GST_TYPE_OSS_SINK
+<SUBSECTION Private>
 gst_oss_sink_get_type
 </SECTION>
 
@@ -1399,11 +1625,13 @@
 GstOssSrc
 <SUBSECTION Standard>
 GstOssSrcClass
-GST_TYPE_OSS_SRC
 GST_OSS_SRC
-GST_OSS_SRC_CLASS
+GST_OSS_SRC_CAST
 GST_IS_OSS_SRC
+GST_OSS_SRC_CLASS
 GST_IS_OSS_SRC_CLASS
+GST_TYPE_OSS_SRC
+<SUBSECTION Private>
 gst_oss_src_get_type
 </SECTION>
 
@@ -1454,12 +1682,14 @@
 GstPngDec
 <SUBSECTION Standard>
 GstPngDecClass
-GST_PNGDEC
-GST_IS_PNGDEC
-GST_TYPE_PNGDEC
-GST_PNGDEC_CLASS
-GST_IS_PNGDEC_CLASS
-gst_pngdec_get_type
+GST_PNG_DEC
+GST_PNG_DEC_CAST
+GST_IS_PNG_DEC
+GST_PNG_DEC_CLASS
+GST_IS_PNG_DEC_CLASS
+GST_TYPE_PNG_DEC
+<SUBSECTION Private>
+gst_png_dec_get_type
 </SECTION>
 
 <SECTION>
@@ -1468,42 +1698,14 @@
 GstPngEnc
 <SUBSECTION Standard>
 GstPngEncClass
-GST_PNGENC
-GST_IS_PNGENC
-GST_TYPE_PNGENC
-GST_PNGENC_CLASS
-GST_IS_PNGENC_CLASS
-gst_pngenc_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-pulsesink</FILE>
-<TITLE>pulsesink</TITLE>
-GstPulseSink
-<SUBSECTION Standard>
-GstPulseSinkClass
-GST_PULSESINK
-GST_IS_PULSESINK
-GST_TYPE_PULSESINK
-GST_PULSESINK_CLASS
-GST_IS_PULSESINK_CLASS
-GST_PULSESINK_CAST
-gst_pulsesink_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-pulsesrc</FILE>
-<TITLE>pulsesrc</TITLE>
-GstPulseSrc
-<SUBSECTION Standard>
-GstPulseSrcClass
-GST_PULSESRC
-GST_IS_PULSESRC
-GST_TYPE_PULSESRC
-GST_PULSESRC_CLASS
-GST_IS_PULSESRC_CLASS
-GST_PULSESRC_CAST
-gst_pulsesrc_get_type
+GST_PNG_ENC
+GST_PNG_ENC_CAST
+GST_IS_PNG_ENC
+GST_PNG_ENC_CLASS
+GST_IS_PNG_ENC_CLASS
+GST_TYPE_PNG_ENC
+<SUBSECTION Private>
+gst_png_enc_get_type
 </SECTION>
 
 <SECTION>
@@ -1512,68 +1714,514 @@
 GstProgressReport
 <SUBSECTION Standard>
 GstProgressReportClass
-GST_TYPE_PROGRESS_REPORT
 GST_PROGRESS_REPORT
-GST_PROGRESS_REPORT_CLASS
+GST_PROGRESS_REPORT_CAST
 GST_IS_PROGRESS_REPORT
+GST_PROGRESS_REPORT_CLASS
 GST_IS_PROGRESS_REPORT_CLASS
+GST_TYPE_PROGRESS_REPORT
+<SUBSECTION Private>
 gst_progress_report_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-pulsesink</FILE>
+<TITLE>pulsesink</TITLE>
+GstPulseSink
+<SUBSECTION Standard>
+GstPulseSinkClass
+GST_PULSE_SINK
+GST_PULSE_SINK_CAST
+GST_IS_PULSE_SINK
+GST_PULSE_SINK_CLASS
+GST_IS_PULSE_SINK_CLASS
+GST_TYPE_PULSE_SINK
+<SUBSECTION Private>
+gst_pulse_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-pulsesrc</FILE>
+<TITLE>pulsesrc</TITLE>
+GstPulseSrc
+<SUBSECTION Standard>
+GstPulseSrcClass
+GST_PULSE_SRC
+GST_PULSE_SRC_CAST
+GST_IS_PULSE_SRC
+GST_PULSE_SRC_CLASS
+GST_IS_PULSE_SRC_CLASS
+GST_TYPE_PULSE_SRC
+<SUBSECTION Private>
+gst_pulse_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-pushfilesrc</FILE>
+<TITLE>pushfilesrc</TITLE>
+GstPushFileSrc
+<SUBSECTION Standard>
+GstPushFileSrcClass
+GST_PUSH_FILE_SRC
+GST_PUSH_FILE_SRC_CAST
+GST_IS_PUSH_FILE_SRC
+GST_PUSH_FILE_SRC_CLASS
+GST_IS_PUSH_FILE_SRC_CLASS
+GST_TYPE_PUSH_FILE_SRC
+<SUBSECTION Private>
+gst_push_file_src_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-qtdemux</FILE>
 <TITLE>qtdemux</TITLE>
 GstQTDemux
 <SUBSECTION Standard>
 GstQTDemuxClass
-QtDemuxStream
-GST_QT_DEMUX_CLASSIFICATION_TAG
-GST_QT_DEMUX_PRIVATE_TAG
-GST_IS_QTDEMUX
-GST_IS_QTDEMUX_CLASS
-GST_QTDEMUX
-GST_QTDEMUX_CAST
-GST_QTDEMUX_CLASS
-GST_QTDEMUX_MAX_STREAMS
-GST_TYPE_QTDEMUX
-gst_qtdemux_get_type
+GST_QT_DEMUX
+GST_QT_DEMUX_CAST
+GST_IS_QT_DEMUX
+GST_QT_DEMUX_CLASS
+GST_IS_QT_DEMUX_CLASS
+GST_TYPE_QT_DEMUX
+<SUBSECTION Private>
+gst_qt_demux_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-qtmoovrecover</FILE>
 <TITLE>qtmoovrecover</TITLE>
 GstQTMoovRecover
-GstQTMoovRecoverClass
-gst_qt_moov_recover_get_type
-gst_qt_moov_recover_register
 <SUBSECTION Standard>
+GstQTMoovRecoverClass
+GST_QT_MOOV_RECOVER
+GST_QT_MOOV_RECOVER_CAST
+GST_IS_QT_MOOV_RECOVER
+GST_QT_MOOV_RECOVER_CLASS
+GST_IS_QT_MOOV_RECOVER_CLASS
+GST_TYPE_QT_MOOV_RECOVER
+<SUBSECTION Private>
+gst_qt_moov_recover_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-qtmux</FILE>
 <TITLE>qtmux</TITLE>
 GstQTMux
+GstQTMuxDtsMethods
 <SUBSECTION Standard>
 GstQTMuxClass
 GST_QT_MUX
-GST_QT_MUX_CLASS
+GST_QT_MUX_CAST
 GST_IS_QT_MUX
+GST_QT_MUX_CLASS
 GST_IS_QT_MUX_CLASS
 GST_TYPE_QT_MUX
+<SUBSECTION Private>
 gst_qt_mux_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-quarktv</FILE>
+<TITLE>quarktv</TITLE>
+GstQuarkTV
+<SUBSECTION Standard>
+GstQuarkTVClass
+GST_QUARK_TV
+GST_QUARK_TV_CAST
+GST_IS_QUARK_TV
+GST_QUARK_TV_CLASS
+GST_IS_QUARK_TV_CLASS
+GST_TYPE_QUARK_TV
+<SUBSECTION Private>
+gst_quark_tv_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpbvdepay</FILE>
+<TITLE>rtpbvdepay</TITLE>
+GstRTPBVDepay
+<SUBSECTION Standard>
+GstRTPBVDepayClass
+GST_RTPBV_DEPAY
+GST_RTPBV_DEPAY_CAST
+GST_IS_RTPBV_DEPAY
+GST_RTPBV_DEPAY_CLASS
+GST_IS_RTPBV_DEPAY_CLASS
+GST_TYPE_RTPBV_DEPAY
+<SUBSECTION Private>
+gst_rtpbv_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpbvpay</FILE>
+<TITLE>rtpbvpay</TITLE>
+GstRTPBVPay
+<SUBSECTION Standard>
+GstRTPBVPayClass
+GST_RTPBV_PAY
+GST_RTPBV_PAY_CAST
+GST_IS_RTPBV_PAY
+GST_RTPBV_PAY_CLASS
+GST_IS_RTPBV_PAY_CLASS
+GST_TYPE_RTPBV_PAY
+<SUBSECTION Private>
+gst_rtpbv_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdtmfmux</FILE>
+<TITLE>rtpdtmfmux</TITLE>
+GstRTPDTMFMux
+<SUBSECTION Standard>
+GstRTPDTMFMuxClass
+GST_RTPDTMF_MUX
+GST_RTPDTMF_MUX_CAST
+GST_IS_RTPDTMF_MUX
+GST_RTPDTMF_MUX_CLASS
+GST_IS_RTPDTMF_MUX_CLASS
+GST_TYPE_RTPDTMF_MUX
+<SUBSECTION Private>
+gst_rtpdtmf_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdtmfsrc</FILE>
+<TITLE>rtpdtmfsrc</TITLE>
+GstRTPDTMFSrc
+<SUBSECTION Standard>
+GstRTPDTMFSrcClass
+GST_RTPDTMF_SRC
+GST_RTPDTMF_SRC_CAST
+GST_IS_RTPDTMF_SRC
+GST_RTPDTMF_SRC_CLASS
+GST_IS_RTPDTMF_SRC_CLASS
+GST_TYPE_RTPDTMF_SRC
+<SUBSECTION Private>
+gst_rtpdtmf_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdvdepay</FILE>
+<TITLE>rtpdvdepay</TITLE>
+GstRTPDVDepay
+<SUBSECTION Standard>
+GstRTPDVDepayClass
+GST_RTPDV_DEPAY
+GST_RTPDV_DEPAY_CAST
+GST_IS_RTPDV_DEPAY
+GST_RTPDV_DEPAY_CLASS
+GST_IS_RTPDV_DEPAY_CLASS
+GST_TYPE_RTPDV_DEPAY
+<SUBSECTION Private>
+gst_rtpdv_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdvpay</FILE>
+<TITLE>rtpdvpay</TITLE>
+GstRTPDVPay
+<SUBSECTION Standard>
+GstRTPDVPayClass
+GST_RTPDV_PAY
+GST_RTPDV_PAY_CAST
+GST_IS_RTPDV_PAY
+GST_RTPDV_PAY_CLASS
+GST_IS_RTPDV_PAY_CLASS
+GST_TYPE_RTPDV_PAY
+<SUBSECTION Private>
+gst_rtpdv_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdec</FILE>
+<TITLE>rtpdec</TITLE>
+GstRTPDec
+<SUBSECTION Standard>
+GstRTPDecClass
+GST_RTP_DEC
+GST_RTP_DEC_CAST
+GST_IS_RTP_DEC
+GST_RTP_DEC_CLASS
+GST_IS_RTP_DEC_CLASS
+GST_TYPE_RTP_DEC
+<SUBSECTION Private>
+gst_rtp_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg723pay</FILE>
+<TITLE>rtpg723pay</TITLE>
+GstRTPG723Pay
+<SUBSECTION Standard>
+GstRTPG723PayClass
+GST_RTP_G723_PAY
+GST_RTP_G723_PAY_CAST
+GST_IS_RTP_G723_PAY
+GST_RTP_G723_PAY_CLASS
+GST_IS_RTP_G723_PAY_CLASS
+GST_TYPE_RTP_G723_PAY
+<SUBSECTION Private>
+gst_rtp_g723_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg729pay</FILE>
+<TITLE>rtpg729pay</TITLE>
+GstRTPG729Pay
+<SUBSECTION Standard>
+GstRTPG729PayClass
+GST_RTP_G729_PAY
+GST_RTP_G729_PAY_CAST
+GST_IS_RTP_G729_PAY
+GST_RTP_G729_PAY_CLASS
+GST_IS_RTP_G729_PAY_CLASS
+GST_TYPE_RTP_G729_PAY
+<SUBSECTION Private>
+gst_rtp_g729_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpgsmdepay</FILE>
+<TITLE>rtpgsmdepay</TITLE>
+GstRTPGSMDepay
+<SUBSECTION Standard>
+GstRTPGSMDepayClass
+GST_RTPGSM_DEPAY
+GST_RTPGSM_DEPAY_CAST
+GST_IS_RTPGSM_DEPAY
+GST_RTPGSM_DEPAY_CLASS
+GST_IS_RTPGSM_DEPAY_CLASS
+GST_TYPE_RTPGSM_DEPAY
+<SUBSECTION Private>
+gst_rtpgsm_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpgsmpay</FILE>
+<TITLE>rtpgsmpay</TITLE>
+GstRTPGSMPay
+<SUBSECTION Standard>
+GstRTPGSMPayClass
+GST_RTPGSM_PAY
+GST_RTPGSM_PAY_CAST
+GST_IS_RTPGSM_PAY
+GST_RTPGSM_PAY_CLASS
+GST_IS_RTPGSM_PAY_CLASS
+GST_TYPE_RTPGSM_PAY
+<SUBSECTION Private>
+gst_rtpgsm_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpilbcpay</FILE>
+<TITLE>rtpilbcpay</TITLE>
+GstRTPILBCPay
+<SUBSECTION Standard>
+GstRTPILBCPayClass
+GST_RTPILBC_PAY
+GST_RTPILBC_PAY_CAST
+GST_IS_RTPILBC_PAY
+GST_RTPILBC_PAY_CLASS
+GST_IS_RTPILBC_PAY_CLASS
+GST_TYPE_RTPILBC_PAY
+<SUBSECTION Private>
+gst_rtpilbc_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp2tpay</FILE>
+<TITLE>rtpmp2tpay</TITLE>
+GstRTPMP2TPay
+<SUBSECTION Standard>
+GstRTPMP2TPayClass
+GST_RTPM_P2_T_PAY
+GST_RTPM_P2_T_PAY_CAST
+GST_IS_RTPM_P2_T_PAY
+GST_RTPM_P2_T_PAY_CLASS
+GST_IS_RTPM_P2_T_PAY_CLASS
+GST_TYPE_RTPM_P2_T_PAY
+<SUBSECTION Private>
+gst_rtpm_p2_t_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmpvpay</FILE>
+<TITLE>rtpmpvpay</TITLE>
+GstRTPMPVPay
+<SUBSECTION Standard>
+GstRTPMPVPayClass
+GST_RTPMPV_PAY
+GST_RTPMPV_PAY_CAST
+GST_IS_RTPMPV_PAY
+GST_RTPMPV_PAY_CLASS
+GST_IS_RTPMPV_PAY_CLASS
+GST_TYPE_RTPMPV_PAY
+<SUBSECTION Private>
+gst_rtpmpv_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmux</FILE>
+<TITLE>rtpmux</TITLE>
+GstRTPMux
+<SUBSECTION Standard>
+GstRTPMuxClass
+GST_RTP_MUX
+GST_RTP_MUX_CAST
+GST_IS_RTP_MUX
+GST_RTP_MUX_CLASS
+GST_IS_RTP_MUX_CLASS
+GST_TYPE_RTP_MUX
+<SUBSECTION Private>
+gst_rtp_mux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpopusdepay</FILE>
+<TITLE>rtpopusdepay</TITLE>
+GstRTPOpusDepay
+<SUBSECTION Standard>
+GstRTPOpusDepayClass
+GST_RTP_OPUS_DEPAY
+GST_RTP_OPUS_DEPAY_CAST
+GST_IS_RTP_OPUS_DEPAY
+GST_RTP_OPUS_DEPAY_CLASS
+GST_IS_RTP_OPUS_DEPAY_CLASS
+GST_TYPE_RTP_OPUS_DEPAY
+<SUBSECTION Private>
+gst_rtp_opus_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtprtxqueue</FILE>
+<TITLE>rtprtxqueue</TITLE>
+GstRTPRtxQueue
+<SUBSECTION Standard>
+GstRTPRtxQueueClass
+GST_RTP_RTX_QUEUE
+GST_RTP_RTX_QUEUE_CAST
+GST_IS_RTP_RTX_QUEUE
+GST_RTP_RTX_QUEUE_CLASS
+GST_IS_RTP_RTX_QUEUE_CLASS
+GST_TYPE_RTP_RTX_QUEUE
+<SUBSECTION Private>
+gst_rtp_rtx_queue_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpsirendepay</FILE>
+<TITLE>rtpsirendepay</TITLE>
+GstRTPSirenDepay
+<SUBSECTION Standard>
+GstRTPSirenDepayClass
+GST_RTP_SIREN_DEPAY
+GST_RTP_SIREN_DEPAY_CAST
+GST_IS_RTP_SIREN_DEPAY
+GST_RTP_SIREN_DEPAY_CLASS
+GST_IS_RTP_SIREN_DEPAY_CLASS
+GST_TYPE_RTP_SIREN_DEPAY
+<SUBSECTION Private>
+gst_rtp_siren_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpsirenpay</FILE>
+<TITLE>rtpsirenpay</TITLE>
+GstRTPSirenPay
+<SUBSECTION Standard>
+GstRTPSirenPayClass
+GST_RTP_SIREN_PAY
+GST_RTP_SIREN_PAY_CAST
+GST_IS_RTP_SIREN_PAY
+GST_RTP_SIREN_PAY_CLASS
+GST_IS_RTP_SIREN_PAY_CLASS
+GST_TYPE_RTP_SIREN_PAY
+<SUBSECTION Private>
+gst_rtp_siren_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpilbcdepay</FILE>
+<TITLE>rtpilbcdepay</TITLE>
+GstRTPiLBCDepay
+<SUBSECTION Standard>
+GstRTPiLBCDepayClass
+GST_RT_PI_LBC_DEPAY
+GST_RT_PI_LBC_DEPAY_CAST
+GST_IS_RT_PI_LBC_DEPAY
+GST_RT_PI_LBC_DEPAY_CLASS
+GST_IS_RT_PI_LBC_DEPAY_CLASS
+GST_TYPE_RT_PI_LBC_DEPAY
+<SUBSECTION Private>
+gst_rt_pi_lbc_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtspsrc</FILE>
+<TITLE>rtspsrc</TITLE>
+GstRTSPSrc
+GstRTSPSrcBufferMode
+GstRTSPSrcNtpTimeSource
+<SUBSECTION Standard>
+GstRTSPSrcClass
+GST_RTSP_SRC
+GST_RTSP_SRC_CAST
+GST_IS_RTSP_SRC
+GST_RTSP_SRC_CLASS
+GST_IS_RTSP_SRC_CLASS
+GST_TYPE_RTSP_SRC
+<SUBSECTION Private>
+gst_rtsp_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-radioactv</FILE>
+<TITLE>radioactv</TITLE>
+GstRadioacTV
+GstRadioacTVColor
+GstRadioacTVMode
+<SUBSECTION Standard>
+GstRadioacTVClass
+GST_RADIOAC_TV
+GST_RADIOAC_TV_CAST
+GST_IS_RADIOAC_TV
+GST_RADIOAC_TV_CLASS
+GST_IS_RADIOAC_TV_CLASS
+GST_TYPE_RADIOAC_TV
+<SUBSECTION Private>
+gst_radioac_tv_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-revtv</FILE>
+<TITLE>revtv</TITLE>
+GstRevTV
+<SUBSECTION Standard>
+GstRevTVClass
+GST_REV_TV
+GST_REV_TV_CAST
+GST_IS_REV_TV
+GST_REV_TV_CLASS
+GST_IS_REV_TV_CLASS
+GST_TYPE_REV_TV
+<SUBSECTION Private>
+gst_rev_tv_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-rganalysis</FILE>
 <TITLE>rganalysis</TITLE>
 GstRgAnalysis
 <SUBSECTION Standard>
 GstRgAnalysisClass
 GST_RG_ANALYSIS
-GST_RG_ANALYSIS_CLASS
+GST_RG_ANALYSIS_CAST
 GST_IS_RG_ANALYSIS
+GST_RG_ANALYSIS_CLASS
 GST_IS_RG_ANALYSIS_CLASS
 GST_TYPE_RG_ANALYSIS
+<SUBSECTION Private>
 gst_rg_analysis_get_type
 </SECTION>
 
@@ -1584,10 +2232,12 @@
 <SUBSECTION Standard>
 GstRgLimiterClass
 GST_RG_LIMITER
-GST_RG_LIMITER_CLASS
+GST_RG_LIMITER_CAST
 GST_IS_RG_LIMITER
+GST_RG_LIMITER_CLASS
 GST_IS_RG_LIMITER_CLASS
 GST_TYPE_RG_LIMITER
+<SUBSECTION Private>
 gst_rg_limiter_get_type
 </SECTION>
 
@@ -1598,60 +2248,46 @@
 <SUBSECTION Standard>
 GstRgVolumeClass
 GST_RG_VOLUME
-GST_RG_VOLUME_CLASS
+GST_RG_VOLUME_CAST
 GST_IS_RG_VOLUME
-GST_TYPE_RG_VOLUME
+GST_RG_VOLUME_CLASS
 GST_IS_RG_VOLUME_CLASS
+GST_TYPE_RG_VOLUME
+<SUBSECTION Private>
 gst_rg_volume_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpdec</FILE>
-<TITLE>rtpdec</TITLE>
-GstRTPDec
+<FILE>element-rippletv</FILE>
+<TITLE>rippletv</TITLE>
+GstRippleTV
+GstRippleTVMode
 <SUBSECTION Standard>
-GstRTPDecClass
-GstRTPDecSession
-GST_RTP_DEC
-GST_IS_RTP_DEC
-GST_TYPE_RTP_DEC
-GST_RTP_DEC_CLASS
-GST_IS_RTP_DEC_CLASS
-gst_rtp_dec_get_type
+GstRippleTVClass
+GST_RIPPLE_TV
+GST_RIPPLE_TV_CAST
+GST_IS_RIPPLE_TV
+GST_RIPPLE_TV_CLASS
+GST_IS_RIPPLE_TV_CLASS
+GST_TYPE_RIPPLE_TV
+<SUBSECTION Private>
+gst_ripple_tv_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpdtmfdepay</FILE>
-<TITLE>rtpdtmfdepay</TITLE>
-GstRtpDTMFDepay
+<FILE>element-rndbuffersize</FILE>
+<TITLE>rndbuffersize</TITLE>
+GstRndBufferSize
 <SUBSECTION Standard>
-GstRtpDTMFDepayClass
-GST_TYPE_RTP_DTMF_DEPAY
-GST_IS_RTP_DTMF_DEPAY
-GST_IS_RTP_DTMF_DEPAY_CLASS
-GST_RTP_DTMF_DEPAY
-GST_RTP_DTMF_DEPAY_CLASS
-gst_rtp_dtmf_depay_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpdtmfsrc</FILE>
-<TITLE>rtpdtmfsrc</TITLE>
-GstRTPDTMFSrc
-<SUBSECTION Standard>
-GstRTPDTMFSrcClass
-GST_TYPE_RTP_DTMF_SRC
-GST_IS_RTP_DTMF_SRC
-GST_IS_RTP_DTMF_SRC_CLASS
-GST_RTP_DTMF_SRC
-GST_RTP_DTMF_SRC_CAST
-GST_RTP_DTMF_SRC_CLASS
-GST_RTP_DTMF_SRC_GET_CLASS
-gst_rtp_dtmf_src_get_type
-gst_rtp_dtmf_src_plugin_init
-GstRTPDTMFPayload
-GstRTPDTMFSrcEvent
-GstRTPDTMFEventType
+GstRndBufferSizeClass
+GST_RND_BUFFER_SIZE
+GST_RND_BUFFER_SIZE_CAST
+GST_IS_RND_BUFFER_SIZE
+GST_RND_BUFFER_SIZE_CLASS
+GST_IS_RND_BUFFER_SIZE_CLASS
+GST_TYPE_RND_BUFFER_SIZE
+<SUBSECTION Private>
+gst_rnd_buffer_size_get_type
 </SECTION>
 
 <SECTION>
@@ -1660,13 +2296,14 @@
 GstRtpAC3Depay
 <SUBSECTION Standard>
 GstRtpAC3DepayClass
-GST_RTP_AC3_DEPAY
-GST_IS_RTP_AC3_DEPAY
-GST_TYPE_RTP_AC3_DEPAY
-GST_RTP_AC3_DEPAY_CLASS
-GST_IS_RTP_AC3_DEPAY_CLASS
-gst_rtp_ac3_depay_plugin_init
-gst_rtp_ac3_depay_get_type
+GST_RTP_A_C3_DEPAY
+GST_RTP_A_C3_DEPAY_CAST
+GST_IS_RTP_A_C3_DEPAY
+GST_RTP_A_C3_DEPAY_CLASS
+GST_IS_RTP_A_C3_DEPAY_CLASS
+GST_TYPE_RTP_A_C3_DEPAY
+<SUBSECTION Private>
+gst_rtp_a_c3_depay_get_type
 </SECTION>
 
 <SECTION>
@@ -1675,13 +2312,14 @@
 GstRtpAC3Pay
 <SUBSECTION Standard>
 GstRtpAC3PayClass
-GST_RTP_AC3_PAY
-GST_IS_RTP_AC3_PAY
-GST_TYPE_RTP_AC3_PAY
-GST_RTP_AC3_PAY_CLASS
-GST_IS_RTP_AC3_PAY_CLASS
-gst_rtp_ac3_pay_plugin_init
-gst_rtp_ac3_pay_get_type
+GST_RTP_A_C3_PAY
+GST_RTP_A_C3_PAY_CAST
+GST_IS_RTP_A_C3_PAY
+GST_RTP_A_C3_PAY_CLASS
+GST_IS_RTP_A_C3_PAY_CLASS
+GST_TYPE_RTP_A_C3_PAY
+<SUBSECTION Private>
+gst_rtp_a_c3_pay_get_type
 </SECTION>
 
 <SECTION>
@@ -1691,11 +2329,12 @@
 <SUBSECTION Standard>
 GstRtpAMRDepayClass
 GST_RTP_AMR_DEPAY
+GST_RTP_AMR_DEPAY_CAST
 GST_IS_RTP_AMR_DEPAY
-GST_TYPE_RTP_AMR_DEPAY
 GST_RTP_AMR_DEPAY_CLASS
 GST_IS_RTP_AMR_DEPAY_CLASS
-gst_rtp_amr_depay_plugin_init
+GST_TYPE_RTP_AMR_DEPAY
+<SUBSECTION Private>
 gst_rtp_amr_depay_get_type
 </SECTION>
 
@@ -1706,42 +2345,205 @@
 <SUBSECTION Standard>
 GstRtpAMRPayClass
 GST_RTP_AMR_PAY
+GST_RTP_AMR_PAY_CAST
 GST_IS_RTP_AMR_PAY
-GST_TYPE_RTP_AMR_PAY
 GST_RTP_AMR_PAY_CLASS
 GST_IS_RTP_AMR_PAY_CLASS
-gst_rtp_amr_pay_plugin_init
+GST_TYPE_RTP_AMR_PAY
+<SUBSECTION Private>
 gst_rtp_amr_pay_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpbvdepay</FILE>
-<TITLE>rtpbvdepay</TITLE>
-GstRtpBVDepay
+<FILE>element-rtpbin</FILE>
+<TITLE>rtpbin</TITLE>
+GstRtpBin
 <SUBSECTION Standard>
-GstRtpBVDepayClass
-GST_RTP_BV_DEPAY
-GST_IS_RTP_BV_DEPAY
-GST_TYPE_RTP_BV_DEPAY
-GST_RTP_BV_DEPAY_CLASS
-GST_IS_RTP_BV_DEPAY_CLASS
-gst_rtp_bv_depay_plugin_init
-gst_rtp_bv_depay_get_type
+GstRtpBinClass
+GST_RTP_BIN
+GST_RTP_BIN_CAST
+GST_IS_RTP_BIN
+GST_RTP_BIN_CLASS
+GST_IS_RTP_BIN_CLASS
+GST_TYPE_RTP_BIN
+<SUBSECTION Private>
+gst_rtp_bin_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpbvpay</FILE>
-<TITLE>rtpbvpay</TITLE>
-GstRtpBVPay
+<FILE>element-rtpceltdepay</FILE>
+<TITLE>rtpceltdepay</TITLE>
+GstRtpCELTDepay
 <SUBSECTION Standard>
-GstRtpBVPayClass
-GST_RTP_BV_PAY
-GST_IS_RTP_BV_PAY
-GST_TYPE_RTP_BV_PAY
-GST_RTP_BV_PAY_CLASS
-GST_IS_RTP_BV_PAY_CLASS
-gst_rtp_bv_pay_plugin_init
-gst_rtp_bv_pay_get_type
+GstRtpCELTDepayClass
+GST_RTP_CELT_DEPAY
+GST_RTP_CELT_DEPAY_CAST
+GST_IS_RTP_CELT_DEPAY
+GST_RTP_CELT_DEPAY_CLASS
+GST_IS_RTP_CELT_DEPAY_CLASS
+GST_TYPE_RTP_CELT_DEPAY
+<SUBSECTION Private>
+gst_rtp_celt_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpceltpay</FILE>
+<TITLE>rtpceltpay</TITLE>
+GstRtpCELTPay
+<SUBSECTION Standard>
+GstRtpCELTPayClass
+GST_RTP_CELT_PAY
+GST_RTP_CELT_PAY_CAST
+GST_IS_RTP_CELT_PAY
+GST_RTP_CELT_PAY_CLASS
+GST_IS_RTP_CELT_PAY_CLASS
+GST_TYPE_RTP_CELT_PAY
+<SUBSECTION Private>
+gst_rtp_celt_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpdtmfdepay</FILE>
+<TITLE>rtpdtmfdepay</TITLE>
+GstRtpDTMFDepay
+<SUBSECTION Standard>
+GstRtpDTMFDepayClass
+GST_RTP_DTMF_DEPAY
+GST_RTP_DTMF_DEPAY_CAST
+GST_IS_RTP_DTMF_DEPAY
+GST_RTP_DTMF_DEPAY_CLASS
+GST_IS_RTP_DTMF_DEPAY_CLASS
+GST_TYPE_RTP_DTMF_DEPAY
+<SUBSECTION Private>
+gst_rtp_dtmf_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg722depay</FILE>
+<TITLE>rtpg722depay</TITLE>
+GstRtpG722Depay
+<SUBSECTION Standard>
+GstRtpG722DepayClass
+GST_RTP_G722_DEPAY
+GST_RTP_G722_DEPAY_CAST
+GST_IS_RTP_G722_DEPAY
+GST_RTP_G722_DEPAY_CLASS
+GST_IS_RTP_G722_DEPAY_CLASS
+GST_TYPE_RTP_G722_DEPAY
+<SUBSECTION Private>
+gst_rtp_g722_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg722pay</FILE>
+<TITLE>rtpg722pay</TITLE>
+GstRtpG722Pay
+<SUBSECTION Standard>
+GstRtpG722PayClass
+GST_RTP_G722_PAY
+GST_RTP_G722_PAY_CAST
+GST_IS_RTP_G722_PAY
+GST_RTP_G722_PAY_CLASS
+GST_IS_RTP_G722_PAY_CLASS
+GST_TYPE_RTP_G722_PAY
+<SUBSECTION Private>
+gst_rtp_g722_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg723depay</FILE>
+<TITLE>rtpg723depay</TITLE>
+GstRtpG723Depay
+<SUBSECTION Standard>
+GstRtpG723DepayClass
+GST_RTP_G723_DEPAY
+GST_RTP_G723_DEPAY_CAST
+GST_IS_RTP_G723_DEPAY
+GST_RTP_G723_DEPAY_CLASS
+GST_IS_RTP_G723_DEPAY_CLASS
+GST_TYPE_RTP_G723_DEPAY
+<SUBSECTION Private>
+gst_rtp_g723_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg726depay</FILE>
+<TITLE>rtpg726depay</TITLE>
+GstRtpG726Depay
+<SUBSECTION Standard>
+GstRtpG726DepayClass
+GST_RTP_G726_DEPAY
+GST_RTP_G726_DEPAY_CAST
+GST_IS_RTP_G726_DEPAY
+GST_RTP_G726_DEPAY_CLASS
+GST_IS_RTP_G726_DEPAY_CLASS
+GST_TYPE_RTP_G726_DEPAY
+<SUBSECTION Private>
+gst_rtp_g726_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg726pay</FILE>
+<TITLE>rtpg726pay</TITLE>
+GstRtpG726Pay
+<SUBSECTION Standard>
+GstRtpG726PayClass
+GST_RTP_G726_PAY
+GST_RTP_G726_PAY_CAST
+GST_IS_RTP_G726_PAY
+GST_RTP_G726_PAY_CLASS
+GST_IS_RTP_G726_PAY_CLASS
+GST_TYPE_RTP_G726_PAY
+<SUBSECTION Private>
+gst_rtp_g726_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpg729depay</FILE>
+<TITLE>rtpg729depay</TITLE>
+GstRtpG729Depay
+<SUBSECTION Standard>
+GstRtpG729DepayClass
+GST_RTP_G729_DEPAY
+GST_RTP_G729_DEPAY_CAST
+GST_IS_RTP_G729_DEPAY
+GST_RTP_G729_DEPAY_CLASS
+GST_IS_RTP_G729_DEPAY_CLASS
+GST_TYPE_RTP_G729_DEPAY
+<SUBSECTION Private>
+gst_rtp_g729_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpgstdepay</FILE>
+<TITLE>rtpgstdepay</TITLE>
+GstRtpGSTDepay
+<SUBSECTION Standard>
+GstRtpGSTDepayClass
+GST_RTP_GST_DEPAY
+GST_RTP_GST_DEPAY_CAST
+GST_IS_RTP_GST_DEPAY
+GST_RTP_GST_DEPAY_CLASS
+GST_IS_RTP_GST_DEPAY_CLASS
+GST_TYPE_RTP_GST_DEPAY
+<SUBSECTION Private>
+gst_rtp_gst_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpgstpay</FILE>
+<TITLE>rtpgstpay</TITLE>
+GstRtpGSTPay
+<SUBSECTION Standard>
+GstRtpGSTPayClass
+GST_RTP_GST_PAY
+GST_RTP_GST_PAY_CAST
+GST_IS_RTP_GST_PAY
+GST_RTP_GST_PAY_CLASS
+GST_IS_RTP_GST_PAY_CLASS
+GST_TYPE_RTP_GST_PAY
+<SUBSECTION Private>
+gst_rtp_gst_pay_get_type
 </SECTION>
 
 <SECTION>
@@ -1751,11 +2553,12 @@
 <SUBSECTION Standard>
 GstRtpH261DepayClass
 GST_RTP_H261_DEPAY
+GST_RTP_H261_DEPAY_CAST
 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_TYPE_RTP_H261_DEPAY
+<SUBSECTION Private>
 gst_rtp_h261_depay_get_type
 </SECTION>
 
@@ -1766,15 +2569,224 @@
 <SUBSECTION Standard>
 GstRtpH261PayClass
 GST_RTP_H261_PAY
+GST_RTP_H261_PAY_CAST
 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_TYPE_RTP_H261_PAY
+<SUBSECTION Private>
 gst_rtp_h261_pay_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-rtph263depay</FILE>
+<TITLE>rtph263depay</TITLE>
+GstRtpH263Depay
+<SUBSECTION Standard>
+GstRtpH263DepayClass
+GST_RTP_H263_DEPAY
+GST_RTP_H263_DEPAY_CAST
+GST_IS_RTP_H263_DEPAY
+GST_RTP_H263_DEPAY_CLASS
+GST_IS_RTP_H263_DEPAY_CLASS
+GST_TYPE_RTP_H263_DEPAY
+<SUBSECTION Private>
+gst_rtp_h263_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph263pdepay</FILE>
+<TITLE>rtph263pdepay</TITLE>
+GstRtpH263PDepay
+<SUBSECTION Standard>
+GstRtpH263PDepayClass
+GST_RTP_H263_P_DEPAY
+GST_RTP_H263_P_DEPAY_CAST
+GST_IS_RTP_H263_P_DEPAY
+GST_RTP_H263_P_DEPAY_CLASS
+GST_IS_RTP_H263_P_DEPAY_CLASS
+GST_TYPE_RTP_H263_P_DEPAY
+<SUBSECTION Private>
+gst_rtp_h263_p_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph263ppay</FILE>
+<TITLE>rtph263ppay</TITLE>
+GstRtpH263PPay
+<SUBSECTION Standard>
+GstRtpH263PPayClass
+GST_RTP_H263_P_PAY
+GST_RTP_H263_P_PAY_CAST
+GST_IS_RTP_H263_P_PAY
+GST_RTP_H263_P_PAY_CLASS
+GST_IS_RTP_H263_P_PAY_CLASS
+GST_TYPE_RTP_H263_P_PAY
+<SUBSECTION Private>
+gst_rtp_h263_p_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph263pay</FILE>
+<TITLE>rtph263pay</TITLE>
+GstRtpH263Pay
+<SUBSECTION Standard>
+GstRtpH263PayClass
+GST_RTP_H263_PAY
+GST_RTP_H263_PAY_CAST
+GST_IS_RTP_H263_PAY
+GST_RTP_H263_PAY_CLASS
+GST_IS_RTP_H263_PAY_CLASS
+GST_TYPE_RTP_H263_PAY
+<SUBSECTION Private>
+gst_rtp_h263_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph264depay</FILE>
+<TITLE>rtph264depay</TITLE>
+GstRtpH264Depay
+<SUBSECTION Standard>
+GstRtpH264DepayClass
+GST_RTP_H264_DEPAY
+GST_RTP_H264_DEPAY_CAST
+GST_IS_RTP_H264_DEPAY
+GST_RTP_H264_DEPAY_CLASS
+GST_IS_RTP_H264_DEPAY_CLASS
+GST_TYPE_RTP_H264_DEPAY
+<SUBSECTION Private>
+gst_rtp_h264_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph264pay</FILE>
+<TITLE>rtph264pay</TITLE>
+GstRtpH264Pay
+<SUBSECTION Standard>
+GstRtpH264PayClass
+GST_RTP_H264_PAY
+GST_RTP_H264_PAY_CAST
+GST_IS_RTP_H264_PAY
+GST_RTP_H264_PAY_CLASS
+GST_IS_RTP_H264_PAY_CLASS
+GST_TYPE_RTP_H264_PAY
+<SUBSECTION Private>
+gst_rtp_h264_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph265depay</FILE>
+<TITLE>rtph265depay</TITLE>
+GstRtpH265Depay
+<SUBSECTION Standard>
+GstRtpH265DepayClass
+GST_RTP_H265_DEPAY
+GST_RTP_H265_DEPAY_CAST
+GST_IS_RTP_H265_DEPAY
+GST_RTP_H265_DEPAY_CLASS
+GST_IS_RTP_H265_DEPAY_CLASS
+GST_TYPE_RTP_H265_DEPAY
+<SUBSECTION Private>
+gst_rtp_h265_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtph265pay</FILE>
+<TITLE>rtph265pay</TITLE>
+GstRtpH265Pay
+<SUBSECTION Standard>
+GstRtpH265PayClass
+GST_RTP_H265_PAY
+GST_RTP_H265_PAY_CAST
+GST_IS_RTP_H265_PAY
+GST_RTP_H265_PAY_CLASS
+GST_IS_RTP_H265_PAY_CLASS
+GST_TYPE_RTP_H265_PAY
+<SUBSECTION Private>
+gst_rtp_h265_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpj2kdepay</FILE>
+<TITLE>rtpj2kdepay</TITLE>
+GstRtpJ2KDepay
+<SUBSECTION Standard>
+GstRtpJ2KDepayClass
+GST_RTP_J2_K_DEPAY
+GST_RTP_J2_K_DEPAY_CAST
+GST_IS_RTP_J2_K_DEPAY
+GST_RTP_J2_K_DEPAY_CLASS
+GST_IS_RTP_J2_K_DEPAY_CLASS
+GST_TYPE_RTP_J2_K_DEPAY
+<SUBSECTION Private>
+gst_rtp_j2_k_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpj2kpay</FILE>
+<TITLE>rtpj2kpay</TITLE>
+GstRtpJ2KPay
+<SUBSECTION Standard>
+GstRtpJ2KPayClass
+GST_RTP_J2_K_PAY
+GST_RTP_J2_K_PAY_CAST
+GST_IS_RTP_J2_K_PAY
+GST_RTP_J2_K_PAY_CLASS
+GST_IS_RTP_J2_K_PAY_CLASS
+GST_TYPE_RTP_J2_K_PAY
+<SUBSECTION Private>
+gst_rtp_j2_k_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpjpegdepay</FILE>
+<TITLE>rtpjpegdepay</TITLE>
+GstRtpJPEGDepay
+<SUBSECTION Standard>
+GstRtpJPEGDepayClass
+GST_RTP_JPEG_DEPAY
+GST_RTP_JPEG_DEPAY_CAST
+GST_IS_RTP_JPEG_DEPAY
+GST_RTP_JPEG_DEPAY_CLASS
+GST_IS_RTP_JPEG_DEPAY_CLASS
+GST_TYPE_RTP_JPEG_DEPAY
+<SUBSECTION Private>
+gst_rtp_jpeg_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpjpegpay</FILE>
+<TITLE>rtpjpegpay</TITLE>
+GstRtpJPEGPay
+<SUBSECTION Standard>
+GstRtpJPEGPayClass
+GST_RTP_JPEG_PAY
+GST_RTP_JPEG_PAY_CAST
+GST_IS_RTP_JPEG_PAY
+GST_RTP_JPEG_PAY_CLASS
+GST_IS_RTP_JPEG_PAY_CLASS
+GST_TYPE_RTP_JPEG_PAY
+<SUBSECTION Private>
+gst_rtp_jpeg_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpjitterbuffer</FILE>
+<TITLE>rtpjitterbuffer</TITLE>
+GstRtpJitterBuffer
+<SUBSECTION Standard>
+GstRtpJitterBufferClass
+GST_RTP_JITTER_BUFFER
+GST_RTP_JITTER_BUFFER_CAST
+GST_IS_RTP_JITTER_BUFFER
+GST_RTP_JITTER_BUFFER_CLASS
+GST_IS_RTP_JITTER_BUFFER_CLASS
+GST_TYPE_RTP_JITTER_BUFFER
+<SUBSECTION Private>
+gst_rtp_jitter_buffer_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-rtpklvdepay</FILE>
 <TITLE>rtpklvdepay</TITLE>
 GstRtpKlvDepay
@@ -1813,12 +2825,13 @@
 <SUBSECTION Standard>
 GstRtpL16DepayClass
 GST_RTP_L16_DEPAY
+GST_RTP_L16_DEPAY_CAST
 GST_IS_RTP_L16_DEPAY
-GST_TYPE_RTP_L16_DEPAY
 GST_RTP_L16_DEPAY_CLASS
 GST_IS_RTP_L16_DEPAY_CLASS
-gst_rtp_L16_depay_plugin_init
-gst_rtp_L16_depay_get_type
+GST_TYPE_RTP_L16_DEPAY
+<SUBSECTION Private>
+gst_rtp_l16_depay_get_type
 </SECTION>
 
 <SECTION>
@@ -1828,68 +2841,397 @@
 <SUBSECTION Standard>
 GstRtpL16PayClass
 GST_RTP_L16_PAY
+GST_RTP_L16_PAY_CAST
 GST_IS_RTP_L16_PAY
-GST_TYPE_RTP_L16_PAY
 GST_RTP_L16_PAY_CLASS
 GST_IS_RTP_L16_PAY_CLASS
-gst_rtp_L16_pay_plugin_init
-gst_rtp_L16_pay_get_type
+GST_TYPE_RTP_L16_PAY
+<SUBSECTION Private>
+gst_rtp_l16_pay_get_type
 </SECTION>
 
-<FILE>element-rtpopusdepay</FILE>
-<TITLE>rtpopusdepay</TITLE>
-GstRTPOpusDepay
+<SECTION>
+<FILE>element-rtpL24depay</FILE>
+<TITLE>rtpL24depay</TITLE>
+GstRtpL24Depay
 <SUBSECTION Standard>
-GstRTPOpusDepayClass
-gst_rtp_opus_depay_get_type
-GST_TYPE_RTP_OPUS_DEPAY
-GST_RTP_OPUS_DEPAY
-GST_RTP_OPUS_DEPAY_CLASS
-GST_IS_RTP_OPUS_DEPAY
-GST_IS_RTP_OPUS_DEPAY_CLASS
+GstRtpL24DepayClass
+GST_RTP_L24_DEPAY
+GST_RTP_L24_DEPAY_CAST
+GST_IS_RTP_L24_DEPAY
+GST_RTP_L24_DEPAY_CLASS
+GST_IS_RTP_L24_DEPAY_CLASS
+GST_TYPE_RTP_L24_DEPAY
+<SUBSECTION Private>
+gst_rtp_l24_depay_get_type
 </SECTION>
 
+<SECTION>
+<FILE>element-rtpL24pay</FILE>
+<TITLE>rtpL24pay</TITLE>
+GstRtpL24Pay
+<SUBSECTION Standard>
+GstRtpL24PayClass
+GST_RTP_L24_PAY
+GST_RTP_L24_PAY_CAST
+GST_IS_RTP_L24_PAY
+GST_RTP_L24_PAY_CLASS
+GST_IS_RTP_L24_PAY_CLASS
+GST_TYPE_RTP_L24_PAY
+<SUBSECTION Private>
+gst_rtp_l24_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp1sdepay</FILE>
+<TITLE>rtpmp1sdepay</TITLE>
+GstRtpMP1SDepay
+<SUBSECTION Standard>
+GstRtpMP1SDepayClass
+GST_RTP_M_P1_S_DEPAY
+GST_RTP_M_P1_S_DEPAY_CAST
+GST_IS_RTP_M_P1_S_DEPAY
+GST_RTP_M_P1_S_DEPAY_CLASS
+GST_IS_RTP_M_P1_S_DEPAY_CLASS
+GST_TYPE_RTP_M_P1_S_DEPAY
+<SUBSECTION Private>
+gst_rtp_m_p1_s_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp2tdepay</FILE>
+<TITLE>rtpmp2tdepay</TITLE>
+GstRtpMP2TDepay
+<SUBSECTION Standard>
+GstRtpMP2TDepayClass
+GST_RTP_M_P2_T_DEPAY
+GST_RTP_M_P2_T_DEPAY_CAST
+GST_IS_RTP_M_P2_T_DEPAY
+GST_RTP_M_P2_T_DEPAY_CLASS
+GST_IS_RTP_M_P2_T_DEPAY_CLASS
+GST_TYPE_RTP_M_P2_T_DEPAY
+<SUBSECTION Private>
+gst_rtp_m_p2_t_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4adepay</FILE>
+<TITLE>rtpmp4adepay</TITLE>
+GstRtpMP4ADepay
+<SUBSECTION Standard>
+GstRtpMP4ADepayClass
+GST_RTP_M_P4_A_DEPAY
+GST_RTP_M_P4_A_DEPAY_CAST
+GST_IS_RTP_M_P4_A_DEPAY
+GST_RTP_M_P4_A_DEPAY_CLASS
+GST_IS_RTP_M_P4_A_DEPAY_CLASS
+GST_TYPE_RTP_M_P4_A_DEPAY
+<SUBSECTION Private>
+gst_rtp_m_p4_a_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4apay</FILE>
+<TITLE>rtpmp4apay</TITLE>
+GstRtpMP4APay
+<SUBSECTION Standard>
+GstRtpMP4APayClass
+GST_RTP_M_P4_A_PAY
+GST_RTP_M_P4_A_PAY_CAST
+GST_IS_RTP_M_P4_A_PAY
+GST_RTP_M_P4_A_PAY_CLASS
+GST_IS_RTP_M_P4_A_PAY_CLASS
+GST_TYPE_RTP_M_P4_A_PAY
+<SUBSECTION Private>
+gst_rtp_m_p4_a_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4gdepay</FILE>
+<TITLE>rtpmp4gdepay</TITLE>
+GstRtpMP4GDepay
+<SUBSECTION Standard>
+GstRtpMP4GDepayClass
+GST_RTP_M_P4_G_DEPAY
+GST_RTP_M_P4_G_DEPAY_CAST
+GST_IS_RTP_M_P4_G_DEPAY
+GST_RTP_M_P4_G_DEPAY_CLASS
+GST_IS_RTP_M_P4_G_DEPAY_CLASS
+GST_TYPE_RTP_M_P4_G_DEPAY
+<SUBSECTION Private>
+gst_rtp_m_p4_g_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4gpay</FILE>
+<TITLE>rtpmp4gpay</TITLE>
+GstRtpMP4GPay
+<SUBSECTION Standard>
+GstRtpMP4GPayClass
+GST_RTP_M_P4_G_PAY
+GST_RTP_M_P4_G_PAY_CAST
+GST_IS_RTP_M_P4_G_PAY
+GST_RTP_M_P4_G_PAY_CLASS
+GST_IS_RTP_M_P4_G_PAY_CLASS
+GST_TYPE_RTP_M_P4_G_PAY
+<SUBSECTION Private>
+gst_rtp_m_p4_g_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4vdepay</FILE>
+<TITLE>rtpmp4vdepay</TITLE>
+GstRtpMP4VDepay
+<SUBSECTION Standard>
+GstRtpMP4VDepayClass
+GST_RTP_M_P4_V_DEPAY
+GST_RTP_M_P4_V_DEPAY_CAST
+GST_IS_RTP_M_P4_V_DEPAY
+GST_RTP_M_P4_V_DEPAY_CLASS
+GST_IS_RTP_M_P4_V_DEPAY_CLASS
+GST_TYPE_RTP_M_P4_V_DEPAY
+<SUBSECTION Private>
+gst_rtp_m_p4_v_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmp4vpay</FILE>
+<TITLE>rtpmp4vpay</TITLE>
+GstRtpMP4VPay
+<SUBSECTION Standard>
+GstRtpMP4VPayClass
+GST_RTP_M_P4_V_PAY
+GST_RTP_M_P4_V_PAY_CAST
+GST_IS_RTP_M_P4_V_PAY
+GST_RTP_M_P4_V_PAY_CLASS
+GST_IS_RTP_M_P4_V_PAY_CLASS
+GST_TYPE_RTP_M_P4_V_PAY
+<SUBSECTION Private>
+gst_rtp_m_p4_v_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmpadepay</FILE>
+<TITLE>rtpmpadepay</TITLE>
+GstRtpMPADepay
+<SUBSECTION Standard>
+GstRtpMPADepayClass
+GST_RTP_MPA_DEPAY
+GST_RTP_MPA_DEPAY_CAST
+GST_IS_RTP_MPA_DEPAY
+GST_RTP_MPA_DEPAY_CLASS
+GST_IS_RTP_MPA_DEPAY_CLASS
+GST_TYPE_RTP_MPA_DEPAY
+<SUBSECTION Private>
+gst_rtp_mpa_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmpapay</FILE>
+<TITLE>rtpmpapay</TITLE>
+GstRtpMPAPay
+<SUBSECTION Standard>
+GstRtpMPAPayClass
+GST_RTP_MPA_PAY
+GST_RTP_MPA_PAY_CAST
+GST_IS_RTP_MPA_PAY
+GST_RTP_MPA_PAY_CLASS
+GST_IS_RTP_MPA_PAY_CLASS
+GST_TYPE_RTP_MPA_PAY
+<SUBSECTION Private>
+gst_rtp_mpa_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmparobustdepay</FILE>
+<TITLE>rtpmparobustdepay</TITLE>
+GstRtpMPARobustDepay
+<SUBSECTION Standard>
+GstRtpMPARobustDepayClass
+GST_RTP_MPA_ROBUST_DEPAY
+GST_RTP_MPA_ROBUST_DEPAY_CAST
+GST_IS_RTP_MPA_ROBUST_DEPAY
+GST_RTP_MPA_ROBUST_DEPAY_CLASS
+GST_IS_RTP_MPA_ROBUST_DEPAY_CLASS
+GST_TYPE_RTP_MPA_ROBUST_DEPAY
+<SUBSECTION Private>
+gst_rtp_mpa_robust_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpmpvdepay</FILE>
+<TITLE>rtpmpvdepay</TITLE>
+GstRtpMPVDepay
+<SUBSECTION Standard>
+GstRtpMPVDepayClass
+GST_RTP_MPV_DEPAY
+GST_RTP_MPV_DEPAY_CAST
+GST_IS_RTP_MPV_DEPAY
+GST_RTP_MPV_DEPAY_CLASS
+GST_IS_RTP_MPV_DEPAY_CLASS
+GST_TYPE_RTP_MPV_DEPAY
+<SUBSECTION Private>
+gst_rtp_mpv_depay_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-rtpopuspay</FILE>
 <TITLE>rtpopuspay</TITLE>
 GstRtpOPUSPay
 <SUBSECTION Standard>
 GstRtpOPUSPayClass
-gst_rtp_opus_pay_get_type
-GST_TYPE_RTP_OPUS_PAY
 GST_RTP_OPUS_PAY
-GST_RTP_OPUS_PAY_CLASS
+GST_RTP_OPUS_PAY_CAST
 GST_IS_RTP_OPUS_PAY
+GST_RTP_OPUS_PAY_CLASS
 GST_IS_RTP_OPUS_PAY_CLASS
+GST_TYPE_RTP_OPUS_PAY
+<SUBSECTION Private>
+gst_rtp_opus_pay_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpj2kpay</FILE>
-<TITLE>rtpj2kpay</TITLE>
-GstRtpJ2KPay
+<FILE>element-rtppcmadepay</FILE>
+<TITLE>rtppcmadepay</TITLE>
+GstRtpPcmaDepay
 <SUBSECTION Standard>
-GstRtpJ2KPayClass
-GST_RTP_J2K_PAY
-GST_IS_RTP_J2K_PAY
-GST_TYPE_RTP_J2K_PAY
-GST_RTP_J2K_PAY_CLASS
-GST_IS_RTP_J2K_PAY_CLASS
-gst_rtp_j2k_pay_plugin_init
-gst_rtp_j2k_pay_get_type
+GstRtpPcmaDepayClass
+GST_RTP_PCMA_DEPAY
+GST_RTP_PCMA_DEPAY_CAST
+GST_IS_RTP_PCMA_DEPAY
+GST_RTP_PCMA_DEPAY_CLASS
+GST_IS_RTP_PCMA_DEPAY_CLASS
+GST_TYPE_RTP_PCMA_DEPAY
+<SUBSECTION Private>
+gst_rtp_pcma_depay_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtpjpegpay</FILE>
-<TITLE>rtpjpegpay</TITLE>
-GstRtpJPEGPay
+<FILE>element-rtppcmapay</FILE>
+<TITLE>rtppcmapay</TITLE>
+GstRtpPcmaPay
 <SUBSECTION Standard>
-GstRtpJPEGPayClass
-GST_RTP_JPEG_PAY
-GST_IS_RTP_JPEG_PAY
-GST_TYPE_RTP_JPEG_PAY
-GST_RTP_JPEG_PAY_CLASS
-GST_IS_RTP_JPEG_PAY_CLASS
-gst_rtp_jpeg_pay_plugin_init
-gst_rtp_jpeg_pay_get_type
+GstRtpPcmaPayClass
+GST_RTP_PCMA_PAY
+GST_RTP_PCMA_PAY_CAST
+GST_IS_RTP_PCMA_PAY
+GST_RTP_PCMA_PAY_CLASS
+GST_IS_RTP_PCMA_PAY_CLASS
+GST_TYPE_RTP_PCMA_PAY
+<SUBSECTION Private>
+gst_rtp_pcma_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtppcmudepay</FILE>
+<TITLE>rtppcmudepay</TITLE>
+GstRtpPcmuDepay
+<SUBSECTION Standard>
+GstRtpPcmuDepayClass
+GST_RTP_PCMU_DEPAY
+GST_RTP_PCMU_DEPAY_CAST
+GST_IS_RTP_PCMU_DEPAY
+GST_RTP_PCMU_DEPAY_CLASS
+GST_IS_RTP_PCMU_DEPAY_CLASS
+GST_TYPE_RTP_PCMU_DEPAY
+<SUBSECTION Private>
+gst_rtp_pcmu_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtppcmupay</FILE>
+<TITLE>rtppcmupay</TITLE>
+GstRtpPcmuPay
+<SUBSECTION Standard>
+GstRtpPcmuPayClass
+GST_RTP_PCMU_PAY
+GST_RTP_PCMU_PAY_CAST
+GST_IS_RTP_PCMU_PAY
+GST_RTP_PCMU_PAY_CLASS
+GST_IS_RTP_PCMU_PAY_CLASS
+GST_TYPE_RTP_PCMU_PAY
+<SUBSECTION Private>
+gst_rtp_pcmu_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpptdemux</FILE>
+<TITLE>rtpptdemux</TITLE>
+GstRtpPtDemux
+<SUBSECTION Standard>
+GstRtpPtDemuxClass
+GST_RTP_PT_DEMUX
+GST_RTP_PT_DEMUX_CAST
+GST_IS_RTP_PT_DEMUX
+GST_RTP_PT_DEMUX_CLASS
+GST_IS_RTP_PT_DEMUX_CLASS
+GST_TYPE_RTP_PT_DEMUX
+<SUBSECTION Private>
+gst_rtp_pt_demux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpqcelpdepay</FILE>
+<TITLE>rtpqcelpdepay</TITLE>
+GstRtpQCELPDepay
+<SUBSECTION Standard>
+GstRtpQCELPDepayClass
+GST_RTP_QCELP_DEPAY
+GST_RTP_QCELP_DEPAY_CAST
+GST_IS_RTP_QCELP_DEPAY
+GST_RTP_QCELP_DEPAY_CLASS
+GST_IS_RTP_QCELP_DEPAY_CLASS
+GST_TYPE_RTP_QCELP_DEPAY
+<SUBSECTION Private>
+gst_rtp_qcelp_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpqdm2depay</FILE>
+<TITLE>rtpqdm2depay</TITLE>
+GstRtpQDM2Depay
+<SUBSECTION Standard>
+GstRtpQDM2DepayClass
+GST_RTP_QD_M2_DEPAY
+GST_RTP_QD_M2_DEPAY_CAST
+GST_IS_RTP_QD_M2_DEPAY
+GST_RTP_QD_M2_DEPAY_CLASS
+GST_IS_RTP_QD_M2_DEPAY_CLASS
+GST_TYPE_RTP_QD_M2_DEPAY
+<SUBSECTION Private>
+gst_rtp_qd_m2_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtprtxreceive</FILE>
+<TITLE>rtprtxreceive</TITLE>
+GstRtpRtxReceive
+<SUBSECTION Standard>
+GstRtpRtxReceiveClass
+GST_RTP_RTX_RECEIVE
+GST_RTP_RTX_RECEIVE_CAST
+GST_IS_RTP_RTX_RECEIVE
+GST_RTP_RTX_RECEIVE_CLASS
+GST_IS_RTP_RTX_RECEIVE_CLASS
+GST_TYPE_RTP_RTX_RECEIVE
+<SUBSECTION Private>
+gst_rtp_rtx_receive_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtprtxsend</FILE>
+<TITLE>rtprtxsend</TITLE>
+GstRtpRtxSend
+<SUBSECTION Standard>
+GstRtpRtxSendClass
+GST_RTP_RTX_SEND
+GST_RTP_RTX_SEND_CAST
+GST_IS_RTP_RTX_SEND
+GST_RTP_RTX_SEND_CLASS
+GST_IS_RTP_RTX_SEND_CLASS
+GST_TYPE_RTP_RTX_SEND
+<SUBSECTION Private>
+gst_rtp_rtx_send_get_type
 </SECTION>
 
 <SECTION>
@@ -1899,37 +3241,351 @@
 <SUBSECTION Standard>
 GstRtpSBCPayClass
 GST_RTP_SBC_PAY
-GST_RTP_SBC_PAY_CLASS
+GST_RTP_SBC_PAY_CAST
 GST_IS_RTP_SBC_PAY
+GST_RTP_SBC_PAY_CLASS
 GST_IS_RTP_SBC_PAY_CLASS
 GST_TYPE_RTP_SBC_PAY
+<SUBSECTION Private>
 gst_rtp_sbc_pay_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-rtspsrc</FILE>
-<TITLE>rtspsrc</TITLE>
-GstRTSPSrc
+<FILE>element-rtpspeexdepay</FILE>
+<TITLE>rtpspeexdepay</TITLE>
+GstRtpSPEEXDepay
 <SUBSECTION Standard>
-GstRTSPStream
-GstRTSPSrcClass
-GstRTSPNatMethod
-GST_RTSPSRC
-GST_IS_RTSPSRC
-GST_TYPE_RTSPSRC
-GST_RTSPSRC_CLASS
-GST_IS_RTSPSRC_CLASS
-GST_RTSPSRC_CAST
-GST_RTSP_CONN_GET_LOCK
-GST_RTSP_CONN_LOCK
-GST_RTSP_CONN_UNLOCK
-GST_RTSP_STATE_GET_LOCK
-GST_RTSP_STATE_LOCK
-GST_RTSP_STATE_UNLOCK
-GST_RTSP_STREAM_GET_LOCK
-GST_RTSP_STREAM_LOCK
-GST_RTSP_STREAM_UNLOCK
-gst_rtspsrc_get_type
+GstRtpSPEEXDepayClass
+GST_RTP_SPEEX_DEPAY
+GST_RTP_SPEEX_DEPAY_CAST
+GST_IS_RTP_SPEEX_DEPAY
+GST_RTP_SPEEX_DEPAY_CLASS
+GST_IS_RTP_SPEEX_DEPAY_CLASS
+GST_TYPE_RTP_SPEEX_DEPAY
+<SUBSECTION Private>
+gst_rtp_speex_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpspeexpay</FILE>
+<TITLE>rtpspeexpay</TITLE>
+GstRtpSPEEXPay
+<SUBSECTION Standard>
+GstRtpSPEEXPayClass
+GST_RTP_SPEEX_PAY
+GST_RTP_SPEEX_PAY_CAST
+GST_IS_RTP_SPEEX_PAY
+GST_RTP_SPEEX_PAY_CLASS
+GST_IS_RTP_SPEEX_PAY_CLASS
+GST_TYPE_RTP_SPEEX_PAY
+<SUBSECTION Private>
+gst_rtp_speex_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpsv3vdepay</FILE>
+<TITLE>rtpsv3vdepay</TITLE>
+GstRtpSV3VDepay
+<SUBSECTION Standard>
+GstRtpSV3VDepayClass
+GST_RTP_S_V3_V_DEPAY
+GST_RTP_S_V3_V_DEPAY_CAST
+GST_IS_RTP_S_V3_V_DEPAY
+GST_RTP_S_V3_V_DEPAY_CLASS
+GST_IS_RTP_S_V3_V_DEPAY_CLASS
+GST_TYPE_RTP_S_V3_V_DEPAY
+<SUBSECTION Private>
+gst_rtp_s_v3_v_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpsbcdepay</FILE>
+<TITLE>rtpsbcdepay</TITLE>
+GstRtpSbcDepay
+<SUBSECTION Standard>
+GstRtpSbcDepayClass
+GST_RTP_SBC_DEPAY
+GST_RTP_SBC_DEPAY_CAST
+GST_IS_RTP_SBC_DEPAY
+GST_RTP_SBC_DEPAY_CLASS
+GST_IS_RTP_SBC_DEPAY_CLASS
+GST_TYPE_RTP_SBC_DEPAY
+<SUBSECTION Private>
+gst_rtp_sbc_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpsession</FILE>
+<TITLE>rtpsession</TITLE>
+GstRtpSession
+<SUBSECTION Standard>
+GstRtpSessionClass
+GST_RTP_SESSION
+GST_RTP_SESSION_CAST
+GST_IS_RTP_SESSION
+GST_RTP_SESSION_CLASS
+GST_IS_RTP_SESSION_CLASS
+GST_TYPE_RTP_SESSION
+<SUBSECTION Private>
+gst_rtp_session_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpssrcdemux</FILE>
+<TITLE>rtpssrcdemux</TITLE>
+GstRtpSsrcDemux
+<SUBSECTION Standard>
+GstRtpSsrcDemuxClass
+GST_RTP_SSRC_DEMUX
+GST_RTP_SSRC_DEMUX_CAST
+GST_IS_RTP_SSRC_DEMUX
+GST_RTP_SSRC_DEMUX_CLASS
+GST_IS_RTP_SSRC_DEMUX_CLASS
+GST_TYPE_RTP_SSRC_DEMUX
+<SUBSECTION Private>
+gst_rtp_ssrc_demux_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpstreamdepay</FILE>
+<TITLE>rtpstreamdepay</TITLE>
+GstRtpStreamDepay
+<SUBSECTION Standard>
+GstRtpStreamDepayClass
+GST_RTP_STREAM_DEPAY
+GST_RTP_STREAM_DEPAY_CAST
+GST_IS_RTP_STREAM_DEPAY
+GST_RTP_STREAM_DEPAY_CLASS
+GST_IS_RTP_STREAM_DEPAY_CLASS
+GST_TYPE_RTP_STREAM_DEPAY
+<SUBSECTION Private>
+gst_rtp_stream_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpstreampay</FILE>
+<TITLE>rtpstreampay</TITLE>
+GstRtpStreamPay
+<SUBSECTION Standard>
+GstRtpStreamPayClass
+GST_RTP_STREAM_PAY
+GST_RTP_STREAM_PAY_CAST
+GST_IS_RTP_STREAM_PAY
+GST_RTP_STREAM_PAY_CLASS
+GST_IS_RTP_STREAM_PAY_CLASS
+GST_TYPE_RTP_STREAM_PAY
+<SUBSECTION Private>
+gst_rtp_stream_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtptheoradepay</FILE>
+<TITLE>rtptheoradepay</TITLE>
+GstRtpTheoraDepay
+<SUBSECTION Standard>
+GstRtpTheoraDepayClass
+GST_RTP_THEORA_DEPAY
+GST_RTP_THEORA_DEPAY_CAST
+GST_IS_RTP_THEORA_DEPAY
+GST_RTP_THEORA_DEPAY_CLASS
+GST_IS_RTP_THEORA_DEPAY_CLASS
+GST_TYPE_RTP_THEORA_DEPAY
+<SUBSECTION Private>
+gst_rtp_theora_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtptheorapay</FILE>
+<TITLE>rtptheorapay</TITLE>
+GstRtpTheoraPay
+<SUBSECTION Standard>
+GstRtpTheoraPayClass
+GST_RTP_THEORA_PAY
+GST_RTP_THEORA_PAY_CAST
+GST_IS_RTP_THEORA_PAY
+GST_RTP_THEORA_PAY_CLASS
+GST_IS_RTP_THEORA_PAY_CLASS
+GST_TYPE_RTP_THEORA_PAY
+<SUBSECTION Private>
+gst_rtp_theora_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvp8depay</FILE>
+<TITLE>rtpvp8depay</TITLE>
+GstRtpVP8Depay
+<SUBSECTION Standard>
+GstRtpVP8DepayClass
+GST_RTP_V_P8_DEPAY
+GST_RTP_V_P8_DEPAY_CAST
+GST_IS_RTP_V_P8_DEPAY
+GST_RTP_V_P8_DEPAY_CLASS
+GST_IS_RTP_V_P8_DEPAY_CLASS
+GST_TYPE_RTP_V_P8_DEPAY
+<SUBSECTION Private>
+gst_rtp_v_p8_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvp8pay</FILE>
+<TITLE>rtpvp8pay</TITLE>
+GstRtpVP8Pay
+<SUBSECTION Standard>
+GstRtpVP8PayClass
+GST_RTP_V_P8_PAY
+GST_RTP_V_P8_PAY_CAST
+GST_IS_RTP_V_P8_PAY
+GST_RTP_V_P8_PAY_CLASS
+GST_IS_RTP_V_P8_PAY_CLASS
+GST_TYPE_RTP_V_P8_PAY
+<SUBSECTION Private>
+gst_rtp_v_p8_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvp9depay</FILE>
+<TITLE>rtpvp9depay</TITLE>
+GstRtpVP9Depay
+<SUBSECTION Standard>
+GstRtpVP9DepayClass
+GST_RTP_V_P9_DEPAY
+GST_RTP_V_P9_DEPAY_CAST
+GST_IS_RTP_V_P9_DEPAY
+GST_RTP_V_P9_DEPAY_CLASS
+GST_IS_RTP_V_P9_DEPAY_CLASS
+GST_TYPE_RTP_V_P9_DEPAY
+<SUBSECTION Private>
+gst_rtp_v_p9_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvp9pay</FILE>
+<TITLE>rtpvp9pay</TITLE>
+GstRtpVP9Pay
+<SUBSECTION Standard>
+GstRtpVP9PayClass
+GST_RTP_V_P9_PAY
+GST_RTP_V_P9_PAY_CAST
+GST_IS_RTP_V_P9_PAY
+GST_RTP_V_P9_PAY_CLASS
+GST_IS_RTP_V_P9_PAY_CLASS
+GST_TYPE_RTP_V_P9_PAY
+<SUBSECTION Private>
+gst_rtp_v_p9_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvrawdepay</FILE>
+<TITLE>rtpvrawdepay</TITLE>
+GstRtpVRawDepay
+<SUBSECTION Standard>
+GstRtpVRawDepayClass
+GST_RTP_V_RAW_DEPAY
+GST_RTP_V_RAW_DEPAY_CAST
+GST_IS_RTP_V_RAW_DEPAY
+GST_RTP_V_RAW_DEPAY_CLASS
+GST_IS_RTP_V_RAW_DEPAY_CLASS
+GST_TYPE_RTP_V_RAW_DEPAY
+<SUBSECTION Private>
+gst_rtp_v_raw_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvrawpay</FILE>
+<TITLE>rtpvrawpay</TITLE>
+GstRtpVRawPay
+<SUBSECTION Standard>
+GstRtpVRawPayClass
+GST_RTP_V_RAW_PAY
+GST_RTP_V_RAW_PAY_CAST
+GST_IS_RTP_V_RAW_PAY
+GST_RTP_V_RAW_PAY_CLASS
+GST_IS_RTP_V_RAW_PAY_CLASS
+GST_TYPE_RTP_V_RAW_PAY
+<SUBSECTION Private>
+gst_rtp_v_raw_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvorbisdepay</FILE>
+<TITLE>rtpvorbisdepay</TITLE>
+GstRtpVorbisDepay
+<SUBSECTION Standard>
+GstRtpVorbisDepayClass
+GST_RTP_VORBIS_DEPAY
+GST_RTP_VORBIS_DEPAY_CAST
+GST_IS_RTP_VORBIS_DEPAY
+GST_RTP_VORBIS_DEPAY_CLASS
+GST_IS_RTP_VORBIS_DEPAY_CLASS
+GST_TYPE_RTP_VORBIS_DEPAY
+<SUBSECTION Private>
+gst_rtp_vorbis_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpvorbispay</FILE>
+<TITLE>rtpvorbispay</TITLE>
+GstRtpVorbisPay
+<SUBSECTION Standard>
+GstRtpVorbisPayClass
+GST_RTP_VORBIS_PAY
+GST_RTP_VORBIS_PAY_CAST
+GST_IS_RTP_VORBIS_PAY
+GST_RTP_VORBIS_PAY_CLASS
+GST_IS_RTP_VORBIS_PAY_CLASS
+GST_TYPE_RTP_VORBIS_PAY
+<SUBSECTION Private>
+gst_rtp_vorbis_pay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-rtpxqtdepay</FILE>
+<TITLE>rtpxqtdepay</TITLE>
+GstRtpXQTDepay
+<SUBSECTION Standard>
+GstRtpXQTDepayClass
+GST_RTP_XQT_DEPAY
+GST_RTP_XQT_DEPAY_CAST
+GST_IS_RTP_XQT_DEPAY
+GST_RTP_XQT_DEPAY_CLASS
+GST_IS_RTP_XQT_DEPAY_CLASS
+GST_TYPE_RTP_XQT_DEPAY
+<SUBSECTION Private>
+gst_rtp_xqt_depay_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-smpte</FILE>
+<TITLE>smpte</TITLE>
+GstSMPTE
+GstSMPTETransitionType
+<SUBSECTION Standard>
+GstSMPTEClass
+GST_SMPTE
+GST_SMPTE_CAST
+GST_IS_SMPTE
+GST_SMPTE_CLASS
+GST_IS_SMPTE_CLASS
+GST_TYPE_SMPTE
+<SUBSECTION Private>
+gst_smpte_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-smptealpha</FILE>
+<TITLE>smptealpha</TITLE>
+GstSMPTEAlpha
+GstSMPTEAlphaTransitionType
+<SUBSECTION Standard>
+GstSMPTEAlphaClass
+GST_SMPTE_ALPHA
+GST_SMPTE_ALPHA_CAST
+GST_IS_SMPTE_ALPHA
+GST_SMPTE_ALPHA_CLASS
+GST_IS_SMPTE_ALPHA_CLASS
+GST_TYPE_SMPTE_ALPHA
+<SUBSECTION Private>
+gst_smpte_alpha_get_type
 </SECTION>
 
 <SECTION>
@@ -1939,25 +3595,60 @@
 <SUBSECTION Standard>
 GstSbcParseClass
 GST_SBC_PARSE
-GST_SBC_PARSE_CLASS
+GST_SBC_PARSE_CAST
 GST_IS_SBC_PARSE
+GST_SBC_PARSE_CLASS
 GST_IS_SBC_PARSE_CLASS
 GST_TYPE_SBC_PARSE
+<SUBSECTION Private>
 gst_sbc_parse_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-scaletempo</FILE>
+<TITLE>scaletempo</TITLE>
+GstScaletempo
+<SUBSECTION Standard>
+GstScaletempoClass
+GST_SCALETEMPO
+GST_SCALETEMPO_CAST
+GST_IS_SCALETEMPO
+GST_SCALETEMPO_CLASS
+GST_IS_SCALETEMPO_CLASS
+GST_TYPE_SCALETEMPO
+<SUBSECTION Private>
+gst_scaletempo_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-shagadelictv</FILE>
+<TITLE>shagadelictv</TITLE>
+GstShagadelicTV
+<SUBSECTION Standard>
+GstShagadelicTVClass
+GST_SHAGADELIC_TV
+GST_SHAGADELIC_TV_CAST
+GST_IS_SHAGADELIC_TV
+GST_SHAGADELIC_TV_CLASS
+GST_IS_SHAGADELIC_TV_CLASS
+GST_TYPE_SHAGADELIC_TV
+<SUBSECTION Private>
+gst_shagadelic_tv_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-shapewipe</FILE>
 <TITLE>shapewipe</TITLE>
 GstShapeWipe
 <SUBSECTION Standard>
 GstShapeWipeClass
 GST_SHAPE_WIPE
-GST_SHAPE_WIPE_CLASS
+GST_SHAPE_WIPE_CAST
 GST_IS_SHAPE_WIPE
+GST_SHAPE_WIPE_CLASS
 GST_IS_SHAPE_WIPE_CLASS
-GST_SHAPE_WIPE_GET_CLASS
 GST_TYPE_SHAPE_WIPE
+<SUBSECTION Private>
 gst_shape_wipe_get_type
 </SECTION>
 
@@ -1968,82 +3659,45 @@
 <SUBSECTION Standard>
 GstShout2sendClass
 GST_SHOUT2SEND
-GST_SHOUT2SEND_CLASS
+GST_SHOUT2SEND_CAST
 GST_IS_SHOUT2SEND
+GST_SHOUT2SEND_CLASS
 GST_IS_SHOUT2SEND_CLASS
 GST_TYPE_SHOUT2SEND
+<SUBSECTION Private>
 gst_shout2send_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-smpte</FILE>
-<TITLE>smpte</TITLE>
-GstSMPTE
-<SUBSECTION Standard>
-GstSMPTEClass
-GST_SMPTE
-GST_IS_SMPTE
-GST_TYPE_SMPTE
-GST_SMPTE_CLASS
-GST_IS_SMPTE_CLASS
-gst_smpte_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-smptealpha</FILE>
-<TITLE>smptealpha</TITLE>
-GstSMPTEAlpha
-<SUBSECTION Standard>
-GstSMPTEAlphaClass
-GST_SMPTE_ALPHA
-GST_IS_SMPTE_ALPHA
-GST_TYPE_SMPTE_ALPHA
-GST_SMPTE_ALPHA_CLASS
-GST_IS_SMPTE_ALPHA_CLASS
-gst_smpte_alpha_plugin_init
-</SECTION>
-
-<SECTION>
 <FILE>element-souphttpsrc</FILE>
 <TITLE>souphttpsrc</TITLE>
 GstSoupHTTPSrc
 <SUBSECTION Standard>
 GstSoupHTTPSrcClass
-GstSoupHTTPSrcSessionIOStatus
 GST_SOUP_HTTP_SRC
-GST_SOUP_HTTP_SRC_CLASS
+GST_SOUP_HTTP_SRC_CAST
 GST_IS_SOUP_HTTP_SRC
+GST_SOUP_HTTP_SRC_CLASS
 GST_IS_SOUP_HTTP_SRC_CLASS
 GST_TYPE_SOUP_HTTP_SRC
+<SUBSECTION Private>
 gst_soup_http_src_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-smokedec</FILE>
-<TITLE>smokedec</TITLE>
-GstSmokeDec
+<FILE>element-souphttpclientsink</FILE>
+<TITLE>souphttpclientsink</TITLE>
+GstSoupHttpClientSink
 <SUBSECTION Standard>
-GstSmokeDecClass
-GST_SMOKEDEC
-GST_IS_SMOKEDEC
-GST_TYPE_SMOKEDEC
-gst_smokedec_get_type
-GST_SMOKEDEC_CLASS
-GST_IS_SMOKEDEC_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>element-smokeenc</FILE>
-<TITLE>smokeenc</TITLE>
-GstSmokeEnc
-<SUBSECTION Standard>
-GstSmokeEncClass
-GST_SMOKEENC
-GST_IS_SMOKEENC
-GST_TYPE_SMOKEENC
-gst_smokeenc_get_type
-GST_SMOKEENC_CLASS
-GST_IS_SMOKEENC_CLASS
+GstSoupHttpClientSinkClass
+GST_SOUP_HTTP_CLIENT_SINK
+GST_SOUP_HTTP_CLIENT_SINK_CAST
+GST_IS_SOUP_HTTP_CLIENT_SINK
+GST_SOUP_HTTP_CLIENT_SINK_CLASS
+GST_IS_SOUP_HTTP_CLIENT_SINK_CLASS
+GST_TYPE_SOUP_HTTP_CLIENT_SINK
+<SUBSECTION Private>
+gst_soup_http_client_sink_get_type
 </SECTION>
 
 <SECTION>
@@ -2053,10 +3707,12 @@
 <SUBSECTION Standard>
 GstSpectrumClass
 GST_SPECTRUM
-GST_SPECTRUM_CLASS
+GST_SPECTRUM_CAST
 GST_IS_SPECTRUM
+GST_SPECTRUM_CLASS
 GST_IS_SPECTRUM_CLASS
 GST_TYPE_SPECTRUM
+<SUBSECTION Private>
 gst_spectrum_get_type
 </SECTION>
 
@@ -2066,11 +3722,13 @@
 GstSpeexDec
 <SUBSECTION Standard>
 GstSpeexDecClass
-GST_TYPE_SPEEX_DEC
 GST_SPEEX_DEC
-GST_SPEEX_DEC_CLASS
+GST_SPEEX_DEC_CAST
 GST_IS_SPEEX_DEC
+GST_SPEEX_DEC_CLASS
 GST_IS_SPEEX_DEC_CLASS
+GST_TYPE_SPEEX_DEC
+<SUBSECTION Private>
 gst_speex_dec_get_type
 </SECTION>
 
@@ -2078,14 +3736,16 @@
 <FILE>element-speexenc</FILE>
 <TITLE>speexenc</TITLE>
 GstSpeexEnc
+GstSpeexEncMode
 <SUBSECTION Standard>
 GstSpeexEncClass
-GstSpeexMode
-GST_TYPE_SPEEX_ENC
 GST_SPEEX_ENC
-GST_SPEEX_ENC_CLASS
+GST_SPEEX_ENC_CAST
 GST_IS_SPEEX_ENC
+GST_SPEEX_ENC_CLASS
 GST_IS_SPEEX_ENC_CLASS
+GST_TYPE_SPEEX_ENC
+<SUBSECTION Private>
 gst_speex_enc_get_type
 </SECTION>
 
@@ -2096,68 +3756,93 @@
 <SUBSECTION Standard>
 GstSplitFileSrcClass
 GST_SPLIT_FILE_SRC
-GST_SPLIT_FILE_SRC_CLASS
+GST_SPLIT_FILE_SRC_CAST
 GST_IS_SPLIT_FILE_SRC
+GST_SPLIT_FILE_SRC_CLASS
 GST_IS_SPLIT_FILE_SRC_CLASS
 GST_TYPE_SPLIT_FILE_SRC
+<SUBSECTION Private>
 gst_split_file_src_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-splitmuxsrc</FILE>
-<TITLE>splitmuxsrc</TITLE>
-GstSplitMuxSrc
-<SUBSECTION Standard>
-GstSplitMuxSrcClass
-GST_SPLITMUX_SRC
-GST_SPLITMUX_SRC_CLASS
-GST_IS_SPLITMUX_SRC
-GST_IS_SPLITMUX_SRC_CLASS
-GST_TYPE_SPLITMUX_SRC
-gst_split_mux_src_get_type
-</SECTION>
-
-<SECTION>
 <FILE>element-splitmuxsink</FILE>
 <TITLE>splitmuxsink</TITLE>
 GstSplitMuxSink
 <SUBSECTION Standard>
 GstSplitMuxSinkClass
-GST_SPLITMUX_SINK
-GST_SPLITMUX_SINK_CLASS
-GST_IS_SPLITMUX_SINK
-GST_IS_SPLITMUX_SINK_CLASS
-GST_TYPE_SPLITMUX_SINK
+GST_SPLIT_MUX_SINK
+GST_SPLIT_MUX_SINK_CAST
+GST_IS_SPLIT_MUX_SINK
+GST_SPLIT_MUX_SINK_CLASS
+GST_IS_SPLIT_MUX_SINK_CLASS
+GST_TYPE_SPLIT_MUX_SINK
+<SUBSECTION Private>
 gst_split_mux_sink_get_type
 </SECTION>
 
 <SECTION>
+<FILE>element-splitmuxsrc</FILE>
+<TITLE>splitmuxsrc</TITLE>
+GstSplitMuxSrc
+<SUBSECTION Standard>
+GstSplitMuxSrcClass
+GST_SPLIT_MUX_SRC
+GST_SPLIT_MUX_SRC_CAST
+GST_IS_SPLIT_MUX_SRC
+GST_SPLIT_MUX_SRC_CLASS
+GST_IS_SPLIT_MUX_SRC_CLASS
+GST_TYPE_SPLIT_MUX_SRC
+<SUBSECTION Private>
+gst_split_mux_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-streaktv</FILE>
+<TITLE>streaktv</TITLE>
+GstStreakTV
+<SUBSECTION Standard>
+GstStreakTVClass
+GST_STREAK_TV
+GST_STREAK_TV_CAST
+GST_IS_STREAK_TV
+GST_STREAK_TV_CLASS
+GST_IS_STREAK_TV_CLASS
+GST_TYPE_STREAK_TV
+<SUBSECTION Private>
+gst_streak_tv_get_type
+</SECTION>
+
+<SECTION>
 <FILE>element-taginject</FILE>
 <TITLE>taginject</TITLE>
 GstTagInject
 <SUBSECTION Standard>
 GstTagInjectClass
 GST_TAG_INJECT
+GST_TAG_INJECT_CAST
 GST_IS_TAG_INJECT
-GST_TYPE_TAG_INJECT
 GST_TAG_INJECT_CLASS
 GST_IS_TAG_INJECT_CLASS
+GST_TYPE_TAG_INJECT
+<SUBSECTION Private>
 gst_tag_inject_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-udpsrc</FILE>
-<TITLE>udpsrc</TITLE>
-GstUDPSrc
+<FILE>element-testsink</FILE>
+<TITLE>testsink</TITLE>
+GstTest
 <SUBSECTION Standard>
-GstUDPSrcClass
-GST_UDPSRC
-GST_IS_UDPSRC
-GST_TYPE_UDPSRC
-GST_UDPSRC_CLASS
-GST_IS_UDPSRC_CLASS
-GST_UDPSRC_CAST
-gst_udpsrc_get_type
+GstTestClass
+GST_TEST
+GST_TEST_CAST
+GST_IS_TEST
+GST_TEST_CLASS
+GST_IS_TEST_CLASS
+GST_TYPE_TEST
+<SUBSECTION Private>
+gst_test_get_type
 </SECTION>
 
 <SECTION>
@@ -2166,28 +3851,191 @@
 GstUDPSink
 <SUBSECTION Standard>
 GstUDPSinkClass
-GST_UDPSINK
-GST_IS_UDPSINK
-GST_TYPE_UDPSINK
-GST_UDPSINK_CLASS
-GST_IS_UDPSINK_CLASS
-gst_udpsink_get_type
+GST_UDP_SINK
+GST_UDP_SINK_CAST
+GST_IS_UDP_SINK
+GST_UDP_SINK_CLASS
+GST_IS_UDP_SINK_CLASS
+GST_TYPE_UDP_SINK
+<SUBSECTION Private>
+gst_udp_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-udpsrc</FILE>
+<TITLE>udpsrc</TITLE>
+GstUDPSrc
+<SUBSECTION Standard>
+GstUDPSrcClass
+GST_UDP_SRC
+GST_UDP_SRC_CAST
+GST_IS_UDP_SRC
+GST_UDP_SRC_CLASS
+GST_IS_UDP_SRC_CLASS
+GST_TYPE_UDP_SRC
+<SUBSECTION Private>
+gst_udp_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-v4l2radio</FILE>
+<TITLE>v4l2radio</TITLE>
+GstV4l2Radio
+<SUBSECTION Standard>
+GstV4l2RadioClass
+GST_V4L2_RADIO
+GST_V4L2_RADIO_CAST
+GST_IS_V4L2_RADIO
+GST_V4L2_RADIO_CLASS
+GST_IS_V4L2_RADIO_CLASS
+GST_TYPE_V4L2_RADIO
+<SUBSECTION Private>
+gst_v4l2_radio_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-v4l2sink</FILE>
+<TITLE>v4l2sink</TITLE>
+GstV4l2Sink
+<SUBSECTION Standard>
+GstV4l2SinkClass
+GST_V4L2_SINK
+GST_V4L2_SINK_CAST
+GST_IS_V4L2_SINK
+GST_V4L2_SINK_CLASS
+GST_IS_V4L2_SINK_CLASS
+GST_TYPE_V4L2_SINK
+<SUBSECTION Private>
+gst_v4l2_sink_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-v4l2src</FILE>
+<TITLE>v4l2src</TITLE>
+GstV4l2Src
+<SUBSECTION Standard>
+GstV4l2SrcClass
+GST_V4L2_SRC
+GST_V4L2_SRC_CAST
+GST_IS_V4L2_SRC
+GST_V4L2_SRC_CLASS
+GST_IS_V4L2_SRC_CLASS
+GST_TYPE_V4L2_SRC
+<SUBSECTION Private>
+gst_v4l2_src_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-vp8dec</FILE>
+<TITLE>vp8dec</TITLE>
+GstVP8Dec
+<SUBSECTION Standard>
+GstVP8DecClass
+GST_V_P8_DEC
+GST_V_P8_DEC_CAST
+GST_IS_V_P8_DEC
+GST_V_P8_DEC_CLASS
+GST_IS_V_P8_DEC_CLASS
+GST_TYPE_V_P8_DEC
+<SUBSECTION Private>
+gst_v_p8_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-vp8enc</FILE>
+<TITLE>vp8enc</TITLE>
+GstVP8Enc
+<SUBSECTION Standard>
+GstVP8EncClass
+GST_V_P8_ENC
+GST_V_P8_ENC_CAST
+GST_IS_V_P8_ENC
+GST_V_P8_ENC_CLASS
+GST_IS_V_P8_ENC_CLASS
+GST_TYPE_V_P8_ENC
+<SUBSECTION Private>
+gst_v_p8_enc_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-vp9dec</FILE>
+<TITLE>vp9dec</TITLE>
+GstVP9Dec
+<SUBSECTION Standard>
+GstVP9DecClass
+GST_V_P9_DEC
+GST_V_P9_DEC_CAST
+GST_IS_V_P9_DEC
+GST_V_P9_DEC_CLASS
+GST_IS_V_P9_DEC_CLASS
+GST_TYPE_V_P9_DEC
+<SUBSECTION Private>
+gst_v_p9_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-vp9enc</FILE>
+<TITLE>vp9enc</TITLE>
+GstVP9Enc
+<SUBSECTION Standard>
+GstVP9EncClass
+GST_V_P9_ENC
+GST_V_P9_ENC_CAST
+GST_IS_V_P9_ENC
+GST_V_P9_ENC_CLASS
+GST_IS_V_P9_ENC_CLASS
+GST_TYPE_V_P9_ENC
+<SUBSECTION Private>
+gst_v_p9_enc_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-vertigotv</FILE>
+<TITLE>vertigotv</TITLE>
+GstVertigoTV
+<SUBSECTION Standard>
+GstVertigoTVClass
+GST_VERTIGO_TV
+GST_VERTIGO_TV_CAST
+GST_IS_VERTIGO_TV
+GST_VERTIGO_TV_CLASS
+GST_IS_VERTIGO_TV_CLASS
+GST_TYPE_VERTIGO_TV
+<SUBSECTION Private>
+gst_vertigo_tv_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-videobalance</FILE>
+<TITLE>videobalance</TITLE>
+GstVideoBalance
+<SUBSECTION Standard>
+GstVideoBalanceClass
+GST_VIDEO_BALANCE
+GST_VIDEO_BALANCE_CAST
+GST_IS_VIDEO_BALANCE
+GST_VIDEO_BALANCE_CLASS
+GST_IS_VIDEO_BALANCE_CLASS
+GST_TYPE_VIDEO_BALANCE
+<SUBSECTION Private>
+gst_video_balance_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-videobox</FILE>
 <TITLE>videobox</TITLE>
 GstVideoBox
+GstVideoBoxFill
 <SUBSECTION Standard>
 GstVideoBoxClass
-GstVideoBoxFill
+GST_VIDEO_BOX
+GST_VIDEO_BOX_CAST
 GST_IS_VIDEO_BOX
+GST_VIDEO_BOX_CLASS
 GST_IS_VIDEO_BOX_CLASS
 GST_TYPE_VIDEO_BOX
-GST_VIDEO_BOX
-GST_VIDEO_BOX_CLASS
+<SUBSECTION Private>
 gst_video_box_get_type
-gst_video_crop_get_type
 </SECTION>
 
 <SECTION>
@@ -2196,27 +4044,14 @@
 GstVideoCrop
 <SUBSECTION Standard>
 GstVideoCropClass
-VideoCropPixelFormat
-GstVideoCropImageDetails
-GST_IS_VIDEO_CROP
-GST_IS_VIDEO_CROP_CLASS
 GST_VIDEO_CROP
+GST_VIDEO_CROP_CAST
+GST_IS_VIDEO_CROP
 GST_VIDEO_CROP_CLASS
+GST_IS_VIDEO_CROP_CLASS
 GST_TYPE_VIDEO_CROP
-</SECTION>
-
-<SECTION>
-<FILE>element-aspectratiocrop</FILE>
-<TITLE>aspectratiocrop</TITLE>
-GstAspectRatioCrop
-<SUBSECTION Standard>
-GstAspectRatioCropClass                 
-GST_IS_ASPECT_RATIO_CROP
-GST_IS_ASPECT_RATIO_CROP_CLASS
-GST_ASPECT_RATIO_CROP
-GST_ASPECT_RATIO_CROP_CLASS
-GST_TYPE_ASPECT_RATIO_CROP
-gst_aspect_ratio_crop_get_type
+<SUBSECTION Private>
+gst_video_crop_get_type
 </SECTION>
 
 <SECTION>
@@ -2227,125 +4062,63 @@
 <SUBSECTION Standard>
 GstVideoFlipClass
 GST_VIDEO_FLIP
+GST_VIDEO_FLIP_CAST
 GST_IS_VIDEO_FLIP
-GST_TYPE_VIDEO_FLIP
-gst_video_flip_get_type
 GST_VIDEO_FLIP_CLASS
 GST_IS_VIDEO_FLIP_CLASS
+GST_TYPE_VIDEO_FLIP
+<SUBSECTION Private>
+gst_video_flip_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-videobalance</FILE>
-<TITLE>videobalance</TITLE>
-GstVideoBalance
+<FILE>element-videomedian</FILE>
+<TITLE>videomedian</TITLE>
+GstVideoMedian
+GstVideoMedianSize
 <SUBSECTION Standard>
-GstVideoBalanceClass
-GST_VIDEO_BALANCE
-GST_IS_VIDEO_BALANCE
-GST_TYPE_VIDEO_BALANCE
-gst_video_balance_get_type
-GST_VIDEO_BALANCE_CLASS
-GST_IS_VIDEO_BALANCE_CLASS
-</SECTION>
-
-<SECTION>
-<FILE>gstvideomixerpad</FILE>
-<TITLE>GstVideoMixerPad</TITLE>
-GstVideoMixerPad
-<SUBSECTION Standard>
-GstVideoMixerPadClass
-GstVideoMixerCollect
-GST_VIDEO_MIXER_PAD
-GST_VIDEO_MIXER_PAD_CLASS
-GST_IS_VIDEO_MIXER_PAD
-GST_IS_VIDEO_MIXER_PAD_CLASS
-GST_TYPE_VIDEO_MIXER_PAD
+GstVideoMedianClass
+GST_VIDEO_MEDIAN
+GST_VIDEO_MEDIAN_CAST
+GST_IS_VIDEO_MEDIAN
+GST_VIDEO_MEDIAN_CLASS
+GST_IS_VIDEO_MEDIAN_CLASS
+GST_TYPE_VIDEO_MEDIAN
+<SUBSECTION Private>
+gst_video_median_get_type
 </SECTION>
 
 <SECTION>
 <FILE>element-videomixer</FILE>
 <TITLE>videomixer</TITLE>
-GstVideoMixer
-GstVideoMixerBackground
+GstVideoMixer2
+GstVideoMixer2Background
 <SUBSECTION Standard>
-GstVideoMixerClass
-GST_VIDEO_MIXER
-GST_IS_VIDEO_MIXER
-GST_TYPE_VIDEO_MIXER
-GST_VIDEO_MIXER_CLASS
-GST_IS_VIDEO_MIXER_CLASS
-gst_video_mixer_get_type
+GstVideoMixer2Class
+GST_VIDEO_MIXER2
+GST_VIDEO_MIXER2_CAST
+GST_IS_VIDEO_MIXER2
+GST_VIDEO_MIXER2_CLASS
+GST_IS_VIDEO_MIXER2_CLASS
+GST_TYPE_VIDEO_MIXER2
+<SUBSECTION Private>
+gst_video_mixer2_get_type
 </SECTION>
 
 <SECTION>
-<FILE>element-v4l2src</FILE>
-<TITLE>v4l2src</TITLE>
-GstV4l2Src
+<FILE>element-warptv</FILE>
+<TITLE>warptv</TITLE>
+GstWarpTV
 <SUBSECTION Standard>
-GstV4l2SrcGetFunc
-GstV4l2SrcClass
-GST_V4L2SRC
-GST_IS_V4L2SRC
-GST_TYPE_V4L2SRC
-GST_V4L2SRC_CLASS
-GST_IS_V4L2SRC_CLASS
-gst_v4l2src_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-v4l2sink</FILE>
-<TITLE>v4l2sink</TITLE>
-GstV4l2Sink
-<SUBSECTION Standard>
-GstV4l2SinkClass
-GST_V4L2SINK
-GST_IS_V4L2SINK
-GST_TYPE_V4L2SINK
-GST_V4L2SINK_CLASS
-GST_IS_V4L2SINK_CLASS
-gst_v4l2sink_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-v4l2radio</FILE>
-<TITLE>v4l2radio</TITLE>
-GstV4l2Radio
-<SUBSECTION Standard>
-GstV4l2RadioClass
-GST_V4L2RADIO
-GST_IS_V4L2RADIO
-GST_TYPE_V4L2RADIO
-GST_V4L2RADIO_CLASS
-GST_IS_V4L2RADIO_CLASS
-gst_v4l2radio_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-vp8dec</FILE>
-<TITLE>vp8dec</TITLE>
-GstVP8Dec
-<SUBSECTION Standard>
-GstVP8DecClass
-GST_VP8_DEC
-GST_VP8_DEC_CLASS
-GST_IS_VP8_DEC
-GST_IS_VP8_DEC_CLASS
-GST_TYPE_VP8_DEC
-gst_vp8_dec_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-vp8enc</FILE>
-<TITLE>vp8enc</TITLE>
-GstVP8Enc
-<SUBSECTION Standard>
-GstVP8EncClass
-GST_VP8_ENC
-GST_VP8_ENC_CLASS
-GST_IS_VP8_ENC
-GST_IS_VP8_ENC_CLASS
-GST_TYPE_VP8_ENC
-gst_vp8_enc_get_type
+GstWarpTVClass
+GST_WARP_TV
+GST_WARP_TV_CAST
+GST_IS_WARP_TV
+GST_WARP_TV_CLASS
+GST_IS_WARP_TV_CLASS
+GST_TYPE_WARP_TV
+<SUBSECTION Private>
+gst_warp_tv_get_type
 </SECTION>
 
 <SECTION>
@@ -2375,58 +4148,14 @@
 GstWavEnc
 <SUBSECTION Standard>
 GstWavEncClass
-GST_WAVENC
-GST_IS_WAVENC
-GST_TYPE_WAVENC
-GST_WAVENC_CLASS
-GST_IS_WAVENC_CLASS
-gst_wavenc_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-wavpackdec</FILE>
-<TITLE>wavpackdec</TITLE>
-GstWavpackDec
-<SUBSECTION Standard>
-GstWavpackDecClass
-GST_IS_WAVPACK_DEC
-GST_IS_WAVPACK_DEC_CLASS
-GST_WAVPACK_DEC
-GST_WAVPACK_DEC_CLASS
-GST_TYPE_WAVPACK_DEC
-gst_wavpack_dec_get_type
-gst_wavpack_dec_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-wavpackenc</FILE>
-<TITLE>wavpackenc</TITLE>
-GstWavpackEnc
-<SUBSECTION Standard>
-GstWavpackEncClass
-GST_IS_WAVPACK_ENC
-GST_IS_WAVPACK_ENC_CLASS
-GST_WAVPACK_ENC
-GST_WAVPACK_ENC_CLASS
-GST_TYPE_WAVPACK_ENC
-gst_wavpack_enc_get_type
-gst_wavpack_enc_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-wavpackparse</FILE>
-<TITLE>wavpackparse</TITLE>
-GstWavpackParse
-<SUBSECTION Standard>
-GstWavpackParseClass
-GstWavpackParseIndexEntry
-GST_IS_WAVPACK_PARSE
-GST_IS_WAVPACK_PARSE_CLASS
-GST_WAVPACK_PARSE
-GST_WAVPACK_PARSE_CLASS
-GST_TYPE_WAVPACK_PARSE
-gst_wavpack_parse_get_type
-gst_wavpack_parse_plugin_init
+GST_WAV_ENC
+GST_WAV_ENC_CAST
+GST_IS_WAV_ENC
+GST_WAV_ENC_CLASS
+GST_IS_WAV_ENC_CLASS
+GST_TYPE_WAV_ENC
+<SUBSECTION Private>
+gst_wav_enc_get_type
 </SECTION>
 
 <SECTION>
@@ -2435,13 +4164,81 @@
 GstWavParse
 <SUBSECTION Standard>
 GstWavParseClass
-GstWavParseState
-GST_WAVPARSE
-GST_IS_WAVPARSE
-GST_TYPE_WAVPARSE
-GST_WAVPARSE_CLASS
-GST_IS_WAVPARSE_CLASS
-gst_wavparse_get_type
+GST_WAV_PARSE
+GST_WAV_PARSE_CAST
+GST_IS_WAV_PARSE
+GST_WAV_PARSE_CLASS
+GST_IS_WAV_PARSE_CLASS
+GST_TYPE_WAV_PARSE
+<SUBSECTION Private>
+gst_wav_parse_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-wavpackdec</FILE>
+<TITLE>wavpackdec</TITLE>
+GstWavpackDec
+<SUBSECTION Standard>
+GstWavpackDecClass
+GST_WAVPACK_DEC
+GST_WAVPACK_DEC_CAST
+GST_IS_WAVPACK_DEC
+GST_WAVPACK_DEC_CLASS
+GST_IS_WAVPACK_DEC_CLASS
+GST_TYPE_WAVPACK_DEC
+<SUBSECTION Private>
+gst_wavpack_dec_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-wavpackenc</FILE>
+<TITLE>wavpackenc</TITLE>
+GstWavpackEnc
+GstWavpackEncCorrectionMode
+GstWavpackEncJSMode
+GstWavpackEncMode
+<SUBSECTION Standard>
+GstWavpackEncClass
+GST_WAVPACK_ENC
+GST_WAVPACK_ENC_CAST
+GST_IS_WAVPACK_ENC
+GST_WAVPACK_ENC_CLASS
+GST_IS_WAVPACK_ENC_CLASS
+GST_TYPE_WAVPACK_ENC
+<SUBSECTION Private>
+gst_wavpack_enc_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-wavpackparse</FILE>
+<TITLE>wavpackparse</TITLE>
+GstWavpackParse
+<SUBSECTION Standard>
+GstWavpackParseClass
+GST_WAVPACK_PARSE
+GST_WAVPACK_PARSE_CAST
+GST_IS_WAVPACK_PARSE
+GST_WAVPACK_PARSE_CLASS
+GST_IS_WAVPACK_PARSE_CLASS
+GST_TYPE_WAVPACK_PARSE
+<SUBSECTION Private>
+gst_wavpack_parse_get_type
+</SECTION>
+
+<SECTION>
+<FILE>element-webmmux</FILE>
+<TITLE>webmmux</TITLE>
+GstWebMMux
+<SUBSECTION Standard>
+GstWebMMuxClass
+GST_WEB_M_MUX
+GST_WEB_M_MUX_CAST
+GST_IS_WEB_M_MUX
+GST_WEB_M_MUX_CLASS
+GST_IS_WEB_M_MUX_CLASS
+GST_TYPE_WEB_M_MUX
+<SUBSECTION Private>
+gst_web_m_mux_get_type
 </SECTION>
 
 <SECTION>
@@ -2450,12 +4247,14 @@
 GstXImageSrc
 <SUBSECTION Standard>
 GstXImageSrcClass
-GST_XIMAGE_SRC
-GST_IS_XIMAGE_SRC
-GST_TYPE_XIMAGE_SRC
-GST_XIMAGE_SRC_CLASS
-GST_IS_XIMAGE_SRC_CLASS
-gst_ximage_src_get_type
+GST_X_IMAGE_SRC
+GST_X_IMAGE_SRC_CAST
+GST_IS_X_IMAGE_SRC
+GST_X_IMAGE_SRC_CLASS
+GST_IS_X_IMAGE_SRC_CLASS
+GST_TYPE_X_IMAGE_SRC
+<SUBSECTION Private>
+gst_x_image_src_get_type
 </SECTION>
 
 <SECTION>
@@ -2465,239 +4264,12 @@
 <SUBSECTION Standard>
 GstY4mEncodeClass
 GST_Y4M_ENCODE
-GST_Y4M_ENCODE_CLASS
+GST_Y4M_ENCODE_CAST
 GST_IS_Y4M_ENCODE
+GST_Y4M_ENCODE_CLASS
 GST_IS_Y4M_ENCODE_CLASS
-GST_Y4M_ENCODE_GET_CLASS
 GST_TYPE_Y4M_ENCODE
+<SUBSECTION Private>
 gst_y4m_encode_get_type
 </SECTION>
 
-<SECTION>
-<FILE>element-agingtv</FILE>
-<TITLE>agingtv</TITLE>
-GstAgingTV
-<SUBSECTION Standard>
-SCRATCH_MAX
-GstAgingTVClass
-GST_AGINGTV
-GST_AGINGTV_CLASS
-GST_IS_AGINGTV
-GST_IS_AGINGTV_CLASS
-GST_TYPE_AGINGTV
-gst_agingtv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-dicetv</FILE>
-<TITLE>dicetv</TITLE>
-GstDiceTV
-<SUBSECTION Standard>
-GstDiceTVClass
-GST_DICETV
-GST_DICETV_CLASS
-GST_IS_DICETV
-GST_IS_DICETV_CLASS
-GST_TYPE_DICETV
-gst_dicetv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-edgetv</FILE>
-<TITLE>edgetv</TITLE>
-GstEdgeTV
-<SUBSECTION Standard>
-GstEdgeTVClass
-GST_EDGETV
-GST_EDGETV_CLASS
-GST_IS_EDGETV
-GST_IS_EDGETV_CLASS
-GST_TYPE_EDGETV
-gst_edgetv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-optv</FILE>
-<TITLE>optv</TITLE>
-GstOpTV
-<SUBSECTION Standard>
-GstOpTVClass
-GST_OPTV
-GST_OPTV_CLASS
-GST_IS_OPTV
-GST_IS_OPTV_CLASS
-GST_TYPE_OPTV
-gst_optv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-quarktv</FILE>
-<TITLE>quarktv</TITLE>
-GstQuarkTV
-<SUBSECTION Standard>
-GstQuarkTVClass
-GST_QUARKTV
-GST_QUARKTV_CLASS
-GST_IS_QUARKTV
-GST_IS_QUARKTV_CLASS
-GST_TYPE_QUARKTV
-gst_quarktv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-radioactv</FILE>
-<TITLE>radioactv</TITLE>
-GstRadioacTV
-<SUBSECTION Standard>
-GstRadioacTVClass
-GST_RADIOACTV
-GST_RADIOACTV_CLASS
-GST_IS_RADIOACTV
-GST_IS_RADIOACTV_CLASS
-GST_TYPE_RADIOACTV
-gst_radioactv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-revtv</FILE>
-<TITLE>revtv</TITLE>
-GstRevTV
-<SUBSECTION Standard>
-GstRevTVClass
-GST_REVTV
-GST_REVTV_CLASS
-GST_IS_REVTV
-GST_IS_REVTV_CLASS
-GST_TYPE_REVTV
-gst_revtv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-rippletv</FILE>
-<TITLE>rippletv</TITLE>
-GstRippleTV
-<SUBSECTION Standard>
-GstRippleTVClass
-GST_RIPPLETV
-GST_RIPPLETV_CLASS
-GST_IS_RIPPLETV
-GST_IS_RIPPLETV_CLASS
-GST_TYPE_RIPPLETV
-gst_rippletv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpdtmfmux</FILE>
-<TITLE>rtpdtmfmux</TITLE>
-GstRTPDTMFMux
-<SUBSECTION Standard>
-GST_IS_RTP_DTMF_MUX
-GST_IS_RTP_DTMF_MUX_CLASS
-GST_TYPE_RTP_DTMF_MUX
-GstRTPDTMFMuxClass
-GST_RTP_DTMF_MUX
-GST_RTP_DTMF_MUX_CLASS
-gst_rtp_dtmf_mux_get_type
-gst_rtp_dtmf_mux_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-rtpmux</FILE>
-<TITLE>rtpmux</TITLE>
-GstRTPMux
-<SUBSECTION Standard>
-GST_IS_RTP_MUX
-GST_IS_RTP_MUX_CLASS
-GST_RTP_MUX
-GST_RTP_MUX_CLASS
-GST_RTP_MUX_GET_CLASS
-GST_TYPE_RTP_MUX
-GstRTPMuxClass
-gst_rtp_mux_get_type
-gst_rtp_mux_plugin_init
-</SECTION>
-
-<SECTION>
-<FILE>element-scaletempo</FILE>
-<TITLE>scaletempo</TITLE>
-GstScaletempo
-<SUBSECTION Standard>
-GstScaletempoClass
-GST_IS_SCALETEMPO
-GST_IS_SCALETEMPO_CLASS
-GST_SCALETEMPO
-GST_SCALETEMPO_CLASS
-GST_TYPE_SCALETEMPO
-gst_scaletempo_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-shagadelictv</FILE>
-<TITLE>shagadelictv</TITLE>
-GstShagadelicTV
-<SUBSECTION Standard>
-GstShagadelicTVClass
-GST_SHAGADELICTV
-GST_SHAGADELICTV_CLASS
-GST_IS_SHAGADELICTV
-GST_IS_SHAGADELICTV_CLASS
-GST_TYPE_SHAGADELICTV
-gst_shagadelictv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-streaktv</FILE>
-<TITLE>streaktv</TITLE>
-GstStreakTV
-<SUBSECTION Standard>
-PLANES
-GstStreakTVClass
-GST_STREAKTV
-GST_STREAKTV_CLASS
-GST_IS_STREAKTV
-GST_IS_STREAKTV_CLASS
-GST_TYPE_STREAKTV
-gst_streaktv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-vertigotv</FILE>
-<TITLE>vertigotv</TITLE>
-GstVertigoTV
-<SUBSECTION Standard>
-GstVertigoTVClass
-GST_VERTIGOTV
-GST_VERTIGOTV_CLASS
-GST_IS_VERTIGOTV
-GST_IS_VERTIGOTV_CLASS
-GST_TYPE_VERTIGOTV
-gst_vertigotv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-warptv</FILE>
-<TITLE>warptv</TITLE>
-GstWarpTV
-<SUBSECTION Standard>
-GstWarpTVClass
-GST_WARPTV
-GST_WARPTV_CLASS
-GST_IS_WARPTV
-GST_IS_WARPTV_CLASS
-GST_TYPE_WARPTV
-gst_warptv_get_type
-</SECTION>
-
-<SECTION>
-<FILE>element-webmmux</FILE>
-<TITLE>webmmux</TITLE>
-GstWebMMux
-<SUBSECTION Standard>
-GST_TYPE_WEBM_MUX
-GST_WEBM_MUX
-GST_WEBM_MUX_CLASS
-GST_IS_WEBM_MUX
-GST_IS_WEBM_MUX_CLASS
-gst_webm_mux_get_type
-GstWebMMuxClass
-</SECTION>
diff --git a/docs/plugins/gst-plugins-good-plugins.args b/docs/plugins/gst-plugins-good-plugins.args
index ea7c014..cad472a 100644
--- a/docs/plugins/gst-plugins-good-plugins.args
+++ b/docs/plugins/gst-plugins-good-plugins.args
@@ -619,6 +619,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstUDPSrc::retrieve-sender-address</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Retrieve Sender Address</NICK>
+<BLURB>Whether to retrieve the sender address and add it to buffers as meta. Disabling this might result in minor performance improvements in certain scenarios.</BLURB>
+<DEFAULT>TRUE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstSMPTE::border</NAME>
 <TYPE>gint</TYPE>
 <RANGE>>= 0</RANGE>
@@ -1005,7 +1015,7 @@
 <FLAGS>rw</FLAGS>
 <NICK>User Agent</NICK>
 <BLURB>The User-Agent string to send to the server.</BLURB>
-<DEFAULT>"GStreamer/1.8.3"</DEFAULT>
+<DEFAULT>"GStreamer/1.9.90"</DEFAULT>
 </ARG>
 
 <ARG>
@@ -1019,6 +1029,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstRTSPSrc::rfc7273-sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync on RFC7273 clock</NICK>
+<BLURB>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstRTPDec::latency</NAME>
 <TYPE>guint</TYPE>
 <RANGE></RANGE>
@@ -1979,6 +1999,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstMatroskaMux::timecodescale</NAME>
+<TYPE>gint64</TYPE>
+<RANGE>[1,1000000000]</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Timecode Scale</NICK>
+<BLURB>TimecodeScale used to calculate the Raw Timecode of a Block.</BLURB>
+<DEFAULT>1000000</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstTest::allowed-timestamp-deviation</NAME>
 <TYPE>gint64</TYPE>
 <RANGE>>= G_MAXULONG</RANGE>
@@ -2204,7 +2234,7 @@
 <RANGE></RANGE>
 <FLAGS>rwx</FLAGS>
 <NICK>method</NICK>
-<BLURB>method.</BLURB>
+<BLURB>method (deprecated, use video-direction instead).</BLURB>
 <DEFAULT>Identity (no rotation)</DEFAULT>
 </ARG>
 
@@ -20519,6 +20549,26 @@
 </ARG>
 
 <ARG>
+<NAME>GstRtpBin::rfc7273-sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync on RFC7273 clock</NICK>
+<BLURB>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpBin::max-streams</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Max Streams</NICK>
+<BLURB>The maximum number of streams to create for one session.</BLURB>
+<DEFAULT>4294967295</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstRtpJitterBuffer::do-lost</NAME>
 <TYPE>gboolean</TYPE>
 <RANGE></RANGE>
@@ -20604,7 +20654,7 @@
 <RANGE>>= G_MAXULONG</RANGE>
 <FLAGS>rw</FLAGS>
 <NICK>RTX Delay Reorder</NICK>
-<BLURB>Sending retransmission event when this much reordering (-1 automatic).</BLURB>
+<BLURB>Sending retransmission event when this much reordering (0 disable, -1 automatic).</BLURB>
 <DEFAULT>3</DEFAULT>
 </ARG>
 
@@ -20709,6 +20759,36 @@
 </ARG>
 
 <ARG>
+<NAME>GstRtpJitterBuffer::rfc7273-sync</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Sync on RFC7273 clock</NICK>
+<BLURB>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpJitterBuffer::rtx-deadline</NAME>
+<TYPE>gint</TYPE>
+<RANGE>>= G_MAXULONG</RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>RTX Deadline (ms)</NICK>
+<BLURB>The deadline for a valid RTX request in milliseconds. (-1 automatic).</BLURB>
+<DEFAULT>-1</DEFAULT>
+</ARG>
+
+<ARG>
+<NAME>GstRtpJitterBuffer::rtx-stats-timeout</NAME>
+<TYPE>guint</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>RTX Statistics Timeout</NICK>
+<BLURB>The time to wait for a retransmitted packet after it has been considered lost in order to collect statistics (ms).</BLURB>
+<DEFAULT>1000</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstRtpSession::bandwidth</NAME>
 <TYPE>gdouble</TYPE>
 <RANGE>>= 0</RANGE>
@@ -23839,6 +23919,16 @@
 </ARG>
 
 <ARG>
+<NAME>GstSplitMuxSink::send-keyframe-requests</NAME>
+<TYPE>gboolean</TYPE>
+<RANGE></RANGE>
+<FLAGS>rw</FLAGS>
+<NICK>Request keyframes at max-size-time</NICK>
+<BLURB>Request a keyframe every max-size-time ns to try splitting at that point. Needs max-size-bytes to be 0 in order to be effective.</BLURB>
+<DEFAULT>FALSE</DEFAULT>
+</ARG>
+
+<ARG>
 <NAME>GstRtpVP9Pay::picture-id-mode</NAME>
 <TYPE>GstVP9RTPPayMode</TYPE>
 <RANGE></RANGE>
diff --git a/docs/plugins/gst-plugins-good-plugins.hierarchy b/docs/plugins/gst-plugins-good-plugins.hierarchy
index 30f4931..327d11d 100644
--- a/docs/plugins/gst-plugins-good-plugins.hierarchy
+++ b/docs/plugins/gst-plugins-good-plugins.hierarchy
@@ -1,4 +1,6 @@
 GObject
+  GIOStream
+    GTlsConnection
   GInitiallyUnowned
     GstObject
       GstAllocator
@@ -319,10 +321,18 @@
       GstRegistry
       GstTask
       GstTaskPool
+  GResolver
   GSocket
+  GSocketAddress
+    GInetSocketAddress
+      GProxyAddress
+  GSocketClient
   GSocketControlMessage
     GstIPPktinfoMessage
     GstIPV6PktinfoMessage
+  GSocketListener
+    GSocketService
+  GTlsCertificate
   GTlsDatabase
   GTlsInteraction
   GdkPixbuf
@@ -336,6 +346,8 @@
   GIcon
   GInitable
   GLoadableIcon
+  GProxyResolver
+  GSocketConnectable
   GTypePlugin
   GstChildProxy
   GstColorBalance
@@ -346,4 +358,5 @@
   GstTocSetter
   GstTuner
   GstURIHandler
+  GstVideoDirection
   GstVideoOrientation
diff --git a/docs/plugins/gst-plugins-good-plugins.interfaces b/docs/plugins/gst-plugins-good-plugins.interfaces
index eee5e7c..14fe6cd 100644
--- a/docs/plugins/gst-plugins-good-plugins.interfaces
+++ b/docs/plugins/gst-plugins-good-plugins.interfaces
@@ -1,8 +1,12 @@
+GInetSocketAddress GSocketConnectable
+GProxyAddress GSocketConnectable
 GSocket GInitable
 GSocket GInitable GDatagramBased
+GSocketAddress GSocketConnectable
 GdkPixbuf GIcon
 GdkPixbuf GIcon GLoadableIcon
 Gst3GPPMux GstTagSetter GstTagXmpWriter
+Gst3GPPMux GstTagSetter GstTagXmpWriter GstPreset
 GstALawEnc GstPreset
 GstApev2Mux GstTagSetter
 GstAspectRatioCrop GstChildProxy
@@ -32,6 +36,7 @@
 GstHalAudioSink GstChildProxy
 GstHalAudioSrc GstChildProxy
 GstISMLMux GstTagSetter GstTagXmpWriter
+GstISMLMux GstTagSetter GstTagXmpWriter GstPreset
 GstId3v2Mux GstTagSetter
 GstIirEqualizer GstChildProxy
 GstIirEqualizer GstChildProxy GstPreset
@@ -41,7 +46,9 @@
 GstIirEqualizerNBands GstChildProxy GstPreset
 GstJpegEnc GstPreset
 GstMJ2Mux GstTagSetter GstTagXmpWriter
+GstMJ2Mux GstTagSetter GstTagXmpWriter GstPreset
 GstMP4Mux GstTagSetter GstTagXmpWriter
+GstMP4Mux GstTagSetter GstTagXmpWriter GstPreset
 GstMatroskaMux GstTagSetter
 GstMatroskaMux GstTagSetter GstTocSetter
 GstMuLawEnc GstPreset
@@ -65,6 +72,7 @@
 GstPushFileSrc GstChildProxy GstURIHandler
 GstQTMoovRecover GstChildProxy
 GstQTMux GstTagSetter GstTagXmpWriter
+GstQTMux GstTagSetter GstTagXmpWriter GstPreset
 GstRTSPSrc GstChildProxy GstURIHandler
 GstRgVolume GstChildProxy
 GstRtpBin GstChildProxy
@@ -94,6 +102,7 @@
 GstVideoBalance GstColorBalance
 GstVideoBalance GstImplementsInterface GstColorBalance
 GstVideoEncoder GstPreset
+GstVideoFlip GstVideoDirection
 GstVideoMixer GstChildProxy
 GstVideoMixer2 GstChildProxy
 GstWavEnc GstTagSetter GstTocSetter
diff --git a/docs/plugins/gst-plugins-good-plugins.prerequisites b/docs/plugins/gst-plugins-good-plugins.prerequisites
index cecf52d..5dafa15 100644
--- a/docs/plugins/gst-plugins-good-plugins.prerequisites
+++ b/docs/plugins/gst-plugins-good-plugins.prerequisites
@@ -2,6 +2,8 @@
 GIcon GObject
 GInitable GObject
 GLoadableIcon GIcon GObject
+GProxyResolver GObject
+GSocketConnectable GObject
 GstChildProxy GObject
 GstChildProxy GstObject
 GstColorBalance GstImplementsInterface GstElement
diff --git a/docs/plugins/gst-plugins-good-plugins.signals b/docs/plugins/gst-plugins-good-plugins.signals
index cc02bbf..3db17e9 100644
--- a/docs/plugins/gst-plugins-good-plugins.signals
+++ b/docs/plugins/gst-plugins-good-plugins.signals
@@ -651,3 +651,10 @@
 guint  arg1
 </SIGNAL>
 
+<SIGNAL>
+<NAME>GstSplitMuxSrc::format-location</NAME>
+<RETURNS>GStrv</RETURNS>
+<FLAGS>l</FLAGS>
+GstSplitMuxSrc *gstsplitmuxsrc
+</SIGNAL>
+
diff --git a/docs/plugins/html/ch01.html b/docs/plugins/html/ch01.html
index cd5b690..265135c 100644
--- a/docs/plugins/html/ch01.html
+++ b/docs/plugins/html/ch01.html
@@ -63,6 +63,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-aspectratiocrop.html">aspectratiocrop</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-asteriskh263.html">asteriskh263</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-audioamplify.html">audioamplify</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -123,6 +126,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-avisubtitle.html">avisubtitle</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-breakmydata.html">breakmydata</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-cacasink.html">cacasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -132,6 +138,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-capssetter.html">capssetter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-cpureport.html">cpureport</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-cutter.html">cutter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -162,6 +171,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-dvdemux.html">dvdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-dynudpsink.html">dynudpsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-edgetv.html">edgetv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -198,6 +210,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufdec.html">gdkpixbufdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -219,6 +237,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-id3v2mux.html">id3v2mux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-iirequalizer.html">iirequalizer</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -249,6 +270,9 @@
 <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-matroskaparse.html">matroskaparse</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>
 </dt>
 <dt>
@@ -282,6 +306,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-multiudpsink.html">multiudpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-navigationtest.html">navigationtest</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-navseek.html">navseek</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-optv.html">optv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -321,6 +351,9 @@
 <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-pushfilesrc.html">pushfilesrc</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>
 </dt>
 <dt>
@@ -351,6 +384,9 @@
 <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-rndbuffersize.html">rndbuffersize</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>
@@ -372,28 +408,10 @@
 <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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpceltdepay.html">rtpceltdepay</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>
-<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-rtpj2kpay.html">rtpj2kpay</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-rtpsbcpay.html">rtpsbcpay</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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpceltpay.html">rtpceltpay</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>
@@ -408,12 +426,96 @@
 <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-rtpdvdepay.html">rtpdvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdvpay.html">rtpdvpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg722depay.html">rtpg722depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg722pay.html">rtpg722pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg723depay.html">rtpg723depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg723pay.html">rtpg723pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg726depay.html">rtpg726depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg726pay.html">rtpg726pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg729depay.html">rtpg729depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg729pay.html">rtpg729pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgsmdepay.html">rtpgsmdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgsmpay.html">rtpgsmpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgstdepay.html">rtpgstdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgstpay.html">rtpgstpay</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-rtph263depay.html">rtph263depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263pay.html">rtph263pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263pdepay.html">rtph263pdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263ppay.html">rtph263ppay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph264depay.html">rtph264depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph264pay.html">rtph264pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph265depay.html">rtph265depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph265pay.html">rtph265pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpilbcdepay.html">rtpilbcdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpilbcpay.html">rtpilbcpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kdepay.html">rtpj2kdepay</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-rtpjpegdepay.html">rtpjpegdepay</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>
@@ -429,33 +531,159 @@
 <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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL24depay.html">rtpL24depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpopuspay.html">rtpopuspay</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL24pay.html">rtpL24pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp1sdepay.html">rtpmp1sdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp2tdepay.html">rtpmp2tdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp2tpay.html">rtpmp2tpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4adepay.html">rtpmp4adepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4apay.html">rtpmp4apay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4gdepay.html">rtpmp4gdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4gpay.html">rtpmp4gpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4vdepay.html">rtpmp4vdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4vpay.html">rtpmp4vpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpadepay.html">rtpmpadepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpapay.html">rtpmpapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmparobustdepay.html">rtpmparobustdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpvdepay.html">rtpmpvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpvpay.html">rtpmpvpay</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-rtpopusdepay.html">rtpopusdepay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpopuspay.html">rtpopuspay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmadepay.html">rtppcmadepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmapay.html">rtppcmapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmudepay.html">rtppcmudepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmupay.html">rtppcmupay</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-rtpqcelpdepay.html">rtpqcelpdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpqdm2depay.html">rtpqdm2depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxqueue.html">rtprtxqueue</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>
 </dt>
 <dt>
 <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-rtpsbcdepay.html">rtpsbcdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <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-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsirendepay.html">rtpsirendepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsirenpay.html">rtpsirenpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpspeexdepay.html">rtpspeexdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpspeexpay.html">rtpspeexpay</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-rtpstreamdepay.html">rtpstreamdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpstreampay.html">rtpstreampay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsv3vdepay.html">rtpsv3vdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtptheoradepay.html">rtptheoradepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtptheorapay.html">rtptheorapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvorbisdepay.html">rtpvorbisdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvorbispay.html">rtpvorbispay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp8depay.html">rtpvp8depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp8pay.html">rtpvp8pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp9depay.html">rtpvp9depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp9pay.html">rtpvp9pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvrawdepay.html">rtpvrawdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvrawpay.html">rtpvrawpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpxqtdepay.html">rtpxqtdepay</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>
@@ -474,18 +702,15 @@
 <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-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-souphttpclientsink.html">souphttpclientsink</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>
@@ -514,6 +739,9 @@
 <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-testsink.html">testsink</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>
 </dt>
 <dt>
@@ -544,6 +772,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-videoflip.html">videoflip</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-videomedian.html">videomedian</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-videomixer.html">videomixer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -553,6 +784,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-vp8enc.html">vp8enc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-vp9dec.html">vp9dec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-vp9enc.html">vp9enc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-warptv.html">warptv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html
deleted file mode 100644
index 212fe7b..0000000
--- a/docs/plugins/html/ch03.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>gst-plugins-good Base Classes: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
-<link rel="prev" href="gst-plugins-good-plugins-plugin-y4menc.html" title="y4menc">
-<link rel="next" href="GstIirEqualizer.html" title="GstIirEqualizer">
-<meta name="generator" content="GTK-Doc V1.25 (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><img src="up-insensitive.png" width="16" height="16" border="0"></td>
-<td><a accesskey="p" href="gst-plugins-good-plugins-plugin-y4menc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="GstIirEqualizer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
-</tr></table>
-<div class="chapter">
-<div class="titlepage"><div><div><h1 class="title">
-<a name="id-1.4"></a>gst-plugins-good Base Classes</h1></div></div></div>
-<div class="toc"><dl class="toc">
-<dt>
-<span class="refentrytitle"><a href="GstIirEqualizer.html">GstIirEqualizer</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-GstVideoMixerPad.html">GstVideoMixerPad</a></span><span class="refpurpose"></span>
-</dt>
-</dl></div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
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 d30312d..f61e92a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
+++ b/docs/plugins/html/gst-plugins-good-plugins-1.0.devhelp2
@@ -15,6 +15,7 @@
       <sub name="apedemux" link="gst-plugins-good-plugins-apedemux.html"/>
       <sub name="apev2mux" link="gst-plugins-good-plugins-apev2mux.html"/>
       <sub name="aspectratiocrop" link="gst-plugins-good-plugins-aspectratiocrop.html"/>
+      <sub name="asteriskh263" link="gst-plugins-good-plugins-asteriskh263.html"/>
       <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"/>
@@ -35,9 +36,11 @@
       <sub name="avidemux" link="gst-plugins-good-plugins-avidemux.html"/>
       <sub name="avimux" link="gst-plugins-good-plugins-avimux.html"/>
       <sub name="avisubtitle" link="gst-plugins-good-plugins-avisubtitle.html"/>
+      <sub name="breakmydata" link="gst-plugins-good-plugins-breakmydata.html"/>
       <sub name="cacasink" link="gst-plugins-good-plugins-cacasink.html"/>
       <sub name="cairooverlay" link="gst-plugins-good-plugins-cairooverlay.html"/>
       <sub name="capssetter" link="gst-plugins-good-plugins-capssetter.html"/>
+      <sub name="cpureport" link="gst-plugins-good-plugins-cpureport.html"/>
       <sub name="cutter" link="gst-plugins-good-plugins-cutter.html"/>
       <sub name="dcaparse" link="gst-plugins-good-plugins-dcaparse.html"/>
       <sub name="deinterlace" link="gst-plugins-good-plugins-deinterlace.html"/>
@@ -48,6 +51,7 @@
       <sub name="dv1394src" link="gst-plugins-good-plugins-dv1394src.html"/>
       <sub name="dvdec" link="gst-plugins-good-plugins-dvdec.html"/>
       <sub name="dvdemux" link="gst-plugins-good-plugins-dvdemux.html"/>
+      <sub name="dynudpsink" link="gst-plugins-good-plugins-dynudpsink.html"/>
       <sub name="edgetv" link="gst-plugins-good-plugins-edgetv.html"/>
       <sub name="equalizer-10bands" link="gst-plugins-good-plugins-equalizer-10bands.html"/>
       <sub name="equalizer-3bands" link="gst-plugins-good-plugins-equalizer-3bands.html"/>
@@ -60,6 +64,8 @@
       <sub name="flvmux" link="gst-plugins-good-plugins-flvmux.html"/>
       <sub name="flxdec" link="gst-plugins-good-plugins-flxdec.html"/>
       <sub name="gamma" link="gst-plugins-good-plugins-gamma.html"/>
+      <sub name="gdkpixbufdec" link="gst-plugins-good-plugins-gdkpixbufdec.html"/>
+      <sub name="gdkpixbufoverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html"/>
       <sub name="gdkpixbufsink" link="gst-plugins-good-plugins-gdkpixbufsink.html"/>
       <sub name="goom2k1" link="gst-plugins-good-plugins-goom2k1.html"/>
       <sub name="goom" link="gst-plugins-good-plugins-goom.html"/>
@@ -67,6 +73,7 @@
       <sub name="icydemux" link="gst-plugins-good-plugins-icydemux.html"/>
       <sub name="id3demux" link="gst-plugins-good-plugins-id3demux.html"/>
       <sub name="id3v2mux" link="gst-plugins-good-plugins-id3v2mux.html"/>
+      <sub name="iirequalizer" link="gst-plugins-good-plugins-iirequalizer.html"/>
       <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"/>
@@ -77,6 +84,7 @@
       <sub name="level" link="gst-plugins-good-plugins-level.html"/>
       <sub name="matroskademux" link="gst-plugins-good-plugins-matroskademux.html"/>
       <sub name="matroskamux" link="gst-plugins-good-plugins-matroskamux.html"/>
+      <sub name="matroskaparse" link="gst-plugins-good-plugins-matroskaparse.html"/>
       <sub name="mj2mux" link="gst-plugins-good-plugins-mj2mux.html"/>
       <sub name="monoscope" link="gst-plugins-good-plugins-monoscope.html"/>
       <sub name="mp4mux" link="gst-plugins-good-plugins-mp4mux.html"/>
@@ -88,6 +96,8 @@
       <sub name="multipartdemux" link="gst-plugins-good-plugins-multipartdemux.html"/>
       <sub name="multipartmux" link="gst-plugins-good-plugins-multipartmux.html"/>
       <sub name="multiudpsink" link="gst-plugins-good-plugins-multiudpsink.html"/>
+      <sub name="navigationtest" link="gst-plugins-good-plugins-navigationtest.html"/>
+      <sub name="navseek" link="gst-plugins-good-plugins-navseek.html"/>
       <sub name="optv" link="gst-plugins-good-plugins-optv.html"/>
       <sub name="oss4sink" link="gst-plugins-good-plugins-oss4sink.html"/>
       <sub name="oss4src" link="gst-plugins-good-plugins-oss4src.html"/>
@@ -101,6 +111,7 @@
       <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="pushfilesrc" link="gst-plugins-good-plugins-pushfilesrc.html"/>
       <sub name="qtdemux" link="gst-plugins-good-plugins-qtdemux.html"/>
       <sub name="qtmoovrecover" link="gst-plugins-good-plugins-qtmoovrecover.html"/>
       <sub name="qtmux" link="gst-plugins-good-plugins-qtmux.html"/>
@@ -111,6 +122,7 @@
       <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="rndbuffersize" link="gst-plugins-good-plugins-rndbuffersize.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"/>
@@ -118,44 +130,107 @@
       <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"/>
-      <sub name="rtpjpegpay" link="gst-plugins-good-plugins-rtpjpegpay.html"/>
-      <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/>
-      <sub name="rtpbin" link="gst-plugins-good-plugins-rtpbin.html"/>
+      <sub name="rtpceltdepay" link="gst-plugins-good-plugins-rtpceltdepay.html"/>
+      <sub name="rtpceltpay" link="gst-plugins-good-plugins-rtpceltpay.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="rtpdvdepay" link="gst-plugins-good-plugins-rtpdvdepay.html"/>
+      <sub name="rtpdvpay" link="gst-plugins-good-plugins-rtpdvpay.html"/>
+      <sub name="rtpg722depay" link="gst-plugins-good-plugins-rtpg722depay.html"/>
+      <sub name="rtpg722pay" link="gst-plugins-good-plugins-rtpg722pay.html"/>
+      <sub name="rtpg723depay" link="gst-plugins-good-plugins-rtpg723depay.html"/>
+      <sub name="rtpg723pay" link="gst-plugins-good-plugins-rtpg723pay.html"/>
+      <sub name="rtpg726depay" link="gst-plugins-good-plugins-rtpg726depay.html"/>
+      <sub name="rtpg726pay" link="gst-plugins-good-plugins-rtpg726pay.html"/>
+      <sub name="rtpg729depay" link="gst-plugins-good-plugins-rtpg729depay.html"/>
+      <sub name="rtpg729pay" link="gst-plugins-good-plugins-rtpg729pay.html"/>
+      <sub name="rtpgsmdepay" link="gst-plugins-good-plugins-rtpgsmdepay.html"/>
+      <sub name="rtpgsmpay" link="gst-plugins-good-plugins-rtpgsmpay.html"/>
+      <sub name="rtpgstdepay" link="gst-plugins-good-plugins-rtpgstdepay.html"/>
+      <sub name="rtpgstpay" link="gst-plugins-good-plugins-rtpgstpay.html"/>
+      <sub name="rtph261depay" link="gst-plugins-good-plugins-rtph261depay.html"/>
+      <sub name="rtph261pay" link="gst-plugins-good-plugins-rtph261pay.html"/>
+      <sub name="rtph263depay" link="gst-plugins-good-plugins-rtph263depay.html"/>
+      <sub name="rtph263pay" link="gst-plugins-good-plugins-rtph263pay.html"/>
+      <sub name="rtph263pdepay" link="gst-plugins-good-plugins-rtph263pdepay.html"/>
+      <sub name="rtph263ppay" link="gst-plugins-good-plugins-rtph263ppay.html"/>
+      <sub name="rtph264depay" link="gst-plugins-good-plugins-rtph264depay.html"/>
+      <sub name="rtph264pay" link="gst-plugins-good-plugins-rtph264pay.html"/>
+      <sub name="rtph265depay" link="gst-plugins-good-plugins-rtph265depay.html"/>
+      <sub name="rtph265pay" link="gst-plugins-good-plugins-rtph265pay.html"/>
+      <sub name="rtpilbcdepay" link="gst-plugins-good-plugins-rtpilbcdepay.html"/>
+      <sub name="rtpilbcpay" link="gst-plugins-good-plugins-rtpilbcpay.html"/>
+      <sub name="rtpj2kdepay" link="gst-plugins-good-plugins-rtpj2kdepay.html"/>
       <sub name="rtpj2kpay" link="gst-plugins-good-plugins-rtpj2kpay.html"/>
       <sub name="rtpjitterbuffer" link="gst-plugins-good-plugins-rtpjitterbuffer.html"/>
+      <sub name="rtpjpegdepay" link="gst-plugins-good-plugins-rtpjpegdepay.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="rtpL24depay" link="gst-plugins-good-plugins-rtpL24depay.html"/>
+      <sub name="rtpL24pay" link="gst-plugins-good-plugins-rtpL24pay.html"/>
+      <sub name="rtpmp1sdepay" link="gst-plugins-good-plugins-rtpmp1sdepay.html"/>
+      <sub name="rtpmp2tdepay" link="gst-plugins-good-plugins-rtpmp2tdepay.html"/>
+      <sub name="rtpmp2tpay" link="gst-plugins-good-plugins-rtpmp2tpay.html"/>
+      <sub name="rtpmp4adepay" link="gst-plugins-good-plugins-rtpmp4adepay.html"/>
+      <sub name="rtpmp4apay" link="gst-plugins-good-plugins-rtpmp4apay.html"/>
+      <sub name="rtpmp4gdepay" link="gst-plugins-good-plugins-rtpmp4gdepay.html"/>
+      <sub name="rtpmp4gpay" link="gst-plugins-good-plugins-rtpmp4gpay.html"/>
+      <sub name="rtpmp4vdepay" link="gst-plugins-good-plugins-rtpmp4vdepay.html"/>
+      <sub name="rtpmp4vpay" link="gst-plugins-good-plugins-rtpmp4vpay.html"/>
+      <sub name="rtpmpadepay" link="gst-plugins-good-plugins-rtpmpadepay.html"/>
+      <sub name="rtpmpapay" link="gst-plugins-good-plugins-rtpmpapay.html"/>
+      <sub name="rtpmparobustdepay" link="gst-plugins-good-plugins-rtpmparobustdepay.html"/>
+      <sub name="rtpmpvdepay" link="gst-plugins-good-plugins-rtpmpvdepay.html"/>
+      <sub name="rtpmpvpay" link="gst-plugins-good-plugins-rtpmpvpay.html"/>
       <sub name="rtpmux" link="gst-plugins-good-plugins-rtpmux.html"/>
-      <sub name="rtpopuspay" link="gst-plugins-good-plugins-rtpopuspay.html"/>
       <sub name="rtpopusdepay" link="gst-plugins-good-plugins-rtpopusdepay.html"/>
+      <sub name="rtpopuspay" link="gst-plugins-good-plugins-rtpopuspay.html"/>
+      <sub name="rtppcmadepay" link="gst-plugins-good-plugins-rtppcmadepay.html"/>
+      <sub name="rtppcmapay" link="gst-plugins-good-plugins-rtppcmapay.html"/>
+      <sub name="rtppcmudepay" link="gst-plugins-good-plugins-rtppcmudepay.html"/>
+      <sub name="rtppcmupay" link="gst-plugins-good-plugins-rtppcmupay.html"/>
       <sub name="rtpptdemux" link="gst-plugins-good-plugins-rtpptdemux.html"/>
+      <sub name="rtpqcelpdepay" link="gst-plugins-good-plugins-rtpqcelpdepay.html"/>
+      <sub name="rtpqdm2depay" link="gst-plugins-good-plugins-rtpqdm2depay.html"/>
+      <sub name="rtprtxqueue" link="gst-plugins-good-plugins-rtprtxqueue.html"/>
       <sub name="rtprtxreceive" link="gst-plugins-good-plugins-rtprtxreceive.html"/>
       <sub name="rtprtxsend" link="gst-plugins-good-plugins-rtprtxsend.html"/>
+      <sub name="rtpsbcdepay" link="gst-plugins-good-plugins-rtpsbcdepay.html"/>
       <sub name="rtpsbcpay" link="gst-plugins-good-plugins-rtpsbcpay.html"/>
       <sub name="rtpsession" link="gst-plugins-good-plugins-rtpsession.html"/>
+      <sub name="rtpsirendepay" link="gst-plugins-good-plugins-rtpsirendepay.html"/>
+      <sub name="rtpsirenpay" link="gst-plugins-good-plugins-rtpsirenpay.html"/>
+      <sub name="rtpspeexdepay" link="gst-plugins-good-plugins-rtpspeexdepay.html"/>
+      <sub name="rtpspeexpay" link="gst-plugins-good-plugins-rtpspeexpay.html"/>
       <sub name="rtpssrcdemux" link="gst-plugins-good-plugins-rtpssrcdemux.html"/>
+      <sub name="rtpstreamdepay" link="gst-plugins-good-plugins-rtpstreamdepay.html"/>
+      <sub name="rtpstreampay" link="gst-plugins-good-plugins-rtpstreampay.html"/>
+      <sub name="rtpsv3vdepay" link="gst-plugins-good-plugins-rtpsv3vdepay.html"/>
+      <sub name="rtptheoradepay" link="gst-plugins-good-plugins-rtptheoradepay.html"/>
+      <sub name="rtptheorapay" link="gst-plugins-good-plugins-rtptheorapay.html"/>
+      <sub name="rtpvorbisdepay" link="gst-plugins-good-plugins-rtpvorbisdepay.html"/>
+      <sub name="rtpvorbispay" link="gst-plugins-good-plugins-rtpvorbispay.html"/>
+      <sub name="rtpvp8depay" link="gst-plugins-good-plugins-rtpvp8depay.html"/>
+      <sub name="rtpvp8pay" link="gst-plugins-good-plugins-rtpvp8pay.html"/>
+      <sub name="rtpvp9depay" link="gst-plugins-good-plugins-rtpvp9depay.html"/>
+      <sub name="rtpvp9pay" link="gst-plugins-good-plugins-rtpvp9pay.html"/>
+      <sub name="rtpvrawdepay" link="gst-plugins-good-plugins-rtpvrawdepay.html"/>
+      <sub name="rtpvrawpay" link="gst-plugins-good-plugins-rtpvrawpay.html"/>
+      <sub name="rtpxqtdepay" link="gst-plugins-good-plugins-rtpxqtdepay.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="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="souphttpclientsink" link="gst-plugins-good-plugins-souphttpclientsink.html"/>
       <sub name="souphttpsrc" link="gst-plugins-good-plugins-souphttpsrc.html"/>
       <sub name="spectrum" link="gst-plugins-good-plugins-spectrum.html"/>
       <sub name="speexdec" link="gst-plugins-good-plugins-speexdec.html"/>
@@ -165,6 +240,7 @@
       <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="testsink" link="gst-plugins-good-plugins-testsink.html"/>
       <sub name="udpsink" link="gst-plugins-good-plugins-udpsink.html"/>
       <sub name="udpsrc" link="gst-plugins-good-plugins-udpsrc.html"/>
       <sub name="v4l2radio" link="gst-plugins-good-plugins-v4l2radio.html"/>
@@ -175,9 +251,12 @@
       <sub name="videobox" link="gst-plugins-good-plugins-videobox.html"/>
       <sub name="videocrop" link="gst-plugins-good-plugins-videocrop.html"/>
       <sub name="videoflip" link="gst-plugins-good-plugins-videoflip.html"/>
+      <sub name="videomedian" link="gst-plugins-good-plugins-videomedian.html"/>
       <sub name="videomixer" link="gst-plugins-good-plugins-videomixer.html"/>
       <sub name="vp8dec" link="gst-plugins-good-plugins-vp8dec.html"/>
       <sub name="vp8enc" link="gst-plugins-good-plugins-vp8enc.html"/>
+      <sub name="vp9dec" link="gst-plugins-good-plugins-vp9dec.html"/>
+      <sub name="vp9enc" link="gst-plugins-good-plugins-vp9enc.html"/>
       <sub name="warptv" link="gst-plugins-good-plugins-warptv.html"/>
       <sub name="waveformsink" link="gst-plugins-good-plugins-waveformsink.html"/>
       <sub name="wavenc" link="gst-plugins-good-plugins-wavenc.html"/>
@@ -262,10 +341,6 @@
       <sub name="ximagesrc" link="gst-plugins-good-plugins-plugin-ximagesrc.html"/>
       <sub name="y4menc" link="gst-plugins-good-plugins-plugin-y4menc.html"/>
     </sub>
-    <sub name="gst-plugins-good Base Classes" link="ch03.html">
-      <sub name="GstIirEqualizer" link="GstIirEqualizer.html"/>
-      <sub name="GstVideoMixerPad" link="gst-plugins-good-plugins-GstVideoMixerPad.html"/>
-    </sub>
   </chapters>
   <functions>
     <keyword type="struct" name="Gst3GPPMux" link="gst-plugins-good-plugins-3gppmux.html#Gst3GPPMux-struct"/>
@@ -321,6 +396,7 @@
     <keyword type="struct" name="struct GstApev2Mux" link="gst-plugins-good-plugins-apev2mux.html#GstApev2Mux-struct"/>
     <keyword type="struct" name="struct GstAspectRatioCrop" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop-struct"/>
     <keyword type="property" name="The “aspect-ratio” property" link="gst-plugins-good-plugins-aspectratiocrop.html#GstAspectRatioCrop--aspect-ratio"/>
+    <keyword type="struct" name="struct GstAsteriskh263" link="gst-plugins-good-plugins-asteriskh263.html#GstAsteriskh263-struct"/>
     <keyword type="struct" name="struct GstAudioAmplify" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify-struct"/>
     <keyword type="property" name="The “amplification” property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--amplification"/>
     <keyword type="property" name="The “clipping-method” property" link="gst-plugins-good-plugins-audioamplify.html#GstAudioAmplify--clipping-method"/>
@@ -363,6 +439,7 @@
     <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="enum" name="enum GstAudioPanoramaMethod" link="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanoramaMethod"/>
     <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"/>
@@ -401,6 +478,7 @@
     <keyword type="property" name="The “caps” property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--caps"/>
     <keyword type="property" name="The “join” property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--join"/>
     <keyword type="property" name="The “replace” property" link="gst-plugins-good-plugins-capssetter.html#GstCapsSetter--replace"/>
+    <keyword type="struct" name="struct GstCpuReport" link="gst-plugins-good-plugins-cpureport.html#GstCpuReport-struct"/>
     <keyword type="struct" name="struct GstCutter" link="gst-plugins-good-plugins-cutter.html#GstCutter-struct"/>
     <keyword type="property" name="The “leaky” property" link="gst-plugins-good-plugins-cutter.html#GstCutter--leaky"/>
     <keyword type="property" name="The “pre-length” property" link="gst-plugins-good-plugins-cutter.html#GstCutter--pre-length"/>
@@ -409,6 +487,10 @@
     <keyword type="property" name="The “threshold-dB” property" link="gst-plugins-good-plugins-cutter.html#GstCutter--threshold-dB"/>
     <keyword type="struct" name="struct GstDcaParse" link="gst-plugins-good-plugins-dcaparse.html#GstDcaParse-struct"/>
     <keyword type="struct" name="struct GstDeinterlace" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct"/>
+    <keyword type="enum" name="enum GstDeinterlaceFields" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFields"/>
+    <keyword type="enum" name="enum GstDeinterlaceLocking" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceLocking"/>
+    <keyword type="enum" name="enum GstDeinterlaceMethods" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceMethods"/>
+    <keyword type="enum" name="enum GstDeinterlaceFieldLayout" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFieldLayout"/>
     <keyword type="property" name="The “fields” property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields"/>
     <keyword type="property" name="The “method” property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method"/>
     <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--mode"/>
@@ -439,6 +521,13 @@
     <keyword type="property" name="The “drop-factor” property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor"/>
     <keyword type="property" name="The “quality” property" link="gst-plugins-good-plugins-dvdec.html#GstDVDec--quality"/>
     <keyword type="struct" name="struct GstDVDemux" link="gst-plugins-good-plugins-dvdemux.html#GstDVDemux-struct"/>
+    <keyword type="struct" name="struct GstDynUDPSink" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink-struct"/>
+    <keyword type="property" name="The “close-socket” property" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--close-socket"/>
+    <keyword type="property" name="The “socket” property" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--socket"/>
+    <keyword type="property" name="The “bind-address” property" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--bind-address"/>
+    <keyword type="property" name="The “bind-port” property" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--bind-port"/>
+    <keyword type="property" name="The “socket-v6” property" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--socket-v6"/>
+    <keyword type="signal" name="The “get-stats” signal" link="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink-get-stats"/>
     <keyword type="struct" name="struct GstEdgeTV" link="gst-plugins-good-plugins-edgetv.html#GstEdgeTV-struct"/>
     <keyword type="struct" name="struct GstIirEqualizer10Bands" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands-struct"/>
     <keyword type="property" name="The “band0” property" link="gst-plugins-good-plugins-equalizer-10bands.html#GstIirEqualizer10Bands--band0"/>
@@ -483,6 +572,18 @@
     <keyword type="struct" name="struct GstFlxDec" link="gst-plugins-good-plugins-flxdec.html#GstFlxDec-struct"/>
     <keyword type="struct" name="struct GstGamma" link="gst-plugins-good-plugins-gamma.html#GstGamma-struct"/>
     <keyword type="property" name="The “gamma” property" link="gst-plugins-good-plugins-gamma.html#GstGamma--gamma"/>
+    <keyword type="struct" name="struct GstGdkPixbufDec" link="gst-plugins-good-plugins-gdkpixbufdec.html#GstGdkPixbufDec-struct"/>
+    <keyword type="struct" name="struct GstGdkPixbufOverlay" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct"/>
+    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location"/>
+    <keyword type="property" name="The “offset-x” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x"/>
+    <keyword type="property" name="The “offset-y” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y"/>
+    <keyword type="property" name="The “overlay-height” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height"/>
+    <keyword type="property" name="The “overlay-width” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width"/>
+    <keyword type="property" name="The “relative-x” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x"/>
+    <keyword type="property" name="The “relative-y” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y"/>
+    <keyword type="property" name="The “alpha” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha"/>
+    <keyword type="property" name="The “pixbuf” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--pixbuf"/>
+    <keyword type="property" name="The “positioning-mode” property" link="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--positioning-mode"/>
     <keyword type="struct" name="struct GstGdkPixbufSink" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink-struct"/>
     <keyword type="property" name="The “last-pixbuf” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf"/>
     <keyword type="property" name="The “post-messages” property" link="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages"/>
@@ -498,6 +599,7 @@
     <keyword type="struct" name="struct GstID3Demux" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux-struct"/>
     <keyword type="property" name="The “prefer-v1” property" link="gst-plugins-good-plugins-id3demux.html#GstID3Demux--prefer-v1"/>
     <keyword type="struct" name="struct GstId3v2Mux" link="gst-plugins-good-plugins-id3v2mux.html#GstId3v2Mux-struct"/>
+    <keyword type="struct" name="struct GstIirEqualizer" link="gst-plugins-good-plugins-iirequalizer.html#GstIirEqualizer-struct"/>
     <keyword type="struct" name="struct GstImageFreeze" link="gst-plugins-good-plugins-imagefreeze.html#GstImageFreeze-struct"/>
     <keyword type="struct" name="struct GstInterleave" link="gst-plugins-good-plugins-interleave.html#GstInterleave-struct"/>
     <keyword type="property" name="The “channel-positions” property" link="gst-plugins-good-plugins-interleave.html#GstInterleave--channel-positions"/>
@@ -549,6 +651,8 @@
     <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="property" name="The “timecodescale” property" link="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--timecodescale"/>
+    <keyword type="struct" name="GstMatroskaParse" link="gst-plugins-good-plugins-matroskaparse.html#GstMatroskaParse-struct"/>
     <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"/>
@@ -629,6 +733,9 @@
     <keyword type="signal" name="The “client-removed” signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-client-removed"/>
     <keyword type="signal" name="The “get-stats” signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-get-stats"/>
     <keyword type="signal" name="The “remove” signal" link="gst-plugins-good-plugins-multiudpsink.html#GstMultiUDPSink-remove"/>
+    <keyword type="struct" name="struct GstNavigationtest" link="gst-plugins-good-plugins-navigationtest.html#GstNavigationtest-struct"/>
+    <keyword type="struct" name="struct GstNavSeek" link="gst-plugins-good-plugins-navseek.html#GstNavSeek-struct"/>
+    <keyword type="property" name="The “seek-offset” property" link="gst-plugins-good-plugins-navseek.html#GstNavSeek--seek-offset"/>
     <keyword type="struct" name="struct GstOpTV" link="gst-plugins-good-plugins-optv.html#GstOpTV-struct"/>
     <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-optv.html#GstOpTV--mode"/>
     <keyword type="property" name="The “speed” property" link="gst-plugins-good-plugins-optv.html#GstOpTV--speed"/>
@@ -681,11 +788,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 GstPushFileSrc" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc-struct"/>
+    <keyword type="property" name="The “applied-rate” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--applied-rate"/>
+    <keyword type="property" name="The “initial-timestamp” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--initial-timestamp"/>
+    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--location"/>
+    <keyword type="property" name="The “rate” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--rate"/>
+    <keyword type="property" name="The “start-time” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--start-time"/>
+    <keyword type="property" name="The “stream-time” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--stream-time"/>
+    <keyword type="property" name="The “time-segment” property" link="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--time-segment"/>
     <keyword type="struct" name="struct GstQTDemux" link="gst-plugins-good-plugins-qtdemux.html#GstQTDemux-struct"/>
-    <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"/>
@@ -737,8 +849,6 @@
     <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"/>
@@ -758,6 +868,8 @@
     <keyword type="property" name="The “max-misorder-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-misorder-time"/>
     <keyword type="property" name="The “max-rtcp-rtp-time-diff” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-rtcp-rtp-time-diff"/>
     <keyword type="property" name="The “rtcp-sync-send-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-send-time"/>
+    <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rfc7273-sync"/>
+    <keyword type="property" name="The “max-streams” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-streams"/>
     <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"/>
@@ -783,63 +895,10 @@
     <keyword type="signal" name="The “on-new-sender-ssrc” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-sender-ssrc"/>
     <keyword type="signal" name="The “on-sender-ssrc-active” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-ssrc-active"/>
     <keyword type="signal" name="The “get-session” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-session"/>
-    <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"/>
-    <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="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 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="property" name="The “max-dropout-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-dropout-time"/>
-    <keyword type="property" name="The “max-misorder-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-misorder-time"/>
-    <keyword type="property" name="The “max-rtcp-rtp-time-diff” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-rtcp-rtp-time-diff"/>
-    <keyword type="property" name="The “rtcp-sync-send-time” property" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-send-time"/>
-    <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="signal" name="The “on-new-sender-ssrc” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-new-sender-ssrc"/>
-    <keyword type="signal" name="The “on-sender-ssrc-active” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-on-sender-ssrc-active"/>
-    <keyword type="signal" name="The “get-session” signal" link="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-get-session"/>
+    <keyword type="struct" name="struct GstRTPBVDepay" link="gst-plugins-good-plugins-rtpbvdepay.html#GstRTPBVDepay-struct"/>
+    <keyword type="struct" name="struct GstRTPBVPay" link="gst-plugins-good-plugins-rtpbvpay.html#GstRTPBVPay-struct"/>
+    <keyword type="struct" name="struct GstRtpCELTDepay" link="gst-plugins-good-plugins-rtpceltdepay.html#GstRtpCELTDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpCELTPay" link="gst-plugins-good-plugins-rtpceltpay.html#GstRtpCELTPay-struct"/>
     <keyword type="struct" name="struct GstRTPDec" link="gst-plugins-good-plugins-rtpdec.html#GstRTPDec-struct"/>
     <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"/>
@@ -863,6 +922,44 @@
     <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 GstRTPDVDepay" link="gst-plugins-good-plugins-rtpdvdepay.html#GstRTPDVDepay-struct"/>
+    <keyword type="struct" name="struct GstRTPDVPay" link="gst-plugins-good-plugins-rtpdvpay.html#GstRTPDVPay-struct"/>
+    <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-rtpdvpay.html#GstRTPDVPay--mode"/>
+    <keyword type="struct" name="struct GstRtpG722Depay" link="gst-plugins-good-plugins-rtpg722depay.html#GstRtpG722Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpG722Pay" link="gst-plugins-good-plugins-rtpg722pay.html#GstRtpG722Pay-struct"/>
+    <keyword type="struct" name="struct GstRtpG723Depay" link="gst-plugins-good-plugins-rtpg723depay.html#GstRtpG723Depay-struct"/>
+    <keyword type="struct" name="struct GstRTPG723Pay" link="gst-plugins-good-plugins-rtpg723pay.html#GstRTPG723Pay-struct"/>
+    <keyword type="struct" name="struct GstRtpG726Depay" link="gst-plugins-good-plugins-rtpg726depay.html#GstRtpG726Depay-struct"/>
+    <keyword type="property" name="The “force-aal2” property" link="gst-plugins-good-plugins-rtpg726depay.html#GstRtpG726Depay--force-aal2"/>
+    <keyword type="struct" name="struct GstRtpG726Pay" link="gst-plugins-good-plugins-rtpg726pay.html#GstRtpG726Pay-struct"/>
+    <keyword type="property" name="The “force-aal2” property" link="gst-plugins-good-plugins-rtpg726pay.html#GstRtpG726Pay--force-aal2"/>
+    <keyword type="struct" name="struct GstRtpG729Depay" link="gst-plugins-good-plugins-rtpg729depay.html#GstRtpG729Depay-struct"/>
+    <keyword type="struct" name="struct GstRTPG729Pay" link="gst-plugins-good-plugins-rtpg729pay.html#GstRTPG729Pay-struct"/>
+    <keyword type="struct" name="struct GstRTPGSMDepay" link="gst-plugins-good-plugins-rtpgsmdepay.html#GstRTPGSMDepay-struct"/>
+    <keyword type="struct" name="struct GstRTPGSMPay" link="gst-plugins-good-plugins-rtpgsmpay.html#GstRTPGSMPay-struct"/>
+    <keyword type="struct" name="struct GstRtpGSTDepay" link="gst-plugins-good-plugins-rtpgstdepay.html#GstRtpGSTDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpGSTPay" link="gst-plugins-good-plugins-rtpgstpay.html#GstRtpGSTPay-struct"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtpgstpay.html#GstRtpGSTPay--config-interval"/>
+    <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 GstRtpH263Depay" link="gst-plugins-good-plugins-rtph263depay.html#GstRtpH263Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpH263Pay" link="gst-plugins-good-plugins-rtph263pay.html#GstRtpH263Pay-struct"/>
+    <keyword type="property" name="The “modea-only” property" link="gst-plugins-good-plugins-rtph263pay.html#GstRtpH263Pay--modea-only"/>
+    <keyword type="struct" name="struct GstRtpH263PDepay" link="gst-plugins-good-plugins-rtph263pdepay.html#GstRtpH263PDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpH263PPay" link="gst-plugins-good-plugins-rtph263ppay.html#GstRtpH263PPay-struct"/>
+    <keyword type="property" name="The “fragmentation-mode” property" link="gst-plugins-good-plugins-rtph263ppay.html#GstRtpH263PPay--fragmentation-mode"/>
+    <keyword type="struct" name="struct GstRtpH264Depay" link="gst-plugins-good-plugins-rtph264depay.html#GstRtpH264Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpH264Pay" link="gst-plugins-good-plugins-rtph264pay.html#GstRtpH264Pay-struct"/>
+    <keyword type="property" name="The “sprop-parameter-sets” property" link="gst-plugins-good-plugins-rtph264pay.html#GstRtpH264Pay--sprop-parameter-sets"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtph264pay.html#GstRtpH264Pay--config-interval"/>
+    <keyword type="struct" name="struct GstRtpH265Depay" link="gst-plugins-good-plugins-rtph265depay.html#GstRtpH265Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpH265Pay" link="gst-plugins-good-plugins-rtph265pay.html#GstRtpH265Pay-struct"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtph265pay.html#GstRtpH265Pay--config-interval"/>
+    <keyword type="property" name="The “sprop-parameter-sets” property" link="gst-plugins-good-plugins-rtph265pay.html#GstRtpH265Pay--sprop-parameter-sets"/>
+    <keyword type="struct" name="struct GstRTPiLBCDepay" link="gst-plugins-good-plugins-rtpilbcdepay.html#GstRTPiLBCDepay-struct"/>
+    <keyword type="property" name="The “mode” property" link="gst-plugins-good-plugins-rtpilbcdepay.html#GstRTPiLBCDepay--mode"/>
+    <keyword type="struct" name="struct GstRTPILBCPay" link="gst-plugins-good-plugins-rtpilbcpay.html#GstRTPILBCPay-struct"/>
+    <keyword type="struct" name="struct GstRtpJ2KDepay" link="gst-plugins-good-plugins-rtpj2kdepay.html#GstRtpJ2KDepay-struct"/>
     <keyword type="struct" name="struct GstRtpJ2KPay" link="gst-plugins-good-plugins-rtpj2kpay.html#GstRtpJ2KPay-struct"/>
     <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"/>
@@ -884,11 +981,15 @@
     <keyword type="property" name="The “max-dropout-time” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-dropout-time"/>
     <keyword type="property" name="The “max-misorder-time” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-misorder-time"/>
     <keyword type="property" name="The “max-rtcp-rtp-time-diff” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-rtcp-rtp-time-diff"/>
+    <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rfc7273-sync"/>
+    <keyword type="property" name="The “rtx-deadline” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-deadline"/>
+    <keyword type="property" name="The “rtx-stats-timeout” property" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-stats-timeout"/>
     <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-clear-pt-map"/>
     <keyword type="signal" name="The “handle-sync” signal" link="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer-handle-sync"/>
     <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 GstRtpJPEGDepay" link="gst-plugins-good-plugins-rtpjpegdepay.html#GstRtpJPEGDepay-struct"/>
     <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"/>
@@ -896,18 +997,45 @@
     <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 GstRtpL24Depay" link="gst-plugins-good-plugins-rtpL24depay.html#GstRtpL24Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpL24Pay" link="gst-plugins-good-plugins-rtpL24pay.html#GstRtpL24Pay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP1SDepay" link="gst-plugins-good-plugins-rtpmp1sdepay.html#GstRtpMP1SDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP2TDepay" link="gst-plugins-good-plugins-rtpmp2tdepay.html#GstRtpMP2TDepay-struct"/>
+    <keyword type="property" name="The “skip-first-bytes” property" link="gst-plugins-good-plugins-rtpmp2tdepay.html#GstRtpMP2TDepay--skip-first-bytes"/>
+    <keyword type="struct" name="struct GstRTPMP2TPay" link="gst-plugins-good-plugins-rtpmp2tpay.html#GstRTPMP2TPay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4ADepay" link="gst-plugins-good-plugins-rtpmp4adepay.html#GstRtpMP4ADepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4APay" link="gst-plugins-good-plugins-rtpmp4apay.html#GstRtpMP4APay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4GDepay" link="gst-plugins-good-plugins-rtpmp4gdepay.html#GstRtpMP4GDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4GPay" link="gst-plugins-good-plugins-rtpmp4gpay.html#GstRtpMP4GPay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4VDepay" link="gst-plugins-good-plugins-rtpmp4vdepay.html#GstRtpMP4VDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMP4VPay" link="gst-plugins-good-plugins-rtpmp4vpay.html#GstRtpMP4VPay-struct"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtpmp4vpay.html#GstRtpMP4VPay--config-interval"/>
+    <keyword type="struct" name="struct GstRtpMPADepay" link="gst-plugins-good-plugins-rtpmpadepay.html#GstRtpMPADepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMPAPay" link="gst-plugins-good-plugins-rtpmpapay.html#GstRtpMPAPay-struct"/>
+    <keyword type="struct" name="struct GstRtpMPARobustDepay" link="gst-plugins-good-plugins-rtpmparobustdepay.html#GstRtpMPARobustDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpMPVDepay" link="gst-plugins-good-plugins-rtpmpvdepay.html#GstRtpMPVDepay-struct"/>
+    <keyword type="struct" name="struct GstRTPMPVPay" link="gst-plugins-good-plugins-rtpmpvpay.html#GstRTPMPVPay-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"/>
     <keyword type="property" name="The “ssrc” property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--ssrc"/>
     <keyword type="property" name="The “timestamp-offset” property" link="gst-plugins-good-plugins-rtpmux.html#GstRTPMux--timestamp-offset"/>
-    <keyword type="struct" name="struct GstRtpOPUSPay" link="gst-plugins-good-plugins-rtpopuspay.html#GstRtpOPUSPay-struct"/>
     <keyword type="struct" name="struct GstRTPOpusDepay" link="gst-plugins-good-plugins-rtpopusdepay.html#GstRTPOpusDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpOPUSPay" link="gst-plugins-good-plugins-rtpopuspay.html#GstRtpOPUSPay-struct"/>
+    <keyword type="struct" name="struct GstRtpPcmaDepay" link="gst-plugins-good-plugins-rtppcmadepay.html#GstRtpPcmaDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpPcmaPay" link="gst-plugins-good-plugins-rtppcmapay.html#GstRtpPcmaPay-struct"/>
+    <keyword type="struct" name="struct GstRtpPcmuDepay" link="gst-plugins-good-plugins-rtppcmudepay.html#GstRtpPcmuDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpPcmuPay" link="gst-plugins-good-plugins-rtppcmupay.html#GstRtpPcmuPay-struct"/>
     <keyword type="struct" name="struct GstRtpPtDemux" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-struct"/>
     <keyword type="signal" name="The “clear-pt-map” signal" link="gst-plugins-good-plugins-rtpptdemux.html#GstRtpPtDemux-clear-pt-map"/>
     <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 GstRtpQCELPDepay" link="gst-plugins-good-plugins-rtpqcelpdepay.html#GstRtpQCELPDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpQDM2Depay" link="gst-plugins-good-plugins-rtpqdm2depay.html#GstRtpQDM2Depay-struct"/>
+    <keyword type="struct" name="struct GstRTPRtxQueue" link="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue-struct"/>
+    <keyword type="property" name="The “max-size-packets” property" link="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue--max-size-packets"/>
+    <keyword type="property" name="The “max-size-time” property" link="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue--max-size-time"/>
     <keyword type="struct" name="struct GstRtpRtxReceive" link="gst-plugins-good-plugins-rtprtxreceive.html#GstRtpRtxReceive-struct"/>
     <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"/>
@@ -920,6 +1048,7 @@
     <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 GstRtpSbcDepay" link="gst-plugins-good-plugins-rtpsbcdepay.html#GstRtpSbcDepay-struct"/>
     <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"/>
@@ -953,10 +1082,33 @@
     <keyword type="signal" name="The “request-pt-map” signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-request-pt-map"/>
     <keyword type="signal" name="The “on-new-sender-ssrc” signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-new-sender-ssrc"/>
     <keyword type="signal" name="The “on-sender-ssrc-active” signal" link="gst-plugins-good-plugins-rtpsession.html#GstRtpSession-on-sender-ssrc-active"/>
+    <keyword type="struct" name="struct GstRTPSirenDepay" link="gst-plugins-good-plugins-rtpsirendepay.html#GstRTPSirenDepay-struct"/>
+    <keyword type="struct" name="struct GstRTPSirenPay" link="gst-plugins-good-plugins-rtpsirenpay.html#GstRTPSirenPay-struct"/>
+    <keyword type="struct" name="struct GstRtpSPEEXDepay" link="gst-plugins-good-plugins-rtpspeexdepay.html#GstRtpSPEEXDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpSPEEXPay" link="gst-plugins-good-plugins-rtpspeexpay.html#GstRtpSPEEXPay-struct"/>
     <keyword type="struct" name="struct GstRtpSsrcDemux" link="gst-plugins-good-plugins-rtpssrcdemux.html#GstRtpSsrcDemux-struct"/>
     <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 GstRtpStreamDepay" link="gst-plugins-good-plugins-rtpstreamdepay.html#GstRtpStreamDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpStreamPay" link="gst-plugins-good-plugins-rtpstreampay.html#GstRtpStreamPay-struct"/>
+    <keyword type="struct" name="struct GstRtpSV3VDepay" link="gst-plugins-good-plugins-rtpsv3vdepay.html#GstRtpSV3VDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpTheoraDepay" link="gst-plugins-good-plugins-rtptheoradepay.html#GstRtpTheoraDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpTheoraPay" link="gst-plugins-good-plugins-rtptheorapay.html#GstRtpTheoraPay-struct"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtptheorapay.html#GstRtpTheoraPay--config-interval"/>
+    <keyword type="struct" name="struct GstRtpVorbisDepay" link="gst-plugins-good-plugins-rtpvorbisdepay.html#GstRtpVorbisDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpVorbisPay" link="gst-plugins-good-plugins-rtpvorbispay.html#GstRtpVorbisPay-struct"/>
+    <keyword type="property" name="The “config-interval” property" link="gst-plugins-good-plugins-rtpvorbispay.html#GstRtpVorbisPay--config-interval"/>
+    <keyword type="struct" name="struct GstRtpVP8Depay" link="gst-plugins-good-plugins-rtpvp8depay.html#GstRtpVP8Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpVP8Pay" link="gst-plugins-good-plugins-rtpvp8pay.html#GstRtpVP8Pay-struct"/>
+    <keyword type="property" name="The “picture-id-mode” property" link="gst-plugins-good-plugins-rtpvp8pay.html#GstRtpVP8Pay--picture-id-mode"/>
+    <keyword type="struct" name="struct GstRtpVP9Depay" link="gst-plugins-good-plugins-rtpvp9depay.html#GstRtpVP9Depay-struct"/>
+    <keyword type="struct" name="struct GstRtpVP9Pay" link="gst-plugins-good-plugins-rtpvp9pay.html#GstRtpVP9Pay-struct"/>
+    <keyword type="property" name="The “picture-id-mode” property" link="gst-plugins-good-plugins-rtpvp9pay.html#GstRtpVP9Pay--picture-id-mode"/>
+    <keyword type="struct" name="struct GstRtpVRawDepay" link="gst-plugins-good-plugins-rtpvrawdepay.html#GstRtpVRawDepay-struct"/>
+    <keyword type="struct" name="struct GstRtpVRawPay" link="gst-plugins-good-plugins-rtpvrawpay.html#GstRtpVRawPay-struct"/>
+    <keyword type="property" name="The “chunks-per-frame” property" link="gst-plugins-good-plugins-rtpvrawpay.html#GstRtpVRawPay--chunks-per-frame"/>
+    <keyword type="struct" name="struct GstRtpXQTDepay" link="gst-plugins-good-plugins-rtpxqtdepay.html#GstRtpXQTDepay-struct"/>
     <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"/>
@@ -993,6 +1145,7 @@
     <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="property" name="The “max-rtcp-rtp-time-diff” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-rtcp-rtp-time-diff"/>
+    <keyword type="property" name="The “rfc7273-sync” property" link="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rfc7273-sync"/>
     <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"/>
@@ -1021,8 +1174,6 @@
     <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="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"/>
@@ -1035,6 +1186,20 @@
     <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 GstSoupHttpClientSink" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink-struct"/>
+    <keyword type="property" name="The “automatic-redirect” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--automatic-redirect"/>
+    <keyword type="property" name="The “cookies” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--cookies"/>
+    <keyword type="property" name="The “location” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--location"/>
+    <keyword type="property" name="The “proxy” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy"/>
+    <keyword type="property" name="The “proxy-id” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy-id"/>
+    <keyword type="property" name="The “proxy-pw” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy-pw"/>
+    <keyword type="property" name="The “session” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--session"/>
+    <keyword type="property" name="The “user-agent” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-agent"/>
+    <keyword type="property" name="The “user-id” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-id"/>
+    <keyword type="property" name="The “user-pw” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-pw"/>
+    <keyword type="property" name="The “http-log-level” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--http-log-level"/>
+    <keyword type="property" name="The “retries” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--retries"/>
+    <keyword type="property" name="The “retry-delay” property" link="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--retry-delay"/>
     <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"/>
@@ -1090,9 +1255,11 @@
     <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="property" name="The “max-files” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-files"/>
+    <keyword type="property" name="The “send-keyframe-requests” property" link="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--send-keyframe-requests"/>
     <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="signal" name="The “format-location” signal" link="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-format-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"/>
@@ -1116,6 +1283,7 @@
     <keyword type="property" name="The “used-socket” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--used-socket"/>
     <keyword type="property" name="The “address” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--address"/>
     <keyword type="property" name="The “loop” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--loop"/>
+    <keyword type="property" name="The “retrieve-sender-address” property" link="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--retrieve-sender-address"/>
     <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"/>
@@ -1165,6 +1333,7 @@
     <keyword type="property" name="The “hue” property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--hue"/>
     <keyword type="property" name="The “saturation” property" link="gst-plugins-good-plugins-videobalance.html#GstVideoBalance--saturation"/>
     <keyword type="struct" name="struct GstVideoBox" link="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct"/>
+    <keyword type="enum" name="enum GstVideoBoxFill" link="gst-plugins-good-plugins-videobox.html#GstVideoBoxFill"/>
     <keyword type="property" name="The “alpha” property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--alpha"/>
     <keyword type="property" name="The “border-alpha” property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--border-alpha"/>
     <keyword type="property" name="The “bottom” property" link="gst-plugins-good-plugins-videobox.html#GstVideoBox--bottom"/>
@@ -1181,6 +1350,13 @@
     <keyword type="struct" name="struct GstVideoFlip" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip-struct"/>
     <keyword type="enum" name="enum GstVideoFlipMethod" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod"/>
     <keyword type="property" name="The “method” property" link="gst-plugins-good-plugins-videoflip.html#GstVideoFlip--method"/>
+    <keyword type="struct" name="struct GstVideoMedian" link="gst-plugins-good-plugins-videomedian.html#GstVideoMedian-struct"/>
+    <keyword type="enum" name="enum GstVideoMedianSize" link="gst-plugins-good-plugins-videomedian.html#GstVideoMedianSize"/>
+    <keyword type="property" name="The “filtersize” property" link="gst-plugins-good-plugins-videomedian.html#GstVideoMedian--filtersize"/>
+    <keyword type="property" name="The “lum-only” property" link="gst-plugins-good-plugins-videomedian.html#GstVideoMedian--lum-only"/>
+    <keyword type="struct" name="struct GstVideoMixer2" link="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2-struct"/>
+    <keyword type="enum" name="enum GstVideoMixer2Background" link="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2Background"/>
+    <keyword type="property" name="The “background” property" link="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2--background"/>
     <keyword type="struct" name="struct GstVP8Dec" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec-struct"/>
     <keyword type="property" name="The “deblocking-level” property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--deblocking-level"/>
     <keyword type="property" name="The “noise-level” property" link="gst-plugins-good-plugins-vp8dec.html#GstVP8Dec--noise-level"/>
@@ -1232,6 +1408,57 @@
     <keyword type="property" name="The “undershoot” property" link="gst-plugins-good-plugins-vp8enc.html#GstVP8Enc--undershoot"/>
     <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 GstVP9Dec" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec-struct"/>
+    <keyword type="property" name="The “deblocking-level” property" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--deblocking-level"/>
+    <keyword type="property" name="The “noise-level” property" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--noise-level"/>
+    <keyword type="property" name="The “post-processing” property" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--post-processing"/>
+    <keyword type="property" name="The “post-processing-flags” property" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--post-processing-flags"/>
+    <keyword type="property" name="The “threads” property" link="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--threads"/>
+    <keyword type="struct" name="struct GstVP9Enc" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc-struct"/>
+    <keyword type="property" name="The “arnr-maxframes” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-maxframes"/>
+    <keyword type="property" name="The “arnr-strength” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-strength"/>
+    <keyword type="property" name="The “arnr-type” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-type"/>
+    <keyword type="property" name="The “auto-alt-ref” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--auto-alt-ref"/>
+    <keyword type="property" name="The “buffer-initial-size” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-initial-size"/>
+    <keyword type="property" name="The “buffer-optimal-size” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-optimal-size"/>
+    <keyword type="property" name="The “buffer-size” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-size"/>
+    <keyword type="property" name="The “cpu-used” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--cpu-used"/>
+    <keyword type="property" name="The “cq-level” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--cq-level"/>
+    <keyword type="property" name="The “deadline” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--deadline"/>
+    <keyword type="property" name="The “dropframe-threshold” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--dropframe-threshold"/>
+    <keyword type="property" name="The “end-usage” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--end-usage"/>
+    <keyword type="property" name="The “error-resilient” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--error-resilient"/>
+    <keyword type="property" name="The “horizontal-scaling-mode” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--horizontal-scaling-mode"/>
+    <keyword type="property" name="The “keyframe-max-dist” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--keyframe-max-dist"/>
+    <keyword type="property" name="The “keyframe-mode” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--keyframe-mode"/>
+    <keyword type="property" name="The “lag-in-frames” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--lag-in-frames"/>
+    <keyword type="property" name="The “max-intra-bitrate” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--max-intra-bitrate"/>
+    <keyword type="property" name="The “max-quantizer” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--max-quantizer"/>
+    <keyword type="property" name="The “min-quantizer” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--min-quantizer"/>
+    <keyword type="property" name="The “multipass-cache-file” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--multipass-cache-file"/>
+    <keyword type="property" name="The “multipass-mode” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--multipass-mode"/>
+    <keyword type="property" name="The “noise-sensitivity” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--noise-sensitivity"/>
+    <keyword type="property" name="The “overshoot” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--overshoot"/>
+    <keyword type="property" name="The “resize-allowed” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-allowed"/>
+    <keyword type="property" name="The “resize-down-threshold” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-down-threshold"/>
+    <keyword type="property" name="The “resize-up-threshold” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-up-threshold"/>
+    <keyword type="property" name="The “sharpness” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--sharpness"/>
+    <keyword type="property" name="The “static-threshold” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--static-threshold"/>
+    <keyword type="property" name="The “target-bitrate” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--target-bitrate"/>
+    <keyword type="property" name="The “temporal-scalability-layer-id” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-layer-id"/>
+    <keyword type="property" name="The “temporal-scalability-number-layers” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-number-layers"/>
+    <keyword type="property" name="The “temporal-scalability-periodicity” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-periodicity"/>
+    <keyword type="property" name="The “temporal-scalability-rate-decimator” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-rate-decimator"/>
+    <keyword type="property" name="The “temporal-scalability-target-bitrate” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-target-bitrate"/>
+    <keyword type="property" name="The “threads” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--threads"/>
+    <keyword type="property" name="The “timebase” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--timebase"/>
+    <keyword type="property" name="The “token-partitions” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--token-partitions"/>
+    <keyword type="property" name="The “tuning” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--tuning"/>
+    <keyword type="property" name="The “twopass-vbr-bias” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-bias"/>
+    <keyword type="property" name="The “twopass-vbr-maxsection” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-maxsection"/>
+    <keyword type="property" name="The “twopass-vbr-minsection” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-minsection"/>
+    <keyword type="property" name="The “undershoot” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--undershoot"/>
+    <keyword type="property" name="The “vertical-scaling-mode” property" link="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--vertical-scaling-mode"/>
     <keyword type="struct" name="struct GstWarpTV" link="gst-plugins-good-plugins-warptv.html#GstWarpTV-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"/>
@@ -1260,33 +1487,46 @@
     <keyword type="property" name="The “xid” property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xid"/>
     <keyword type="property" name="The “xname” property" link="gst-plugins-good-plugins-ximagesrc.html#GstXImageSrc--xname"/>
     <keyword type="struct" name="struct GstY4mEncode" link="gst-plugins-good-plugins-y4menc.html#GstY4mEncode-struct"/>
-    <keyword type="struct" name="struct GstIirEqualizer" link="GstIirEqualizer.html#GstIirEqualizer-struct"/>
     <keyword type="constant" name="ALPHA_METHOD_SET" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-SET:CAPS"/>
     <keyword type="constant" name="ALPHA_METHOD_GREEN" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-GREEN:CAPS"/>
     <keyword type="constant" name="ALPHA_METHOD_BLUE" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-BLUE:CAPS"/>
     <keyword type="constant" name="ALPHA_METHOD_CUSTOM" link="gst-plugins-good-plugins-alpha.html#ALPHA-METHOD-CUSTOM:CAPS"/>
+    <keyword type="constant" name="METHOD_PSYCHOACOUSTIC" link="gst-plugins-good-plugins-audiopanorama.html#METHOD-PSYCHOACOUSTIC:CAPS"/>
+    <keyword type="constant" name="METHOD_SIMPLE" link="gst-plugins-good-plugins-audiopanorama.html#METHOD-SIMPLE:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_ALL" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-ALL:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_TF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-TF:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_BF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-BF:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_FIELDS_AUTO" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-FIELDS-AUTO:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LOCKING_NONE" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LOCKING-NONE:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LOCKING_AUTO" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LOCKING-AUTO:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LOCKING_ACTIVE" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LOCKING-ACTIVE:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LOCKING_PASSIVE" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LOCKING-PASSIVE:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_TOMSMOCOMP" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-TOMSMOCOMP:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_GREEDY_H" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-GREEDY-H:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_GREEDY_L" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-GREEDY-L:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_VFIR" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-VFIR:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LINEAR" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LINEAR:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LINEAR_BLEND" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LINEAR-BLEND:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_SCALER_BOB" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-SCALER-BOB:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_WEAVE" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-WEAVE:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_WEAVE_TFF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-WEAVE-TFF:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_WEAVE_BFF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-WEAVE-BFF:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LAYOUT_AUTO" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LAYOUT-AUTO:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LAYOUT_TFF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LAYOUT-TFF:CAPS"/>
+    <keyword type="constant" name="GST_DEINTERLACE_LAYOUT_BFF" link="gst-plugins-good-plugins-deinterlace.html#GST-DEINTERLACE-LAYOUT-BFF:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_BUFFER" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-BUFFER:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_DISCONT" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-DISCONT:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_KEY_FRAME" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-FRAME:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_KEY_UNIT_EVENT" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-KEY-UNIT-EVENT:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_MAX_SIZE" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-MAX-SIZE:CAPS"/>
     <keyword type="constant" name="GST_MULTI_FILE_SINK_NEXT_MAX_DURATION" link="gst-plugins-good-plugins-multifilesink.html#GST-MULTI-FILE-SINK-NEXT-MAX-DURATION: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="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="VIDEO_BOX_FILL_BLACK" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-BLACK:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_GREEN" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-GREEN:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_BLUE" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-BLUE:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_RED" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-RED:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_YELLOW" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-YELLOW:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_WHITE" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-WHITE:CAPS"/>
+    <keyword type="constant" name="VIDEO_BOX_FILL_LAST" link="gst-plugins-good-plugins-videobox.html#VIDEO-BOX-FILL-LAST: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"/>
@@ -1296,5 +1536,11 @@
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_TRANS" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-TRANS:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_OTHER" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-OTHER:CAPS"/>
     <keyword type="constant" name="GST_VIDEO_FLIP_METHOD_AUTO" link="gst-plugins-good-plugins-videoflip.html#GST-VIDEO-FLIP-METHOD-AUTO:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_MEDIAN_SIZE_5" link="gst-plugins-good-plugins-videomedian.html#GST-VIDEO-MEDIAN-SIZE-5:CAPS"/>
+    <keyword type="constant" name="GST_VIDEO_MEDIAN_SIZE_9" link="gst-plugins-good-plugins-videomedian.html#GST-VIDEO-MEDIAN-SIZE-9:CAPS"/>
+    <keyword type="constant" name="VIDEO_MIXER2_BACKGROUND_CHECKER" link="gst-plugins-good-plugins-videomixer.html#VIDEO-MIXER2-BACKGROUND-CHECKER:CAPS"/>
+    <keyword type="constant" name="VIDEO_MIXER2_BACKGROUND_BLACK" link="gst-plugins-good-plugins-videomixer.html#VIDEO-MIXER2-BACKGROUND-BLACK:CAPS"/>
+    <keyword type="constant" name="VIDEO_MIXER2_BACKGROUND_WHITE" link="gst-plugins-good-plugins-videomixer.html#VIDEO-MIXER2-BACKGROUND-WHITE:CAPS"/>
+    <keyword type="constant" name="VIDEO_MIXER2_BACKGROUND_TRANSPARENT" link="gst-plugins-good-plugins-videomixer.html#VIDEO-MIXER2-BACKGROUND-TRANSPARENT:CAPS"/>
   </functions>
 </book>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
index db47194..bb12f7d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-3gppmux.html
@@ -139,7 +139,7 @@
 <a name="gst-plugins-good-plugins-3gppmux.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 Gst3GPPMux implements
- <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a> and  GstTagXmpWriter.</p>
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>,  GstTagXmpWriter and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-3gppmux.description"></a><h2>Description</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html b/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
deleted file mode 100644
index 8c34943..0000000
--- a/docs/plugins/html/gst-plugins-good-plugins-GstVideoMixerPad.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstVideoMixerPad: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
-<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
-<link rel="prev" href="GstIirEqualizer.html" title="GstIirEqualizer">
-<meta name="generator" content="GTK-Doc V1.25 (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-GstVideoMixerPad.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="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="GstIirEqualizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
-</tr></table>
-<div class="refentry">
-<a name="gst-plugins-good-plugins-GstVideoMixerPad"></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-GstVideoMixerPad.top_of_page"></a>GstVideoMixerPad</span></h2>
-<p>GstVideoMixerPad</p>
-</td>
-<td class="gallery_image" valign="top" align="right"></td>
-</tr></table></div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-GstVideoMixerPad.description"></a><h2>Description</h2>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-GstVideoMixerPad.functions_details"></a><h2>Functions</h2>
-<p></p>
-</div>
-<div class="refsect1">
-<a name="gst-plugins-good-plugins-GstVideoMixerPad.other_details"></a><h2>Types and Values</h2>
-</div>
-</div>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</div>
-</body>
-</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aasink.html b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
index 2428600..bb8ea0a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aasink.html
@@ -126,10 +126,36 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-aasink.description"></a><h2>Description</h2>
+<p>Displays video as b/w ascii art.</p>
+<div class="refsect2">
+<a name="id-1.2.4.7.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> filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>avi <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> aasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline renders a video to ascii art into a separate window.
+<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>test<span class="gtkdoc opt">.</span>avi <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> aasink driver<span class="gtkdoc opt">=</span>curses</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline renders a video to ascii art into the current terminal.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.4.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.4.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,7 +181,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.4.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.4.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -285,6 +311,10 @@
 <p>Default value: 0</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-aasink.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-good-plugins-cacasink.html#GstCACASink"><span class="type">GstCACASink</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
index ddb0c15..e6935c2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-alawenc.html
@@ -16,7 +16,8 @@
 <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-alawenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-alawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-good-plugins-alawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-alawenc.implemented-interfaces" class="shortcut">Implemented Interfaces</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>
@@ -32,7 +33,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstALawDec"></a><a name="GstALawEnc"></a><div class="refsect1">
+<a name="GstALawEnc"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-alawenc.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -56,6 +57,12 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-alawenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstALawEnc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-alawenc.description"></a><h2>Description</h2>
 <p>This element encode alaw audio. Alaw coding is also known as G.711.</p>
 <div class="refsynopsisdiv">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
index a0de67e..adb998a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-apev2mux.html
@@ -64,10 +64,42 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-apev2mux.description"></a><h2>Description</h2>
+<p>This element adds APEv2 tags to the beginning of a stream using the taglib
+library.</p>
+<p>Applications can set the tags to write using the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a> interface.
+Tags sent by upstream elements will be picked up automatically (and merged
+according to the merge mode set via the tag setter interface).</p>
+<div class="refsect2">
+<a name="id-1.2.13.7.4"></a><h3>Example pipelines</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>foo<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lame <span class="gtkdoc opt">!</span> apev2mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A pipeline that transcodes a file from Ogg/Vorbis to mp3 format with an
+APEv2 that contains the same as the the Ogg/Vorbis file. Make sure the
+Ogg/Vorbis file actually has comments to preserve.
+<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>m filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> apedemux <span class="gtkdoc opt">!</span> fakesink silent<span class="gtkdoc opt">=</span>TRUE <span class="number">2</span><span class="gtkdoc opt">&gt; /</span>dev<span class="gtkdoc opt">/</span>null <span class="gtkdoc opt">|</span> grep taglist</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Verify that tags have been written.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.13.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.13.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.13.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.13.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,6 +188,10 @@
 <pre class="programlisting">struct GstApev2Mux;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-apev2mux.see-also"></a><h2>See Also</h2>
+<p><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
index f6e9668..5bf73fb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-aspectratiocrop.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-apev2mux.html" title="apev2mux">
-<link rel="next" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
+<link rel="next" href="gst-plugins-good-plugins-asteriskh263.html" title="asteriskh263">
 <meta name="generator" content="GTK-Doc V1.25 (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-apev2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-audioamplify.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-asteriskh263.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-aspectratiocrop"></a><div class="titlepage"></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html b/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html
new file mode 100644
index 0000000..c39c2fa
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-asteriskh263.html
@@ -0,0 +1,155 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>asteriskh263: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-aspectratiocrop.html" title="aspectratiocrop">
+<link rel="next" href="gst-plugins-good-plugins-audioamplify.html" title="audioamplify">
+<meta name="generator" content="GTK-Doc V1.25 (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-asteriskh263.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-asteriskh263.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-aspectratiocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-audioamplify.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-asteriskh263"></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-asteriskh263.top_of_page"></a>asteriskh263</span></h2>
+<p>asteriskh263</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstAsteriskh263"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-asteriskh263.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-asteriskh263.html#GstAsteriskh263-struct" title="struct GstAsteriskh263">GstAsteriskh263</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-asteriskh263.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstAsteriskh263
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-asteriskh263.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.15.6.2.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>Neil Stratford &lt;neils@vipadia.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.15.6.2.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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H263-1998</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-asteriskh263</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-asteriskh263.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-asteriskh263.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstAsteriskh263-struct"></a><h3>struct GstAsteriskh263</h3>
+<pre class="programlisting">struct GstAsteriskh263;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
index f1a4585..8fd2812 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioamplify.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-aspectratiocrop.html" title="aspectratiocrop">
+<link rel="prev" href="gst-plugins-good-plugins-asteriskh263.html" title="asteriskh263">
 <link rel="next" href="gst-plugins-good-plugins-audiochebband.html" title="audiochebband">
 <meta name="generator" content="GTK-Doc V1.25 (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-aspectratiocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-asteriskh263.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-audiochebband.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -84,7 +84,7 @@
 <p>Amplifies an audio stream by a given factor and allows the selection of different clipping modes.
 The difference between the clipping modes is best evaluated by testing.</p>
 <div class="refsect2">
-<a name="id-1.2.15.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.16.7.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.15.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.16.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.15.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.16.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-audiochebband.html b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
index a6421e2..6a49a95 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiochebband.html
@@ -118,7 +118,7 @@
 a cutoff frequency at a quarter of the sampling rate.
 </div>
 <div class="refsect2">
-<a name="id-1.2.16.7.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.17.7.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -138,7 +138,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.16.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.17.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +164,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.16.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.17.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-audiocheblimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
index 3bf6845..ebb201f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiocheblimit.html
@@ -113,7 +113,7 @@
 a cutoff frequency at a quarter of the sampling rate.
 </p></div>
 <div class="refsect2">
-<a name="id-1.2.17.7.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.18.7.8"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -133,7 +133,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.17.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.18.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,7 +159,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.17.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.18.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-audiodynamic.html b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
index 4d00ca1..a023308 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiodynamic.html
@@ -96,7 +96,7 @@
 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.18.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.19.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.18.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.19.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.18.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.19.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 bdfab5f..bfd722b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioecho.html
@@ -100,7 +100,7 @@
 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.19.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.20.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.19.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.20.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.19.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.20.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 12f4b6c..0395474 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiofirfilter.html
@@ -112,7 +112,7 @@
 "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.20.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>
@@ -456,7 +456,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.20.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">
@@ -482,7 +482,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.20.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">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
index f5bbc55..9273174 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioiirfilter.html
@@ -109,7 +109,7 @@
 "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.21.8.5"></a><h3>Example application</h3>
+<a name="id-1.2.22.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.21.8.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.22.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.21.8.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.22.8.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-audioinvert.html b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
index e192cef..ae33c4d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audioinvert.html
@@ -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.22.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>
@@ -98,7 +98,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.22.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">
@@ -124,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.22.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-audiokaraoke.html b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
index 5d3db85..ff3aded 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiokaraoke.html
@@ -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.23.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>
@@ -110,7 +110,7 @@
 <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.24.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.23.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-audiopanorama.html b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
index 87bd2fa..8aa3461 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiopanorama.html
@@ -48,7 +48,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstAudioPanoramaMethod</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanoramaMethod" title="enum GstAudioPanoramaMethod"><span class="type">GstAudioPanoramaMethod</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama--method" title="The “method” property">method</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -62,10 +62,16 @@
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanorama-struct" title="struct GstAudioPanorama">GstAudioPanorama</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanoramaMethod" title="enum GstAudioPanoramaMethod">GstAudioPanoramaMethod</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -83,7 +89,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.24.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.25.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -105,7 +111,7 @@
 <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.25.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -131,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.24.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.25.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -193,6 +199,32 @@
 <a name="GstAudioPanorama-struct"></a><h3>struct GstAudioPanorama</h3>
 <pre class="programlisting">struct GstAudioPanorama;</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstAudioPanoramaMethod"></a><h3>enum GstAudioPanoramaMethod</h3>
+<div class="refsect3">
+<a name="GstAudioPanoramaMethod.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="METHOD-PSYCHOACOUSTIC:CAPS"></a>METHOD_PSYCHOACOUSTIC</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="METHOD-SIMPLE:CAPS"></a>METHOD_SIMPLE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-audiopanorama.property-details"></a><h2>Property Details</h2>
@@ -207,7 +239,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstAudioPanorama--method"></a><h3>The <code class="literal">“method”</code> property</h3>
-<pre class="programlisting">  “method”                   <span class="type">GstAudioPanoramaMethod</span></pre>
+<pre class="programlisting">  “method”                   <a class="link" href="gst-plugins-good-plugins-audiopanorama.html#GstAudioPanoramaMethod" title="enum GstAudioPanoramaMethod"><span class="type">GstAudioPanoramaMethod</span></a></pre>
 <p>Panning method: psychoacoustic mode keeps the same perceived loudness,
 while simple mode just controls the volume of one channel. It's merely
 a matter of taste which method should be chosen.</p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
index b3683ff..ff50d1d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsincband.html
@@ -105,7 +105,7 @@
 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.25.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.25.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.25.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-audiowsinclimit.html b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
index ba05f73..6e695a1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-audiowsinclimit.html
@@ -100,7 +100,7 @@
 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.26.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.27.7.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -120,7 +120,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.26.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.27.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +146,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.26.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.27.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 34f9bc4..e441d98 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-auparse.html
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.27.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.28.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.27.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.28.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-autoaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
index ec847fa..9424136 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosink.html
@@ -93,7 +93,7 @@
 that have <span class="quote">“<span class="quote">Sink</span>”</span> and <span class="quote">“<span class="quote">Audio</span>”</span> in the class field
 of their element information, and also have a non-zero autoplugging rank.</p>
 <div class="refsect2">
-<a name="id-1.2.28.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.29.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -109,7 +109,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.28.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.29.8.4.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.28.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.29.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-autoaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
index f6e55d3..ae5d92d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autoaudiosrc.html
@@ -70,7 +70,7 @@
 that have <span class="quote">“<span class="quote">Source</span>”</span> and <span class="quote">“<span class="quote">Audio</span>”</span> in the class field
 of their element information, and also have a non-zero autoplugging rank.</p>
 <div class="refsect2">
-<a name="id-1.2.29.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.30.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,7 +86,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.29.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.30.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,7 +112,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.29.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.30.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-autovideosink.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
index 27f9f14..7b3d96d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosink.html
@@ -93,7 +93,7 @@
 that have <span class="quote">“<span class="quote">Sink</span>”</span> and <span class="quote">“<span class="quote">Video</span>”</span> in the class field
 of their element information, and also have a non-zero autoplugging rank.</p>
 <div class="refsect2">
-<a name="id-1.2.30.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.31.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -109,7 +109,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.30.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.31.8.4.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.30.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.31.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-autovideosrc.html b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
index 218ceb9..a10c13c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-autovideosrc.html
@@ -70,7 +70,7 @@
 that have <span class="quote">“<span class="quote">Source</span>”</span> and <span class="quote">“<span class="quote">Video</span>”</span> in the class field
 of their element information, and also have a non-zero autoplugging rank.</p>
 <div class="refsect2">
-<a name="id-1.2.31.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.32.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,7 +86,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.31.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.32.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,7 +112,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.31.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.32.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-avidemux.html b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
index a86a51d..1d3afc7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avidemux.html
@@ -60,7 +60,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.32.6.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.33.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,7 +79,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.32.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.33.6.5.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.32.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.33.6.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -150,27 +150,27 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/ms-gsm, rate=(int)[ 1, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td>audio/ms-gsm</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/mpeg, mpegversion=(int)1, layer=(int)3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int)[ 16000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/mpeg, mpegversion=(int)1, layer=(int)2</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-vorbis, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-vorbis</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-ac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 6 ]</td>
+<td> audio/x-ac3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -178,75 +178,75 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)4, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/mpeg, mpegversion=(int)4</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-alaw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-mulaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-mulaw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wms, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wms, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)microsoft, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-adpcm, layout=(string)microsoft, block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dvi, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-truespeech, rate=(int)8000, channels=(int)[ 1, 2 ]</td>
+<td> audio/x-truespeech</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-vnd.sony.atrac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-vnd.sony.atrac3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-voxware, voxwaretype=(int)117, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-voxware, voxwaretype=(int)117</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dk4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dk4</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dk3, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dk3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dvi, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dvi</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/AMR, rate=(int)8000, channels=(int)1</td>
+<td> audio/AMR</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/AMR-WB, rate=(int)16000, channels=(int)1</td>
+<td> audio/AMR-WB</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avimux.html b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
index 7e369c0..e6436ee 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avimux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avimux.html
@@ -81,7 +81,7 @@
 <a name="gst-plugins-good-plugins-avimux.description"></a><h2>Description</h2>
 <p>Muxes raw or compressed audio and/or video streams into an AVI file.</p>
 <div class="refsect2">
-<a name="id-1.2.33.8.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.34.8.3"></a><h3>Example launch lines</h3>
 <p>(write everything in one line, without the backslash characters)</p>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
@@ -133,7 +133,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.33.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.34.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -159,7 +159,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.33.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.34.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -274,6 +274,10 @@
 <td><p><span class="term"></span></p></td>
 <td> video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/png, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
 </tbody>
 </table></div>
 <div class="variablelist"><table border="0" class="variablelist">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
index 870d6c9..8c9ba39 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-avisubtitle.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-avimux.html" title="avimux">
-<link rel="next" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
+<link rel="next" href="gst-plugins-good-plugins-breakmydata.html" title="breakmydata">
 <meta name="generator" content="GTK-Doc V1.25 (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-avimux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-cacasink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-breakmydata.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-avisubtitle"></a><div class="titlepage"></div>
@@ -57,7 +57,7 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-avisubtitle.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.34.6.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.35.6.2"></a><h3>Example launch line</h3>
 <p>
 Parses the subtitle stream from an avi file.
 </p>
@@ -73,7 +73,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.34.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.35.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -99,7 +99,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.34.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.35.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-breakmydata.html b/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html
new file mode 100644
index 0000000..d121aa6
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-breakmydata.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>breakmydata: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-avisubtitle.html" title="avisubtitle">
+<link rel="next" href="gst-plugins-good-plugins-cacasink.html" title="cacasink">
+<meta name="generator" content="GTK-Doc V1.25 (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-breakmydata.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-avisubtitle.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-cacasink.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-breakmydata"></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-breakmydata.top_of_page"></a>breakmydata</span></h2>
+<p>breakmydata</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-breakmydata.description"></a><h2>Description</h2>
+<p>This element modifies the contents of the buffer it is passed randomly
+according to the parameters set.
+It otherwise acts as an identity.</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.36.3.3.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Benjamin Otte &lt;otte@gnome&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Testing</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.36.3.3.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>ANY</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-breakmydata.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-breakmydata.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
index 220de54..aafba45 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cacasink.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-avisubtitle.html" title="avisubtitle">
+<link rel="prev" href="gst-plugins-good-plugins-breakmydata.html" title="breakmydata">
 <link rel="next" href="gst-plugins-good-plugins-cairooverlay.html" title="cairooverlay">
 <meta name="generator" content="GTK-Doc V1.25 (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-avisubtitle.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-breakmydata.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-cairooverlay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -90,10 +90,37 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-cacasink.description"></a><h2>Description</h2>
+<p>Displays video as color ascii art.</p>
+<div class="refsect2">
+<a name="id-1.2.37.7.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">CACA_GEOMETRY<span class="gtkdoc opt">=</span><span class="number">160</span>x60 CACA_FONT<span class="gtkdoc opt">=</span><span class="number">5</span>x7 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>test<span class="gtkdoc opt">.</span>avi <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> cacasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline renders a video to ascii art into a separate window using a
+small font and specifying the ascii resolution.
+<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">CACA_DRIVER<span class="gtkdoc opt">=</span>ncurses 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>test<span class="gtkdoc opt">.</span>avi <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> cacasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline renders a video to ascii art into the current terminal.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.35.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.37.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -119,7 +146,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.35.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.37.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -194,6 +221,10 @@
 <p>Default value: 80</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-cacasink.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-good-plugins-aasink.html#GstAASink"><span class="type">GstAASink</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
index ac9a501..34bb459 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cairooverlay.html
@@ -81,10 +81,132 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-cairooverlay.description"></a><h2>Description</h2>
+<p>cairooverlay renders an overlay using a application provided render function.</p>
+<p>The full example can be found in tests/examples/cairo/cairo_overlay.c</p>
+<div class="refsect2">
+<a name="id-1.2.38.7.4"></a><h3>Example code</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54</pre></td>
+        <td class="listing_code"><pre class="programlisting"><span class="gtkdoc ppc">#include &lt;gst/gst.h&gt;</span>
+<span class="gtkdoc ppc">#include &lt;gst/video/video.h&gt;</span>
+
+<span class="gtkdoc opt">...</span>
+
+<span class="gtkdoc kwc">typedef</span> <span class="gtkdoc kwb">struct</span> <span class="gtkdoc opt">{</span>
+  gboolean valid<span class="gtkdoc opt">;</span>
+  <span class="gtkdoc kwb">int</span> width<span class="gtkdoc opt">;</span>
+  <span class="gtkdoc kwb">int</span> height<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span> CairoOverlayState<span class="gtkdoc opt">;</span>
+
+<span class="gtkdoc opt">...</span>
+
+<span class="gtkdoc kwb">static void</span>
+<span class="function">prepare_overlay</span> <span class="gtkdoc opt">(</span>GstElement <span class="gtkdoc opt">*</span> overlay<span class="gtkdoc opt">,</span> GstCaps <span class="gtkdoc opt">*</span> caps<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  CairoOverlayState <span class="gtkdoc opt">*</span>state <span class="gtkdoc opt">= (</span>CairoOverlayState <span class="gtkdoc opt">*)</span>user_data<span class="gtkdoc opt">;</span>
+
+  <span class="function">gst_video_format_parse_caps</span> <span class="gtkdoc opt">(</span>caps<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">, &amp;</span>state<span class="gtkdoc opt">-&gt;</span>width<span class="gtkdoc opt">, &amp;</span>state<span class="gtkdoc opt">-&gt;</span>height<span class="gtkdoc opt">);</span>
+  state<span class="gtkdoc opt">-&gt;</span>valid <span class="gtkdoc opt">=</span> TRUE<span class="gtkdoc opt">;</span>
+<span class="gtkdoc opt">}</span>
+
+<span class="gtkdoc kwb">static void</span>
+<span class="function">draw_overlay</span> <span class="gtkdoc opt">(</span>GstElement <span class="gtkdoc opt">*</span> overlay<span class="gtkdoc opt">,</span> cairo_t <span class="gtkdoc opt">*</span> cr<span class="gtkdoc opt">,</span> guint64 timestamp<span class="gtkdoc opt">,</span> 
+  guint64 duration<span class="gtkdoc opt">,</span> gpointer user_data<span class="gtkdoc opt">)</span>
+<span class="gtkdoc opt">{</span>
+  CairoOverlayState <span class="gtkdoc opt">*</span>s <span class="gtkdoc opt">= (</span>CairoOverlayState <span class="gtkdoc opt">*)</span>user_data<span class="gtkdoc opt">;</span>
+  <span class="gtkdoc kwb">double</span> scale<span class="gtkdoc opt">;</span>
+
+  <span class="keyword">if</span> <span class="gtkdoc opt">(!</span>s<span class="gtkdoc opt">-&gt;</span>valid<span class="gtkdoc opt">)</span>
+    <span class="keyword">return</span><span class="gtkdoc opt">;</span>
+
+  scale <span class="gtkdoc opt">=</span> <span class="number">2</span><span class="gtkdoc opt">*(((</span>timestamp<span class="gtkdoc opt">/(</span><span class="gtkdoc kwb">int</span><span class="gtkdoc opt">)</span><span class="number">1</span>e7<span class="gtkdoc opt">) %</span> <span class="number">70</span><span class="gtkdoc opt">)+</span><span class="number">30</span><span class="gtkdoc opt">)/</span><span class="number">100.0</span><span class="gtkdoc opt">;</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Transformations.html#cairo-translate">cairo_translate</a></span><span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> s<span class="gtkdoc opt">-&gt;</span>width<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">, (</span>s<span class="gtkdoc opt">-&gt;</span>height<span class="gtkdoc opt">/</span><span class="number">2</span><span class="gtkdoc opt">)-</span><span class="number">30</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Transformations.html#cairo-scale">cairo_scale</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">,</span> scale<span class="gtkdoc opt">);</span>
+
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Paths.html#cairo-move-to">cairo_move_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">, -</span><span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">60</span> <span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">35</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">); *</span>  
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-Paths.html#cairo-curve-to">cairo_curve_to</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">50</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,-</span><span class="number">30</span><span class="gtkdoc opt">,</span> <span class="number">0</span><span class="gtkdoc opt">,</span><span class="number">0</span> <span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-cairo-t.html#cairo-set-source-rgba">cairo_set_source_rgba</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">,</span> <span class="number">0.9</span><span class="gtkdoc opt">,</span> <span class="number">0.0</span><span class="gtkdoc opt">,</span> <span class="number">0.1</span><span class="gtkdoc opt">,</span> <span class="number">0.7</span><span class="gtkdoc opt">);</span>
+  <span class="function"><a href="/usr/share/gtk-doc/html/cairocairo-cairo-t.html#cairo-fill">cairo_fill</a></span> <span class="gtkdoc opt">(</span>cr<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">}</span>
+
+<span class="gtkdoc opt">...</span>
+
+cairo_overlay <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElementFactory.html#gst-element-factory-make">gst_element_factory_make</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;cairooverlay&quot;</span><span class="gtkdoc opt">,</span> <span class="string">&quot;overlay&quot;</span><span class="gtkdoc opt">);</span>
+
+<span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>cairo_overlay<span class="gtkdoc opt">,</span> <span class="string">&quot;draw&quot;</span><span class="gtkdoc opt">,</span> <span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>draw_overlay<span class="gtkdoc opt">),</span>
+  overlay_state<span class="gtkdoc opt">);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#g-signal-connect">g_signal_connect</a></span> <span class="gtkdoc opt">(</span>cairo_overlay<span class="gtkdoc opt">,</span> <span class="string">&quot;caps-changed&quot;</span><span class="gtkdoc opt">,</span> 
+  <span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-Closures.html#G-CALLBACK:CAPS">G_CALLBACK</a></span> <span class="gtkdoc opt">(</span>prepare_overlay<span class="gtkdoc opt">),</span> overlay_state<span class="gtkdoc opt">);</span>
+<span class="gtkdoc opt">...</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.36.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.38.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -110,7 +232,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.36.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.38.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -178,19 +300,85 @@
 <div class="refsect2">
 <a name="GstCairoOverlay-caps-changed"></a><h3>The <code class="literal">“caps-changed”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay,
-               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>         *arg1,
+user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *overlay,
+               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>         *caps,
                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+<p>This signal is emitted when the caps of the element has changed.</p>
+<div class="refsect3">
+<a name="GstCairoOverlay-caps-changed.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" 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>overlay</p></td>
+<td class="parameter_description"><p>Overlay element emitting the signal.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>The <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a> of the element.</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>
 <hr>
 <div class="refsect2">
 <a name="GstCairoOverlay-draw"></a><h3>The <code class="literal">“draw”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *gstcairooverlay,
-               <span class="type">CairoContext</span>    *arg1,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>          arg2,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>          arg3,
+user_function (<a class="link" href="gst-plugins-good-plugins-cairooverlay.html#GstCairoOverlay"><span class="type">GstCairoOverlay</span></a> *overlay,
+               <span class="type">CairoContext</span>    *cr,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>          timestamp,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>          duration,
                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>         user_data)</pre>
+<p>This signal is emitted when the overlay should be drawn.</p>
+<div class="refsect3">
+<a name="GstCairoOverlay-draw.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" 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>overlay</p></td>
+<td class="parameter_description"><p>Overlay element emitting the signal.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>cr</p></td>
+<td class="parameter_description"><p>Cairo context to draw to.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>timestamp</p></td>
+<td class="parameter_description"><p>Timestamp (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>) of the current buffer.</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>duration</p></td>
+<td class="parameter_description"><p>Duration (see <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstClock.html#GstClockTime"><span class="type">GstClockTime</span></a>) of the current buffer.</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>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html b/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
index deda5c8..6d4734b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-capssetter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-capssetter.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-cairooverlay.html" title="cairooverlay">
-<link rel="next" href="gst-plugins-good-plugins-cutter.html" title="cutter">
+<link rel="next" href="gst-plugins-good-plugins-cpureport.html" title="cpureport">
 <meta name="generator" content="GTK-Doc V1.25 (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-cairooverlay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-cutter.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-cpureport.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-capssetter"></a><div class="titlepage"></div>
@@ -104,7 +104,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.37.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.39.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +130,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.37.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.39.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-cpureport.html b/docs/plugins/html/gst-plugins-good-plugins-cpureport.html
new file mode 100644
index 0000000..1d5f089
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-cpureport.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>cpureport: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-capssetter.html" title="capssetter">
+<link rel="next" href="gst-plugins-good-plugins-cutter.html" title="cutter">
+<meta name="generator" content="GTK-Doc V1.25 (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-cpureport.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-cpureport.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-capssetter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-cutter.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-cpureport"></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-cpureport.top_of_page"></a>cpureport</span></h2>
+<p>cpureport</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstCpuReport"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-cpureport.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-cpureport.html#GstCpuReport-struct" title="struct GstCpuReport">GstCpuReport</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-cpureport.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
+                    <span class="lineart">╰──</span> GstCpuReport
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-cpureport.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.40.6.2.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Zaheer Abbas Merali &lt;zaheerabbas at merali dot org&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Testing</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.40.6.2.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>ANY</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-cpureport.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-cpureport.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstCpuReport-struct"></a><h3>struct GstCpuReport</h3>
+<pre class="programlisting">struct GstCpuReport;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
index 9f341dc..14e9b6c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-cutter.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-capssetter.html" title="capssetter">
+<link rel="prev" href="gst-plugins-good-plugins-cpureport.html" title="cpureport">
 <link rel="next" href="gst-plugins-good-plugins-dcaparse.html" title="dcaparse">
 <meta name="generator" content="GTK-Doc V1.25 (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-capssetter.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-cpureport.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-dcaparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -111,7 +111,7 @@
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.38.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.41.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -127,7 +127,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.38.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.41.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -153,7 +153,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.38.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.41.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-dcaparse.html b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
index 4606ea3..c63a26a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dcaparse.html
@@ -59,7 +59,7 @@
 <a name="gst-plugins-good-plugins-dcaparse.description"></a><h2>Description</h2>
 <p>This is a DCA (DTS Coherent Acoustics) parser.</p>
 <div class="refsect2">
-<a name="id-1.2.39.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.42.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.39.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.42.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.39.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.42.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-deinterlace.html b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
index b32fa0c..d0c1b0c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterlace.html
@@ -44,12 +44,12 @@
 </colgroup>
 <tbody>
 <tr>
-<td class="property_type"><span class="type">GstDeinterlaceFields</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFields" title="enum GstDeinterlaceFields"><span class="type">GstDeinterlaceFields</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--fields" title="The “fields” property">fields</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstDeinterlaceMethods</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceMethods" title="enum GstDeinterlaceMethods"><span class="type">GstDeinterlaceMethods</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--method" title="The “method” property">method</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -59,7 +59,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstDeinterlaceFieldLayout</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFieldLayout" title="enum GstDeinterlaceFieldLayout"><span class="type">GstDeinterlaceFieldLayout</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--tff" title="The “tff” property">tff</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -74,7 +74,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstDeinterlaceLocking</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceLocking" title="enum GstDeinterlaceLocking"><span class="type">GstDeinterlaceLocking</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace--locking" title="The “locking” property">locking</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -88,10 +88,28 @@
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlace-struct" title="struct GstDeinterlace">GstDeinterlace</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFields" title="enum GstDeinterlaceFields">GstDeinterlaceFields</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceLocking" title="enum GstDeinterlaceLocking">GstDeinterlaceLocking</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceMethods" title="enum GstDeinterlaceMethods">GstDeinterlaceMethods</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFieldLayout" title="enum GstDeinterlaceFieldLayout">GstDeinterlaceFieldLayout</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -114,7 +132,7 @@
 <p>deinterlace deinterlaces interlaced video frames to progressive video frames.
 For this different algorithms can be selected which will be described later.</p>
 <div class="refsect2">
-<a name="id-1.2.40.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.43.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -130,7 +148,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.40.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.43.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,7 +174,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.40.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.43.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +199,7 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -209,7 +227,7 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+<td> video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
 </tr>
 </tbody>
 </table></div>
@@ -226,12 +244,181 @@
 <a name="GstDeinterlace-struct"></a><h3>struct GstDeinterlace</h3>
 <pre class="programlisting">struct GstDeinterlace;</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstDeinterlaceFields"></a><h3>enum GstDeinterlaceFields</h3>
+<div class="refsect3">
+<a name="GstDeinterlaceFields.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-ALL:CAPS"></a>GST_DEINTERLACE_ALL</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-TF:CAPS"></a>GST_DEINTERLACE_TF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-BF:CAPS"></a>GST_DEINTERLACE_BF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-FIELDS-AUTO:CAPS"></a>GST_DEINTERLACE_FIELDS_AUTO</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDeinterlaceLocking"></a><h3>enum GstDeinterlaceLocking</h3>
+<div class="refsect3">
+<a name="GstDeinterlaceLocking.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LOCKING-NONE:CAPS"></a>GST_DEINTERLACE_LOCKING_NONE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LOCKING-AUTO:CAPS"></a>GST_DEINTERLACE_LOCKING_AUTO</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LOCKING-ACTIVE:CAPS"></a>GST_DEINTERLACE_LOCKING_ACTIVE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LOCKING-PASSIVE:CAPS"></a>GST_DEINTERLACE_LOCKING_PASSIVE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDeinterlaceMethods"></a><h3>enum GstDeinterlaceMethods</h3>
+<div class="refsect3">
+<a name="GstDeinterlaceMethods.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-TOMSMOCOMP:CAPS"></a>GST_DEINTERLACE_TOMSMOCOMP</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-GREEDY-H:CAPS"></a>GST_DEINTERLACE_GREEDY_H</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-GREEDY-L:CAPS"></a>GST_DEINTERLACE_GREEDY_L</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-VFIR:CAPS"></a>GST_DEINTERLACE_VFIR</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LINEAR:CAPS"></a>GST_DEINTERLACE_LINEAR</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LINEAR-BLEND:CAPS"></a>GST_DEINTERLACE_LINEAR_BLEND</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-SCALER-BOB:CAPS"></a>GST_DEINTERLACE_SCALER_BOB</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-WEAVE:CAPS"></a>GST_DEINTERLACE_WEAVE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-WEAVE-TFF:CAPS"></a>GST_DEINTERLACE_WEAVE_TFF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-WEAVE-BFF:CAPS"></a>GST_DEINTERLACE_WEAVE_BFF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDeinterlaceFieldLayout"></a><h3>enum GstDeinterlaceFieldLayout</h3>
+<div class="refsect3">
+<a name="GstDeinterlaceFieldLayout.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LAYOUT-AUTO:CAPS"></a>GST_DEINTERLACE_LAYOUT_AUTO</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LAYOUT-TFF:CAPS"></a>GST_DEINTERLACE_LAYOUT_TFF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-DEINTERLACE-LAYOUT-BFF:CAPS"></a>GST_DEINTERLACE_LAYOUT_BFF</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-deinterlace.property-details"></a><h2>Property Details</h2>
 <div class="refsect2">
 <a name="GstDeinterlace--fields"></a><h3>The <code class="literal">“fields”</code> property</h3>
-<pre class="programlisting">  “fields”                   <span class="type">GstDeinterlaceFields</span></pre>
+<pre class="programlisting">  “fields”                   <a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFields" title="enum GstDeinterlaceFields"><span class="type">GstDeinterlaceFields</span></a></pre>
 <p>This selects which fields should be output. If "all" is selected
 the output framerate will be double.</p>
 <p>Flags: Read / Write</p>
@@ -240,7 +427,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDeinterlace--method"></a><h3>The <code class="literal">“method”</code> property</h3>
-<pre class="programlisting">  “method”                   <span class="type">GstDeinterlaceMethods</span></pre>
+<pre class="programlisting">  “method”                   <a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceMethods" title="enum GstDeinterlaceMethods"><span class="type">GstDeinterlaceMethods</span></a></pre>
 <p>Selects the different deinterlacing algorithms that can be used.
 These provide different quality and CPU usage.</p>
 <p>Some methods provide parameters which can be set by getting
@@ -305,7 +492,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDeinterlace--tff"></a><h3>The <code class="literal">“tff”</code> property</h3>
-<pre class="programlisting">  “tff”                      <span class="type">GstDeinterlaceFieldLayout</span></pre>
+<pre class="programlisting">  “tff”                      <a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceFieldLayout" title="enum GstDeinterlaceFieldLayout"><span class="type">GstDeinterlaceFieldLayout</span></a></pre>
 <p>Deinterlace top field first.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Auto detection</p>
@@ -331,7 +518,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstDeinterlace--locking"></a><h3>The <code class="literal">“locking”</code> property</h3>
-<pre class="programlisting">  “locking”                  <span class="type">GstDeinterlaceLocking</span></pre>
+<pre class="programlisting">  “locking”                  <a class="link" href="gst-plugins-good-plugins-deinterlace.html#GstDeinterlaceLocking" title="enum GstDeinterlaceLocking"><span class="type">GstDeinterlaceLocking</span></a></pre>
 <p>This selects which approach to pattern locking is used which affects
 processing latency and accuracy of timestamp adjustment for telecine
 streams.</p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
index 09b0d9b..a2bc63c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-deinterleave.html
@@ -80,7 +80,7 @@
 <p>In most cases a queue and an audioconvert element should be added after each source pad
 before further processing of the audio data.</p>
 <div class="refsect2">
-<a name="id-1.2.41.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.44.7.5"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -110,7 +110,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.41.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.44.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -136,7 +136,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.41.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.44.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-dicetv.html b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
index 39186a1..4a0b41b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dicetv.html
@@ -81,7 +81,7 @@
 counterclockwise). The direction of each square normally remains
 consistent between each frame.</p>
 <div class="refsect2">
-<a name="id-1.2.42.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.45.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.42.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.45.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.42.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.45.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-directsoundsink.html b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
index 597ebe6..d71d432 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-directsoundsink.html
@@ -46,10 +46,41 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-directsoundsink.description"></a><h2>Description</h2>
+<p>This element lets you output sound using the DirectSound API.</p>
+<p>Note that you should almost always use generic audio conversion elements
+like audioconvert and audioresample in front of an audiosink to make sure
+your pipeline works under all circumstances (those conversion elements will
+act in passthrough-mode if no conversion is necessary).</p>
+<div class="refsect2">
+<a name="id-1.2.46.4.4"></a><h3>Example pipelines</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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> volume volume<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> directsoundsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will output a sine wave (continuous beep sound) to your sound card (with
+a very low volume as precaution).
+<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>music<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> directsoundsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will play an Ogg/Vorbis audio file and output it.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.43.4.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.46.4.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -75,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.43.4.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.46.4.5.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
index 880ed8e..c228731 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dtmfsrc.html
@@ -157,7 +157,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.44.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.47.7.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -183,7 +183,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.44.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.47.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-dv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
index 741e747..10827c7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dv1394src.html
@@ -135,10 +135,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-dv1394src.description"></a><h2>Description</h2>
+<p>Read DV (digital video) data from firewire port.</p>
+<div class="refsect2">
+<a name="id-1.2.48.9.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> dv1394src <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> dvdemux name<span class="gtkdoc opt">=</span>d <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> dvdec <span class="gtkdoc opt">!</span> xvimagesink d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> alsasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline captures from the firewire port and displays it (might need
+format converters for audio/video).
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.45.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.48.9.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -164,7 +180,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.45.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.48.9.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -268,7 +284,7 @@
 <div class="refsect2">
 <a name="GstDV1394Src--device-name"></a><h3>The <code class="literal">“device-name”</code> property</h3>
 <pre class="programlisting">  “device-name”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>user-friendly name of the device.</p>
+<p>Descriptive name of the currently opened device</p>
 <p>Flags: Read</p>
 <p>Default value: "Default"</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
index d3e09d4..9940327 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdec.html
@@ -89,10 +89,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-dvdec.description"></a><h2>Description</h2>
+<p>dvdec decodes DV video into raw video. The element expects a full DV frame
+as input, which is 120000 bytes for NTSC and 144000 for PAL video.</p>
+<p>This element can perform simple frame dropping with the <a class="link" href="gst-plugins-good-plugins-dvdec.html#GstDVDec--drop-factor" title="The “drop-factor” property"><span class="type">“drop-factor”</span></a>
+property. Setting this property to a value N &gt; 1 will only decode every 
+Nth frame.</p>
+<div class="refsect2">
+<a name="id-1.2.49.7.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> filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>dv <span class="gtkdoc opt">!</span> dvdemux name<span class="gtkdoc opt">=</span>demux <span class="gtkdoc opt">!</span> dvdec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline decodes and renders the raw DV stream to a videosink.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.46.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.49.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -118,7 +137,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.46.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.49.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-dvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
index 001c4fd..88cdc8f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-dvdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-dvdemux.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-dvdec.html" title="dvdec">
-<link rel="next" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
+<link rel="next" href="gst-plugins-good-plugins-dynudpsink.html" title="dynudpsink">
 <meta name="generator" content="GTK-Doc V1.25 (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-dvdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-edgetv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-dynudpsink.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-dvdemux"></a><div class="titlepage"></div>
@@ -56,10 +56,28 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-dvdemux.description"></a><h2>Description</h2>
+<p>dvdemux splits raw DV into its audio and video components. The audio will be
+decoded raw samples and the video will be encoded DV video.</p>
+<p>This element can operate in both push and pull mode depending on the
+capabilities of the upstream peer.</p>
+<div class="refsect2">
+<a name="id-1.2.50.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> filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>dv <span class="gtkdoc opt">!</span> dvdemux name<span class="gtkdoc opt">=</span>demux <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> alsasink demux<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> dvdec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline decodes and renders the raw DV stream to an audio and a videosink.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.47.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.50.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -85,7 +103,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.47.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.50.6.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-dynudpsink.html b/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html
new file mode 100644
index 0000000..10e0d96
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-dynudpsink.html
@@ -0,0 +1,243 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>dynudpsink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-dvdemux.html" title="dvdemux">
+<link rel="next" href="gst-plugins-good-plugins-edgetv.html" title="edgetv">
+<meta name="generator" content="GTK-Doc V1.25 (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-dynudpsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-dynudpsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-dynudpsink.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-dynudpsink.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-dvdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-edgetv.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-dynudpsink"></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-dynudpsink.top_of_page"></a>dynudpsink</span></h2>
+<p>dynudpsink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--close-socket" title="The “close-socket” property">close-socket</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--socket" title="The “socket” property">socket</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--bind-address" title="The “bind-address” property">bind-address</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--bind-port" title="The “bind-port” property">bind-port</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink--socket-v6" title="The “socket-v6” property">socket-v6</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.signals"></a><h2>Signals</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a>*</td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink-get-stats" title="The “get-stats” signal">get-stats</a></td>
+<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstDynUDPSink"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-dynudpsink.html#GstDynUDPSink-struct" title="struct GstDynUDPSink">GstDynUDPSink</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> GstDynUDPSink
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.51.8.2.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-udp.html#plugin-udp">udp</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Philippe Khalaf &lt;burger@speedy.org&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Sink/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.51.8.2.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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstDynUDPSink-struct"></a><h3>struct GstDynUDPSink</h3>
+<pre class="programlisting">struct GstDynUDPSink;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstDynUDPSink--close-socket"></a><h3>The <code class="literal">“close-socket”</code> property</h3>
+<pre class="programlisting">  “close-socket”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Close socket if passed as property on state change.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDynUDPSink--socket"></a><h3>The <code class="literal">“socket”</code> property</h3>
+<pre class="programlisting">  “socket”                   <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *</pre>
+<p>Socket to use for UDP sending. (NULL == allocate).</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDynUDPSink--bind-address"></a><h3>The <code class="literal">“bind-address”</code> property</h3>
+<pre class="programlisting">  “bind-address”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>Address to bind the socket to.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDynUDPSink--bind-port"></a><h3>The <code class="literal">“bind-port”</code> property</h3>
+<pre class="programlisting">  “bind-port”                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Port to bind the socket to.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,65535]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstDynUDPSink--socket-v6"></a><h3>The <code class="literal">“socket-v6”</code> property</h3>
+<pre class="programlisting">  “socket-v6”                <a href="/usr/share/gtk-doc/html/gioGSocket.html#GSocket-struct"><span class="type">GSocket</span></a> *</pre>
+<p>Socket to use for UDPv6 sending. (NULL == allocate).</p>
+<p>Flags: Read / Write</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-dynudpsink.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="GstDynUDPSink-get-stats"></a><h3>The <code class="literal">“get-stats”</code> signal</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="returnvalue">GstStructure</span></a>*
+user_function (<a class="link" href="gst-plugins-good-plugins-dynudpsink.html#GstDynUDPSink"><span class="type">GstDynUDPSink</span></a> *gstdynudpsink,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a>         *arg1,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>           arg2,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
+<p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-ACTION:CAPS">Action</a></p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
index 2d70f0d..86addcb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-edgetv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-dvdemux.html" title="dvdemux">
+<link rel="prev" href="gst-plugins-good-plugins-dynudpsink.html" title="dynudpsink">
 <link rel="next" href="gst-plugins-good-plugins-equalizer-10bands.html" title="equalizer-10bands">
 <meta name="generator" content="GTK-Doc V1.25 (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-dvdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-dynudpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-equalizer-10bands.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -61,7 +61,7 @@
 <p>EdgeTV detects edges and display it in good old low resolution
 computer way.</p>
 <div class="refsect2">
-<a name="id-1.2.48.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.52.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.48.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.52.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.48.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.52.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-equalizer-10bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
index 41d3f3a..e8b4d2c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-10bands.html
@@ -117,7 +117,7 @@
             <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
                 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
                     <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct">GstAudioFilter</a>
-                        <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a>
+                        <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-iirequalizer.html#GstIirEqualizer">GstIirEqualizer</a>
                             <span class="lineart">╰──</span> GstIirEqualizer10Bands
 </pre>
 </div>
@@ -132,7 +132,7 @@
 <p>The 10 band equalizer element allows to change the gain of 10 equally distributed
 frequency bands between 30 Hz and 15 kHz.</p>
 <div class="refsect2">
-<a name="id-1.2.49.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.53.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -148,7 +148,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.49.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.53.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -174,7 +174,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.49.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.53.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-equalizer-3bands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
index 5411f68..f3533c4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-3bands.html
@@ -82,7 +82,7 @@
             <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
                 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
                     <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct">GstAudioFilter</a>
-                        <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a>
+                        <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-iirequalizer.html#GstIirEqualizer">GstIirEqualizer</a>
                             <span class="lineart">╰──</span> GstIirEqualizer3Bands
 </pre>
 </div>
@@ -97,7 +97,7 @@
 <p>The 3-band equalizer element allows to change the gain of a low frequency,
 medium frequency and high frequency band.</p>
 <div class="refsect2">
-<a name="id-1.2.50.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.54.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -113,7 +113,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.50.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.54.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -139,7 +139,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.50.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.54.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-equalizer-nbands.html b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
index 7836af3..4fbb88a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-equalizer-nbands.html
@@ -70,7 +70,7 @@
             <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
                 <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
                     <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct">GstAudioFilter</a>
-                        <span class="lineart">╰──</span> <a class="link" href="GstIirEqualizer.html" title="GstIirEqualizer">GstIirEqualizer</a>
+                        <span class="lineart">╰──</span> <a class="link" href="gst-plugins-good-plugins-iirequalizer.html#GstIirEqualizer">GstIirEqualizer</a>
                             <span class="lineart">╰──</span> GstIirEqualizerNBands
 </pre>
 </div>
@@ -86,7 +86,7 @@
 select between 1 and 64 bands and has properties on each band to change
 the center frequency, band width and gain.</p>
 <div class="refsect2">
-<a name="id-1.2.51.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.55.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.51.8.4"></a><h3>Example code</h3>
+<a name="id-1.2.55.8.4"></a><h3>Example code</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -191,7 +191,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.51.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.55.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -217,7 +217,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.51.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.55.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-flacdec.html b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
index 17d7281..709420b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacdec.html
@@ -57,10 +57,37 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-flacdec.description"></a><h2>Description</h2>
+<p>flacdec decodes FLAC streams.</p>
+<a class="ulink" href="http://flac.sourceforge.net/" target="_top">FLAC</a><p>is a Free Lossless Audio Codec.</p>
+<div class="refsect2">
+<a name="id-1.2.57.6.5"></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> filesrc location<span class="gtkdoc opt">=</span>media<span class="gtkdoc opt">/</span>small<span class="gtkdoc opt">/</span>dark<span class="number">.441</span><span class="gtkdoc opt">-</span><span class="number">16</span><span class="gtkdoc opt">-</span>s<span class="gtkdoc opt">.</span>flac <span class="gtkdoc opt">!</span> flacparse <span class="gtkdoc opt">!</span> flacdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<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> souphttpsrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//gstreamer.freedesktop.org/media/small/dark.441-16-s.flac ! flacparse ! flacdec ! audioconvert ! audioresample ! queue min-threshold-buffers=10 ! autoaudiosink</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.53.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.57.6.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +113,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.53.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.57.6.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -149,6 +176,10 @@
 <pre class="programlisting">struct GstFlacDec;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-flacdec.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-good-plugins-flacenc.html#GstFlacEnc"><span class="type">GstFlacEnc</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
index e6c5973..a7285b0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flacenc.html
@@ -152,10 +152,49 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-flacenc.description"></a><h2>Description</h2>
+<p>flacenc encodes FLAC streams.</p>
+<a class="ulink" href="http://flac.sourceforge.net/" target="_top">FLAC</a><p>is a Free Lossless Audio Codec. FLAC audio can directly be written into
+a file, or embedded into containers such as oggmux or matroskamux.</p>
+<div class="refsect2">
+<a name="id-1.2.58.8.5"></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> audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>beep<span class="gtkdoc opt">.</span>flac</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode a short sine wave into FLAC
+<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> cdparanoiasrc mode<span class="gtkdoc opt">=</span>continuous <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>cd<span class="gtkdoc opt">.</span>flac</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Rip a whole audio CD into a single FLAC file, with the track table saved as a CUE sheet inside the FLAC file
+<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> cdparanoiasrc track<span class="gtkdoc opt">=</span><span class="number">5</span> <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> flacenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>track5<span class="gtkdoc opt">.</span>flac</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Rip track 5 of an audio CD and encode it losslessly to a FLAC file
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.54.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.58.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -181,7 +220,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.54.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.58.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -401,6 +440,10 @@
 <p>Default value: -10</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-flacenc.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-good-plugins-flacdec.html#GstFlacDec"><span class="type">GstFlacDec</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flacparse.html b/docs/plugins/html/gst-plugins-good-plugins-flacparse.html
index 2e80fd7..221304f 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 @@
 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.55.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.59.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.55.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.59.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.55.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.59.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 532f837..65cfd02 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flactag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flactag.html
@@ -63,10 +63,33 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-flactag.description"></a><h2>Description</h2>
+<p>The flactag element can change the tag contained within a raw
+FLAC stream. Specifically, it modifies the comments header packet
+of the FLAC stream.</p>
+<p>Applications can set the tags to write using the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a> interface.
+Tags contained withing the FLAC bitstream will be picked up
+automatically (and merged according to the merge mode set via the tag
+setter interface).</p>
+<div class="refsect2">
+<a name="id-1.2.60.7.4"></a><h3>Example pipelines</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>foo<span class="gtkdoc opt">.</span>flac <span class="gtkdoc opt">!</span> flactag <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>bar<span class="gtkdoc opt">.</span>flac</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This element is not useful with gst-launch, because it does not support
+setting the tags on a <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a> interface. Conceptually, the element
+will usually be used in this order though.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.56.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.60.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -92,7 +115,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.56.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.60.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -155,6 +178,10 @@
 <pre class="programlisting">struct GstFlacTag;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-flactag.see-also"></a><h2>See Also</h2>
+<p><span class="type">flacenc</span>, <span class="type">flacdec</span>, <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html b/docs/plugins/html/gst-plugins-good-plugins-flvdemux.html
index 2ae69a8..14c7b05 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.57.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.61.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.57.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.61.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.57.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.61.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 88b39dd..424535f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-flvmux.html
@@ -81,7 +81,7 @@
 <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.58.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.62.8.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.58.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.62.8.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.58.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.62.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 2bbf5ee..9e17845 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.59.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.63.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.59.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.63.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 d4e6cf4..0673015 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gamma.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gamma.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-flxdec.html" title="flxdec">
-<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
+<link rel="next" href="gst-plugins-good-plugins-gdkpixbufdec.html" title="gdkpixbufdec">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-gdkpixbufsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufdec.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-gamma"></a><div class="titlepage"></div>
@@ -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.60.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.64.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.60.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.64.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.60.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.64.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-gdkpixbufdec.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html
new file mode 100644
index 0000000..87a5d10
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufdec.html
@@ -0,0 +1,239 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gdkpixbufdec: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gamma.html" title="gamma">
+<link rel="next" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">
+<meta name="generator" content="GTK-Doc V1.25 (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-gdkpixbufdec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gdkpixbufdec.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-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-gdkpixbufoverlay.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-gdkpixbufdec"></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-gdkpixbufdec.top_of_page"></a>gdkpixbufdec</span></h2>
+<p>gdkpixbufdec</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstGdkPixbufDec"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufdec.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-gdkpixbufdec.html#GstGdkPixbufDec-struct" title="struct GstGdkPixbufDec">GstGdkPixbufDec</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufdec.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstGdkPixbufDec
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufdec.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.65.6.2.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-gdkpixbuf.html#plugin-gdkpixbuf">gdkpixbuf</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>David A. Schleef &lt;ds@schleef.org&gt;, Renato Filho &lt;renato.filho@indt.org.br&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Decoder/Image</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.65.6.2.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>image/png</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/gif</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-icon</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-navi-animation</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-cmu-raster</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-sun-raster</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-pixmap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/tiff</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-portable-anymap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-portable-bitmap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-portable-graymap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-portable-pixmap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/bmp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-bmp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-MS-bmp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/vnd.wap.wbmp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-bitmap</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-tga</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/x-pcx</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/svg</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> image/svg+xml</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-raw, format=(string)RGB, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-raw, format=(string)RGBA, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufdec.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufdec.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstGdkPixbufDec-struct"></a><h3>struct GstGdkPixbufDec</h3>
+<pre class="programlisting">struct GstGdkPixbufDec;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
new file mode 100644
index 0000000..44f9a4e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufoverlay.html
@@ -0,0 +1,341 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>gdkpixbufoverlay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gdkpixbufdec.html" title="gdkpixbufdec">
+<link rel="next" href="gst-plugins-good-plugins-gdkpixbufsink.html" title="gdkpixbufsink">
+<meta name="generator" content="GTK-Doc V1.25 (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-gdkpixbufoverlay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-gdkpixbufoverlay.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-gdkpixbufdec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-gdkpixbufsink.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-gdkpixbufoverlay"></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-gdkpixbufoverlay.top_of_page"></a>gdkpixbufoverlay</span></h2>
+<p>gdkpixbufoverlay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--location" title="The “location” property">location</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-x" title="The “offset-x” property">offset-x</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--offset-y" title="The “offset-y” property">offset-y</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-height" title="The “overlay-height” property">overlay-height</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--overlay-width" title="The “overlay-width” property">overlay-width</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-x" title="The “relative-x” property">relative-x</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--relative-y" title="The “relative-y” property">relative-y</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--alpha" title="The “alpha” property">alpha</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--pixbuf" title="The “pixbuf” property">pixbuf</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstGdkPixbufPositioningMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html#GstGdkPixbufOverlay--positioning-mode" title="The “positioning-mode” property">positioning-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstGdkPixbufOverlay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-gdkpixbufoverlay.html#GstGdkPixbufOverlay-struct" title="struct GstGdkPixbufOverlay">GstGdkPixbufOverlay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct">GstVideoFilter</a>
+                        <span class="lineart">╰──</span> GstGdkPixbufOverlay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.description"></a><h2>Description</h2>
+<p>The gdkpixbufoverlay element overlays an image loaded from file onto
+a video stream.</p>
+<p>Changing the positioning or overlay width and height properties at runtime
+is supported, but it might be prudent to to protect the property setting
+code with GST_BASE_TRANSFORM_LOCK and GST_BASE_TRANSFORM_UNLOCK, as
+<a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#g-object-set"><code class="function">g_object_set()</code></a> is not atomic for multiple properties passed in one go.</p>
+<p>Changing the image at runtime is currently not supported.</p>
+<p>Negative offsets are also not yet supported.</p>
+<div class="refsect2">
+<a name="id-1.2.66.7.6"></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 videotestsrc <span class="gtkdoc opt">!</span> gdkpixbufoverlay location<span class="gtkdoc opt">=</span>image<span class="gtkdoc opt">.</span>png <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+Overlays the image in image.png onto the test video picture produced by
+videotestsrc.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.66.7.7.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-gdkpixbuf.html#plugin-gdkpixbuf">gdkpixbuf</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Tim-Philipp Müller &lt;tim centricular net&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Filter/Effect/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.66.7.7.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-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</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-raw, format=(string){ RGBx, RGB, BGR, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, YVYU, NV12, NV21, UYVP, RGB16, BGR16, RGB15, BGR15, UYVP, A420, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, GRAY8, GRAY16_BE, GRAY16_LE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay-struct"></a><h3>struct GstGdkPixbufOverlay</h3>
+<pre class="programlisting">struct GstGdkPixbufOverlay;</pre>
+<p>The opaque element instance structure.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-gdkpixbufoverlay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--location"></a><h3>The <code class="literal">“location”</code> property</h3>
+<pre class="programlisting">  “location”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>Location of image file to overlay.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--offset-x"></a><h3>The <code class="literal">“offset-x”</code> property</h3>
+<pre class="programlisting">  “offset-x”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>For positive value, horizontal offset of overlay image in pixels from left of video image. For negative value, horizontal offset of overlay image in pixels from right of video image.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--offset-y"></a><h3>The <code class="literal">“offset-y”</code> property</h3>
+<pre class="programlisting">  “offset-y”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>For positive value, vertical offset of overlay image in pixels from top of video image. For negative value, vertical offset of overlay image in pixels from bottom of video image.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--overlay-height"></a><h3>The <code class="literal">“overlay-height”</code> property</h3>
+<pre class="programlisting">  “overlay-height”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Height of overlay image in pixels (0 = same as overlay image).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--overlay-width"></a><h3>The <code class="literal">“overlay-width”</code> property</h3>
+<pre class="programlisting">  “overlay-width”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Width of overlay image in pixels (0 = same as overlay image).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--relative-x"></a><h3>The <code class="literal">“relative-x”</code> property</h3>
+<pre class="programlisting">  “relative-x”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Horizontal offset of overlay image in fractions of video image width, from top-left corner of video image.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--relative-y"></a><h3>The <code class="literal">“relative-y”</code> property</h3>
+<pre class="programlisting">  “relative-y”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Vertical offset of overlay image in fractions of video image height, from top-left corner of video image.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--alpha"></a><h3>The <code class="literal">“alpha”</code> property</h3>
+<pre class="programlisting">  “alpha”                    <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Global alpha of overlay image.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,1]</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--pixbuf"></a><h3>The <code class="literal">“pixbuf”</code> property</h3>
+<pre class="programlisting">  “pixbuf”                   <a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> *</pre>
+<p>GdkPixbuf object to render.</p>
+<p>Flags: Read / Write</p>
+<p class="since">Since: 1.6</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstGdkPixbufOverlay--positioning-mode"></a><h3>The <code class="literal">“positioning-mode”</code> property</h3>
+<pre class="programlisting">  “positioning-mode”         <span class="type">GstGdkPixbufPositioningMode</span></pre>
+<p>Positioning mode of offset-x and offset-y properties. Determines how
+negative x/y offsets will be interpreted. By default negative values
+are for positioning relative to the right/bottom edge of the video
+image, but you can use this property to select absolute positioning
+relative to a (0, 0) origin in the top-left corner. That way negative
+offsets will be to the left/above the video image, which allows you to
+smoothly slide logos into and out of the frame if desired.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: pixels-relative-to-edges</p>
+<p class="since">Since: 1.6</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
index 5fc6057..77736fb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-gdkpixbufsink.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-gamma.html" title="gamma">
+<link rel="prev" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">
 <link rel="next" href="gst-plugins-good-plugins-goom2k1.html" title="goom2k1">
 <meta name="generator" content="GTK-Doc V1.25 (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-gamma.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-gdkpixbufoverlay.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>
 </tr></table>
 <div class="refentry">
@@ -82,10 +82,84 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-gdkpixbufsink.description"></a><h2>Description</h2>
+<p>This sink element takes RGB or RGBA images as input and wraps them into
+<a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> objects, for easy saving to file via the
+GdkPixbuf library API or displaying in Gtk+ applications (e.g. using
+the <a href="/usr/share/gtk-doc/html/gtk3GtkImage.html#GtkImage-struct"><span class="type">GtkImage</span></a> widget).</p>
+<p>There are two ways to use this element and obtain the <a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> objects
+created:</p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+Watching for element messages named <code class="classname">"preroll-pixbuf"
+</code> or <code class="classname">"pixbuf"</code> on the bus, which
+will be posted whenever an image would usually be rendered. See below for
+more details on these messages and how to extract the pixbuf object
+contained in them.
+</li>
+<li class="listitem">
+Retrieving the current pixbuf via the <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--last-pixbuf" title="The “last-pixbuf” property"><span class="type">“last-pixbuf”</span></a> property
+when needed. This is the easiest way to get at pixbufs for snapshotting
+purposes - just wait until the pipeline is prerolled (ASYNC_DONE message
+on the bus), then read the property. If you use this method, you may want
+to disable message posting by setting the <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a>
+property to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a>. This avoids unnecessary memory overhead.
+</li>
+</ul></div>
+<p>The primary purpose of this element is to abstract away the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBuffer.html#GstBuffer-struct"><span class="type">GstBuffer</span></a> to
+<a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> conversion. Other than that it's very similar to the fakesink
+element.</p>
+<p>This element is meant for easy no-hassle video snapshotting. It is not
+suitable for video playback or video display at high framerates. Use
+ximagesink, xvimagesink or some other suitable video sink in connection
+with the <span class="type">GstXOverlay</span> interface instead if you want to do video playback.</p>
+<div class="refsect2">
+<a name="id-1.2.67.7.7"></a><h3>Message details</h3>
+As mentioned above, this element will by default post element messages
+containing structures named <code class="classname">"preroll-pixbuf"
+</code> or <code class="classname">"pixbuf"</code> on the bus (this
+can be disabled by setting the <a class="link" href="gst-plugins-good-plugins-gdkpixbufsink.html#GstGdkPixbufSink--post-messages" title="The “post-messages” property"><span class="type">“post-messages”</span></a> property
+to <a href="/usr/share/gtk-doc/html/glibglib-Standard-Macros.html#FALSE:CAPS"><span class="type">FALSE</span></a> though). The element message structure has the following fields:
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+<code class="classname">"pixbuf"</code>: the <a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-The-GdkPixbuf-Structure.html#GdkPixbuf-struct"><span class="type">GdkPixbuf</span></a> object
+</li>
+<li class="listitem">
+<code class="classname">"pixel-aspect-ratio"</code>: the pixel aspect
+  ratio (PAR) of the input image (this field contains a <span class="type">GstFraction</span>); the
+  PAR is usually 1:1 for images, but is often something non-1:1 in the case
+  of video input. In this case the image may be distorted and you may need
+  to rescale it accordingly before saving it to file or displaying it. This
+  can easily be done using <a href="/usr/share/gtk-doc/html/gdk-pixbufgdk-pixbuf-Scaling.html#gdk-pixbuf-scale"><code class="function">gdk_pixbuf_scale()</code></a> (the reason this is not done
+  automatically is that the application will often scale the image anyway
+  according to the size of the output window, in which case it is much more
+  efficient to only scale once rather than twice). You can put a videoscale
+  element and a capsfilter element with
+  <code class="literal">video/x-raw-rgb,pixel-aspect-ratio=(fraction)1/1</code> caps
+  in front of this element to make sure the pixbufs always have a 1:1 PAR.
+</li>
+</ul></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.67.7.8"></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> <span class="gtkdoc opt">-</span>m <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> gdkpixbufsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Process one single test image as pixbuf (note that the output you see will
+be slightly misleading. The message structure does contain a valid pixbuf
+object even if the structure string says '(NULL)').
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.61.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.67.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -111,7 +185,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.61.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.67.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,6 +226,7 @@
 <div class="refsect2">
 <a name="GstGdkPixbufSink-struct"></a><h3>struct GstGdkPixbufSink</h3>
 <pre class="programlisting">struct GstGdkPixbufSink;</pre>
+<p>Opaque element structure.</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-goom.html b/docs/plugins/html/gst-plugins-good-plugins-goom.html
index 88142a9..627ce63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom.html
@@ -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.63.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>
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.63.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.63.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-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
index 5af0ccd..4857987 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-goom2k1.html
@@ -61,7 +61,7 @@
 based on the incomming audio signal. Goom2k1 is the older version of the
 visualisation. Also available is goom2k4, with a different look.</p>
 <div class="refsect2">
-<a name="id-1.2.62.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.68.6.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -77,7 +77,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.62.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.68.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.62.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.68.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-hdv1394src.html b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
index c1e337e..f8d56d2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-hdv1394src.html
@@ -104,10 +104,36 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-hdv1394src.description"></a><h2>Description</h2>
+<p>Read MPEG-TS data from firewire port.</p>
+<div class="refsect2">
+<a name="id-1.2.70.8.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> hdv1394src <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> decodebin name<span class="gtkdoc opt">=</span>d <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> xvimagesink d<span class="gtkdoc opt">. !</span> queue <span class="gtkdoc opt">!</span> alsasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ captures from the firewire port and plays the streams.
+<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> hdv1394src <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>mydump<span class="gtkdoc opt">.</span>ts</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ capture to a disk file
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.64.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.70.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -133,7 +159,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.64.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.70.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -186,7 +212,7 @@
 <div class="refsect2">
 <a name="GstHDV1394Src--device-name"></a><h3>The <code class="literal">“device-name”</code> property</h3>
 <pre class="programlisting">  “device-name”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>user-friendly name of the device.</p>
+<p>Descriptive name of the currently opened device</p>
 <p>Flags: Read</p>
 <p>Default value: "Default"</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-icydemux.html b/docs/plugins/html/gst-plugins-good-plugins-icydemux.html
index e2b6303..b0c699b 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 @@
 detected using typefind functions, and the appropriate output mime type set
 on outgoing buffers. </p>
 <div class="refsect2">
-<a name="id-1.2.65.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.71.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.65.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.71.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.65.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.71.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 3079a13..58d5414 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 @@
 <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.66.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.72.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.66.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.72.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.66.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.72.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 8e97073..554f987 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-id3v2mux.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-id3demux.html" title="id3demux">
-<link rel="next" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
+<link rel="next" href="gst-plugins-good-plugins-iirequalizer.html" title="iirequalizer">
 <meta name="generator" content="GTK-Doc V1.25 (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-id3demux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-imagefreeze.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-iirequalizer.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-id3v2mux"></a><div class="titlepage"></div>
@@ -64,10 +64,44 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-id3v2mux.description"></a><h2>Description</h2>
+<p>This element adds ID3v2 tags to the beginning of a stream using the taglib
+library. More precisely, the tags written are ID3 version 2.4.0 tags (which
+means in practice that some hardware players or outdated programs might not
+be able to read them properly).</p>
+<p>Applications can set the tags to write using the <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a> interface.
+Tags sent by upstream elements will be picked up automatically (and merged
+according to the merge mode set via the tag setter interface).</p>
+<div class="refsect2">
+<a name="id-1.2.73.7.4"></a><h3>Example pipelines</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>foo<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> lame <span class="gtkdoc opt">!</span> id3v2mux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A pipeline that transcodes a file from Ogg/Vorbis to mp3 format with an
+ID3v2 that contains the same as the the Ogg/Vorbis file. Make sure the
+Ogg/Vorbis file actually has comments to preserve.
+<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>m filesrc location<span class="gtkdoc opt">=</span>foo<span class="gtkdoc opt">.</span>mp3 <span class="gtkdoc opt">!</span> id3demux <span class="gtkdoc opt">!</span> fakesink silent<span class="gtkdoc opt">=</span>TRUE <span class="number">2</span><span class="gtkdoc opt">&gt; /</span>dev<span class="gtkdoc opt">/</span>null <span class="gtkdoc opt">|</span> grep taglist</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Verify that tags have been written.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.67.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.73.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -93,7 +127,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.67.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.73.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,6 +190,10 @@
 <pre class="programlisting">struct GstId3v2Mux;</pre>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-id3v2mux.see-also"></a><h2>See Also</h2>
+<p><a class="link" href="gst-plugins-good-plugins-id3demux.html#GstID3Demux"><span class="type">GstID3Demux</span></a>, <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct"><span class="type">GstTagSetter</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/GstIirEqualizer.html b/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
similarity index 62%
rename from docs/plugins/html/GstIirEqualizer.html
rename to docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
index 19b605a..9676a05 100644
--- a/docs/plugins/html/GstIirEqualizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-iirequalizer.html
@@ -2,12 +2,12 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-<title>GstIirEqualizer: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<title>iirequalizer: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
 <link rel="home" href="index.html" title="GStreamer Good Plugins 1.0 Plugins Reference Manual">
-<link rel="up" href="ch03.html" title="gst-plugins-good Base Classes">
-<link rel="prev" href="ch03.html" title="gst-plugins-good Base Classes">
-<link rel="next" href="gst-plugins-good-plugins-GstVideoMixerPad.html" title="GstVideoMixerPad">
+<link rel="up" href="ch01.html" title="gst-plugins-good Elements">
+<link rel="prev" href="gst-plugins-good-plugins-id3v2mux.html" title="id3v2mux">
+<link rel="next" href="gst-plugins-good-plugins-imagefreeze.html" title="imagefreeze">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -15,26 +15,26 @@
 <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="#GstIirEqualizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#GstIirEqualizer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
-                  <a href="#GstIirEqualizer.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span>
+                  <a href="#gst-plugins-good-plugins-iirequalizer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-iirequalizer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-iirequalizer.implemented-interfaces" class="shortcut">Implemented Interfaces</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="ch03.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
-<td><a accesskey="p" href="ch03.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-GstVideoMixerPad.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></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-id3v2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-imagefreeze.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
-<a name="GstIirEqualizer"></a><div class="titlepage"></div>
+<a name="gst-plugins-good-plugins-iirequalizer"></a><div class="titlepage"></div>
 <div class="refnamediv"><table width="100%"><tr>
 <td valign="top">
-<h2><span class="refentrytitle"><a name="GstIirEqualizer.top_of_page"></a>GstIirEqualizer</span></h2>
-<p>GstIirEqualizer</p>
+<h2><span class="refentrytitle"><a name="gst-plugins-good-plugins-iirequalizer.top_of_page"></a>iirequalizer</span></h2>
+<p>iirequalizer</p>
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<div class="refsect1">
-<a name="GstIirEqualizer.other"></a><h2>Types and Values</h2>
+<a name="GstIirEqualizer"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-iirequalizer.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
 <col width="150px" class="name">
@@ -42,12 +42,12 @@
 </colgroup>
 <tbody><tr>
 <td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="GstIirEqualizer.html#GstIirEqualizer-struct" title="struct GstIirEqualizer">GstIirEqualizer</a></td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-iirequalizer.html#GstIirEqualizer-struct" title="struct GstIirEqualizer">GstIirEqualizer</a></td>
 </tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
-<a name="GstIirEqualizer.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<a name="gst-plugins-good-plugins-iirequalizer.object-hierarchy"></a><h2>Object Hierarchy</h2>
 <pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
     <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
@@ -61,20 +61,20 @@
 </pre>
 </div>
 <div class="refsect1">
-<a name="GstIirEqualizer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<a name="gst-plugins-good-plugins-iirequalizer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstIirEqualizer implements
  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstChildProxy.html#GstChildProxy-struct">GstChildProxy</a> and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
-<a name="GstIirEqualizer.description"></a><h2>Description</h2>
+<a name="gst-plugins-good-plugins-iirequalizer.description"></a><h2>Description</h2>
 </div>
 <div class="refsect1">
-<a name="GstIirEqualizer.functions_details"></a><h2>Functions</h2>
+<a name="gst-plugins-good-plugins-iirequalizer.functions_details"></a><h2>Functions</h2>
 <p></p>
 </div>
 <div class="refsect1">
-<a name="GstIirEqualizer.other_details"></a><h2>Types and Values</h2>
+<a name="gst-plugins-good-plugins-iirequalizer.other_details"></a><h2>Types and Values</h2>
 <div class="refsect2">
 <a name="GstIirEqualizer-struct"></a><h3>struct GstIirEqualizer</h3>
 <pre class="programlisting">struct GstIirEqualizer;</pre>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
index 6096a88..fc2445a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-imagefreeze.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-id3v2mux.html" title="id3v2mux">
+<link rel="prev" href="gst-plugins-good-plugins-iirequalizer.html" title="iirequalizer">
 <link rel="next" href="gst-plugins-good-plugins-interleave.html" title="interleave">
 <meta name="generator" content="GTK-Doc V1.25 (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-id3v2mux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-iirequalizer.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-interleave.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -60,7 +60,7 @@
 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.69.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.76.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.69.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.76.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.69.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.76.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 e68c3b8..ed80de3 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 @@
 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.70.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.77.7.6"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -121,7 +121,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.70.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">
@@ -147,7 +147,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.70.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-ismlmux.html b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
index 6e27bfa..21d358f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ismlmux.html
@@ -139,7 +139,7 @@
 <a name="gst-plugins-good-plugins-ismlmux.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstISMLMux implements
- <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a> and  GstTagXmpWriter.</p>
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>,  GstTagXmpWriter and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-ismlmux.description"></a><h2>Description</h2>
@@ -171,7 +171,7 @@
 <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.71.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.78.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.71.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.78.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.71.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.78.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 2fb7113..a4e4660 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosink.html
@@ -105,10 +105,40 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-jackaudiosink.description"></a><h2>Description</h2>
+<p>A Sink that outputs data to Jack ports.</p>
+<p>It will create N Jack ports named out_&lt;name&gt;_&lt;num&gt; where 
+&lt;name&gt; is the element name and &lt;num&gt; is starting from 1.
+Each port corresponds to a gstreamer channel.</p>
+<p>The samplerate as exposed on the caps is always the same as the samplerate of
+the jack server.</p>
+<p>When the <a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect" title="The “connect” property"><span class="type">“connect”</span></a> property is set to auto, this element
+will try to connect each output port to a random physical jack input pin. In
+this mode, the sink will expose the number of physical channels on its pad
+caps.</p>
+<p>When the <a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink--connect" title="The “connect” property"><span class="type">“connect”</span></a> property is set to none, the element will
+accept any number of input channels and will create (but not connect) an
+output port for each channel.</p>
+<p>The element will generate an error when the Jack server is shut down when it
+was PAUSED or PLAYING. This element does not support dynamic rate and buffer
+size changes at runtime.</p>
+<div class="refsect2">
+<a name="id-1.2.79.7.8"></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> audiotestsrc <span class="gtkdoc opt">!</span> jackaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play a sine wave to using jack.
+</div>
 <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.79.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -134,7 +164,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.79.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -171,6 +201,7 @@
 <div class="refsect2">
 <a name="GstJackAudioSink-struct"></a><h3>struct GstJackAudioSink</h3>
 <pre class="programlisting">struct GstJackAudioSink;</pre>
+<p>Opaque <a class="link" href="gst-plugins-good-plugins-jackaudiosink.html#GstJackAudioSink"><span class="type">GstJackAudioSink</span></a>.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -201,7 +232,7 @@
 <div class="refsect2">
 <a name="GstJackAudioSink--client-name"></a><h3>The <code class="literal">“client-name”</code> property</h3>
 <pre class="programlisting">  “client-name”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>The client name of the Jack instance (NULL = default).</p>
+<p>The client name to use.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
@@ -209,18 +240,23 @@
 <div class="refsect2">
 <a name="GstJackAudioSink--transport"></a><h3>The <code class="literal">“transport”</code> property</h3>
 <pre class="programlisting">  “transport”                <span class="type">GstJackTransport</span></pre>
-<p>Jack transport behaviour of the client.</p>
+<p>The jack transport behaviour for the client.</p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstJackAudioSink--port-pattern"></a><h3>The <code class="literal">“port-pattern”</code> property</h3>
 <pre class="programlisting">  “port-pattern”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>A pattern to select which ports to connect to (NULL = first physical ports).</p>
+<p>autoconnect to ports matching pattern, when NULL connect to physical ports</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
+<p class="since">Since: 1.6</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-jackaudiosink.see-also"></a><h2>See Also</h2>
+<p><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink-struct"><span class="type">GstAudioBaseSink</span></a>, <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct"><span class="type">GstAudioRingBuffer</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
index cfda8db..cf55f79 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jackaudiosrc.html
@@ -106,10 +106,38 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-jackaudiosrc.description"></a><h2>Description</h2>
+<p>A Src that inputs data from Jack ports.</p>
+<p>It will create N Jack ports named in_&lt;name&gt;_&lt;num&gt; where 
+&lt;name&gt; is the element name and &lt;num&gt; is starting from 1.
+Each port corresponds to a gstreamer channel.</p>
+<p>The samplerate as exposed on the caps is always the same as the samplerate of
+the jack server.</p>
+<p>When the <a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect" title="The “connect” property"><span class="type">“connect”</span></a> property is set to auto, this element
+will try to connect each input port to a random physical jack output pin. </p>
+<p>When the <a class="link" href="gst-plugins-good-plugins-jackaudiosrc.html#GstJackAudioSrc--connect" title="The “connect” property"><span class="type">“connect”</span></a> property is set to none, the element will
+accept any number of output channels and will create (but not connect) an
+input port for each channel.</p>
+<p>The element will generate an error when the Jack server is shut down when it
+was PAUSED or PLAYING. This element does not support dynamic rate and buffer
+size changes at runtime.</p>
+<div class="refsect2">
+<a name="id-1.2.80.7.8"></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> jackaudiosrc connect<span class="gtkdoc opt">=</span><span class="number">0</span> <span class="gtkdoc opt">!</span> jackaudiosink connect<span class="gtkdoc opt">=</span><span class="number">0</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Get audio input into gstreamer from jack.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.73.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.80.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -135,7 +163,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.73.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.80.7.9.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -202,7 +230,7 @@
 <div class="refsect2">
 <a name="GstJackAudioSrc--client-name"></a><h3>The <code class="literal">“client-name”</code> property</h3>
 <pre class="programlisting">  “client-name”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>The client name of the Jack instance (NULL = default).</p>
+<p>The client name to use.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
@@ -217,11 +245,16 @@
 <div class="refsect2">
 <a name="GstJackAudioSrc--port-pattern"></a><h3>The <code class="literal">“port-pattern”</code> property</h3>
 <pre class="programlisting">  “port-pattern”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>A pattern to select which ports to connect to (NULL = first physical ports).</p>
+<p>autoconnect to ports matching pattern, when NULL connect to physical ports</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
+<p class="since">Since: 1.6</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-jackaudiosrc.see-also"></a><h2>See Also</h2>
+<p><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudiobasesrc.html#GstAudioBaseSrc-struct"><span class="type">GstAudioBaseSrc</span></a>, <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer-struct"><span class="type">GstAudioRingBuffer</span></a></p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
index 20f1de1..e590606 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegdec.html
@@ -80,10 +80,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-jpegdec.description"></a><h2>Description</h2>
+<p>Decodes jpeg images.</p>
+<div class="refsect2">
+<a name="id-1.2.81.7.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>mjpeg<span class="gtkdoc opt">.</span>avi <span class="gtkdoc opt">!</span> avidemux <span class="gtkdoc opt">!</span>  queue <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ The above pipeline decode the mjpeg stream and renders it to the screen.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.74.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.81.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -109,7 +124,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.74.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.81.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -185,7 +200,12 @@
 <div class="refsect2">
 <a name="GstJpegDec--max-errors"></a><h3>The <code class="literal">“max-errors”</code> property</h3>
 <pre class="programlisting">  “max-errors”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>(Deprecated) Error out after receiving N consecutive decoding errors (-1 = never fail, 0 = automatic, 1 = fail on first error).</p>
+<p>Error out after receiving N consecutive decoding errors
+(-1 = never error out, 0 = automatic, 1 = fail on first error, etc.)</p>
+<div class="warning">
+<p><code class="literal">GstJpegDec:max-errors</code> has been deprecated since version 1.3.1 and should not be used in newly-written code.</p>
+<p>Property wasn't used internally</p>
+</div>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 0</p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
index 002572d..7ecaa74 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-jpegenc.html
@@ -87,10 +87,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-jpegenc.description"></a><h2>Description</h2>
+<p>Encodes jpeg images.</p>
+<div class="refsect2">
+<a name="id-1.2.82.8.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> videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">50</span> <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span> framerate<span class="gtkdoc opt">=</span><span class="string">'(fraction)'</span><span class="number">5</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> jpegenc <span class="gtkdoc opt">!</span> avimux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>mjpeg<span class="gtkdoc opt">.</span>avi</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ a pipeline to mux 5 JPEG frames per second into a 10 sec. long motion jpeg
+avi.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.75.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.82.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +132,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.75.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.82.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-level.html b/docs/plugins/html/gst-plugins-good-plugins-level.html
index 0d68ce7..b32d636 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-level.html
@@ -148,7 +148,7 @@
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.77.7.6"></a><h3>Example application</h3>
+<a name="id-1.2.84.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.77.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.84.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.77.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.84.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 38de258..3749e2e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskademux.html
@@ -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.78.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.85.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.78.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.85.7.4.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.78.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.85.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 30ca9cd..e46cd3d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-matroskamux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskamux.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-matroskademux.html" title="matroskademux">
-<link rel="next" href="gst-plugins-good-plugins-mj2mux.html" title="mj2mux">
+<link rel="next" href="gst-plugins-good-plugins-matroskaparse.html" title="matroskaparse">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-matroskaparse.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>
@@ -64,6 +64,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--streamable" title="The “streamable” property">streamable</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-matroskamux.html#GstMatroskaMux--timecodescale" title="The “timecodescale” property">timecodescale</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -100,7 +105,7 @@
 <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.79.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.86.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -127,7 +132,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.79.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.86.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -153,7 +158,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.79.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.86.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -459,6 +464,15 @@
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstMatroskaMux--timecodescale"></a><h3>The <code class="literal">“timecodescale”</code> property</h3>
+<pre class="programlisting">  “timecodescale”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>TimecodeScale used to calculate the Raw Timecode of a Block.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [1,1000000000]</p>
+<p>Default value: 1000000</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html b/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html
new file mode 100644
index 0000000..489356b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-matroskaparse.html
@@ -0,0 +1,202 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>matroskaparse: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<meta name="generator" content="GTK-Doc V1.25 (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-matroskaparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-matroskaparse.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-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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-matroskaparse"></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-matroskaparse.top_of_page"></a>matroskaparse</span></h2>
+<p>matroskaparse</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstMatroskaParse"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-matroskaparse.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="150px" class="name">
+<col class="description">
+</colgroup>
+<tbody><tr>
+<td class="datatype_keyword"> </td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-matroskaparse.html#GstMatroskaParse-struct" title="GstMatroskaParse">GstMatroskaParse</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-matroskaparse.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstMatroskaParse
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-matroskaparse.description"></a><h2>Description</h2>
+<p>matroskaparse parsees a Matroska file into the different contained streams.</p>
+<div class="refsect2">
+<a name="id-1.2.87.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>path<span class="gtkdoc opt">/</span>to<span class="gtkdoc opt">/</span>mkv <span class="gtkdoc opt">!</span> matroskaparse <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline parsees a Matroska file and outputs the contained Vorbis audio.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.87.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-matroska.html#plugin-matroska">matroska</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>GStreamer maintainers &lt;gstreamer-devel@lists.freedesktop.org&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Parser</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.87.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>audio/x-matroska</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-matroska</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-matroska-3d</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/webm</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/webm</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-matroska</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-matroska</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-matroska-3d</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/webm</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/webm</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-matroskaparse.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-matroskaparse.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstMatroskaParse-struct"></a><h3>GstMatroskaParse</h3>
+<pre class="programlisting">typedef struct _GstMatroskaParse GstMatroskaParse;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html b/docs/plugins/html/gst-plugins-good-plugins-mj2mux.html
index 246cb83..8f2385f 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.79.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="prev" href="gst-plugins-good-plugins-matroskaparse.html" title="matroskaparse">
 <link rel="next" href="gst-plugins-good-plugins-monoscope.html" title="monoscope">
 <meta name="generator" content="GTK-Doc V1.25 (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-matroskamux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-matroskaparse.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">
@@ -139,7 +139,7 @@
 <a name="gst-plugins-good-plugins-mj2mux.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstMJ2Mux implements
- <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a> and  GstTagXmpWriter.</p>
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>,  GstTagXmpWriter and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-mj2mux.description"></a><h2>Description</h2>
@@ -171,7 +171,7 @@
 <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.80.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.88.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.80.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.88.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.80.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.88.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 227e41f..d6744f3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-monoscope.html
@@ -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.81.4.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.89.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.81.4.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.89.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.81.4.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.89.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 62cfe66..5711eab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mp4mux.html
@@ -139,7 +139,7 @@
 <a name="gst-plugins-good-plugins-mp4mux.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstMP4Mux implements
- <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a> and  GstTagXmpWriter.</p>
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>,  GstTagXmpWriter and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-mp4mux.description"></a><h2>Description</h2>
@@ -171,7 +171,7 @@
 <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.82.8.7"></a><h3>Example pipelines</h3>
+<a name="id-1.2.90.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.82.8.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.90.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.82.8.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.90.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 632aa11..d8469ab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mpegaudioparse.html
@@ -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.83.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.91.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.83.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.91.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.83.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.91.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 39c16c4..e3e8ece 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawdec.html
@@ -61,7 +61,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.84.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.92.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.84.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.92.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 f333c04..8e89fe2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-mulawenc.html
@@ -16,7 +16,8 @@
 <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-mulawenc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-mulawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span>
+                  <a href="#gst-plugins-good-plugins-mulawenc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-mulawenc.implemented-interfaces" class="shortcut">Implemented Interfaces</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>
@@ -32,7 +33,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstMuLawDec"></a><a name="GstMuLawEnc"></a><div class="refsect1">
+<a name="GstMuLawEnc"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-mulawenc.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -56,12 +57,18 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-mulawenc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstMuLawEnc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-mulawenc.description"></a><h2>Description</h2>
 <p>This element encode mulaw audio. Mulaw coding is also known as G.711.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.85.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.93.7.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -87,7 +94,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.85.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.93.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 72f27aa..67f92ad 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 @@
   </p></li>
 </ul></div>
 <div class="refsect2">
-<a name="id-1.2.86.7.11"></a><h3>Example launch line</h3>
+<a name="id-1.2.94.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.86.7.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.94.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.86.7.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.94.7.12.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-multifilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-multifilesrc.html
index 2e206a4..61b9149 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 @@
 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.87.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.95.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.87.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.95.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.87.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.95.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 42cb871..6eb1bb0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multipartdemux.html
@@ -91,7 +91,7 @@
 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.88.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.96.7.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.88.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.96.7.6.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.88.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.96.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 a965e9d..3b22e77 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.89.7.3"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.97.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.89.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.97.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.89.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.97.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 79f721f..ceb2192 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-multiudpsink.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-multipartmux.html" title="multipartmux">
-<link rel="next" href="gst-plugins-good-plugins-optv.html" title="optv">
+<link rel="next" href="gst-plugins-good-plugins-navigationtest.html" title="navigationtest">
 <meta name="generator" content="GTK-Doc V1.25 (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-multipartmux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-optv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-navigationtest.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-multiudpsink"></a><div class="titlepage"></div>
@@ -223,7 +223,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.90.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.98.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -249,7 +249,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.90.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.98.8.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-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html
new file mode 100644
index 0000000..2253b4a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-navigationtest.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>navigationtest: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-multiudpsink.html" title="multiudpsink">
+<link rel="next" href="gst-plugins-good-plugins-navseek.html" title="navseek">
+<meta name="generator" content="GTK-Doc V1.25 (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-navigationtest.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-navigationtest.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-multiudpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-navseek.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-navigationtest"></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-navigationtest.top_of_page"></a>navigationtest</span></h2>
+<p>navigationtest</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstNavigationtest"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-navigationtest.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-navigationtest.html#GstNavigationtest-struct" title="struct GstNavigationtest">GstNavigationtest</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navigationtest.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct">GstVideoFilter</a>
+                        <span class="lineart">╰──</span> GstNavigationtest
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navigationtest.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<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">
+<col>
+</colgroup>
+<tbody>
+<tr>
+<td><p><span class="term">plugin</span></p></td>
+<td>
+            <a class="link" href="gst-plugins-good-plugins-plugin-navigationtest.html#plugin-navigationtest">navigationtest</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>David Schleef &lt;ds@schleef.org&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Filter/Effect/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<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">
+<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-raw, format=(string)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</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-raw, format=(string)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navigationtest.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navigationtest.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstNavigationtest-struct"></a><h3>struct GstNavigationtest</h3>
+<pre class="programlisting">struct GstNavigationtest;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-navseek.html b/docs/plugins/html/gst-plugins-good-plugins-navseek.html
new file mode 100644
index 0000000..d893b6b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-navseek.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>navseek: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-navigationtest.html" title="navigationtest">
+<link rel="next" href="gst-plugins-good-plugins-optv.html" title="optv">
+<meta name="generator" content="GTK-Doc V1.25 (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-navseek.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-navseek.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-navseek.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-navigationtest.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-optv.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-navseek"></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-navseek.top_of_page"></a>navseek</span></h2>
+<p>navseek</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-navseek.html#GstNavSeek--seek-offset" title="The “seek-offset” property">seek-offset</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstNavSeek"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-navseek.html#GstNavSeek-struct" title="struct GstNavSeek">GstNavSeek</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
+                    <span class="lineart">╰──</span> GstNavSeek
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.100.7.2.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Jan Schmidt &lt;thaytan@mad.scientist.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Filter/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.100.7.2.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>ANY</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstNavSeek-struct"></a><h3>struct GstNavSeek</h3>
+<pre class="programlisting">struct GstNavSeek;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-navseek.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstNavSeek--seek-offset"></a><h3>The <code class="literal">“seek-offset”</code> property</h3>
+<pre class="programlisting">  “seek-offset”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Time in seconds to seek by.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 5</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-optv.html b/docs/plugins/html/gst-plugins-good-plugins-optv.html
index 22bb606..1797ff6 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-optv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-optv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-multiudpsink.html" title="multiudpsink">
+<link rel="prev" href="gst-plugins-good-plugins-navseek.html" title="navseek">
 <link rel="next" href="gst-plugins-good-plugins-oss4sink.html" title="oss4sink">
 <meta name="generator" content="GTK-Doc V1.25 (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-multiudpsink.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-navseek.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-oss4sink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -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.91.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.101.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.91.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.101.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.91.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.101.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 1a8e6ea..97b17e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4sink.html
@@ -101,10 +101,43 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-oss4sink.description"></a><h2>Description</h2>
+<p>This element lets you output sound using the Open Sound System (OSS)
+version 4.</p>
+<p>Note that you should almost always use generic audio conversion elements
+like audioconvert and audioresample in front of an audiosink to make sure
+your pipeline works under all circumstances (those conversion elements will
+act in passthrough-mode if no conversion is necessary).</p>
+<div class="refsect2">
+<a name="id-1.2.102.8.4"></a><h3>Example pipelines</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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> volume volume<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> oss4sink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will output a sine wave (continuous beep sound) to your sound card (with
+a very low volume as precaution).
+<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>music<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> oss4sink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will play an Ogg/Vorbis audio file and output it using the Open Sound System
+version 4.
+</div>
 <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.102.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -130,7 +163,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.92.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.102.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-oss4src.html b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
index 8839539..01aea41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-oss4src.html
@@ -92,10 +92,28 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-oss4src.description"></a><h2>Description</h2>
+<p>This element lets you record sound using the Open Sound System (OSS)
+version 4.</p>
+<div class="refsect2">
+<a name="id-1.2.103.8.3"></a><h3>Example pipelines</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 oss4src <span class="gtkdoc opt">!</span> queue <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>mymusic<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will record sound from your sound card using OSS4 and encode it to an
+Ogg/Vorbis file (this will only work if your mixer settings are right
+and the right inputs areenabled etc.)
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.93.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.103.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +139,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.93.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.103.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-osssink.html b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
index 783c47f..068e991 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssink.html
@@ -76,10 +76,41 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-osssink.description"></a><h2>Description</h2>
+<p>This element lets you output sound using the Open Sound System (OSS).</p>
+<p>Note that you should almost always use generic audio conversion elements
+like audioconvert and audioresample in front of an audiosink to make sure
+your pipeline works under all circumstances (those conversion elements will
+act in passthrough-mode if no conversion is necessary).</p>
+<div class="refsect2">
+<a name="id-1.2.104.7.4"></a><h3>Example pipelines</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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> volume volume<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> osssink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will output a sine wave (continuous beep sound) to your sound card (with
+a very low volume as precaution).
+<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>music<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> osssink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will play an Ogg/Vorbis audio file and output it using the Open Sound System.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.94.7.2.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">
@@ -105,7 +136,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.94.7.2.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-osssrc.html b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
index d515d41..ed7ba41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osssrc.html
@@ -92,10 +92,27 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-osssrc.description"></a><h2>Description</h2>
+<p>This element lets you record sound using the Open Sound System (OSS).</p>
+<div class="refsect2">
+<a name="id-1.2.105.8.3"></a><h3>Example pipelines</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 osssrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>mymusic<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will record sound from your sound card using OSS and encode it to an
+Ogg/Vorbis file (this will only work if your mixer settings are right
+and the right inputs enabled etc.)
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.95.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.105.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -121,7 +138,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.95.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.105.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-osxaudiosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
index 2f71631..456c935 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosink.html
@@ -62,10 +62,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-osxaudiosink.description"></a><h2>Description</h2>
+<p>This element renders raw audio samples using the CoreAudio api.</p>
+<div class="refsect2">
+<a name="id-1.2.106.5.3"></a><h3>Example pipelines</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>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> osxaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play an Ogg/Vorbis file.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.96.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.106.5.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.96.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.106.5.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
index 8499d0b..94d8d6c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-osxaudiosrc.html
@@ -62,10 +62,25 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-osxaudiosrc.description"></a><h2>Description</h2>
+<p>This element captures raw audio samples using the CoreAudio api.</p>
+<div class="refsect2">
+<a name="id-1.2.107.5.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> osxaudiosrc <span class="gtkdoc opt">!</span> wavenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>audio<span class="gtkdoc opt">.</span>wav</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.97.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.107.5.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.97.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.107.5.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html b/docs/plugins/html/gst-plugins-good-plugins-osxvideosink.html
index cffc4b6..34ea2f8 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.98.5.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.108.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.98.5.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.108.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 b5b8db4..3558548 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-1394.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 74bfa1b..b191129 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-aasink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 819d9ee..1b43b4e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alaw.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 1bad872..48397a0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alpha.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-alphacolor.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
index 3b75747..c544961 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-alphacolor.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-apetag.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
index d92715c..d98e0ca 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-apetag.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 346fbb7..58182f4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audiofx.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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
index 5a7749f..ab0eafb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-audioparsers.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-auparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
index 4bdf01f..2c9ece3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-auparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-autodetect.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
index 15ae70e..6a6a42c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-autodetect.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-avi.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
index accdde7..dab8a32 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-avi.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-cacasink.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
index 6c31480..ff15d2a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cacasink.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-cairo.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
index 11c30b6..1f67fea 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cairo.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-cutter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
index 1aab896..6996ce4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-cutter.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-debug.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
index cb2c22e..8cabf2d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-debug.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,7 +68,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term">breakmydata</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-breakmydata.html" title="breakmydata">breakmydata</a></span></p></td>
 <td>randomly change data in the stream</td>
 </tr>
 <tr>
@@ -76,11 +76,11 @@
 <td>Set/merge caps on stream</td>
 </tr>
 <tr>
-<td><p><span class="term">cpureport</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-cpureport.html" title="cpureport">cpureport</a></span></p></td>
 <td>Post cpu usage information every buffer</td>
 </tr>
 <tr>
-<td><p><span class="term">navseek</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-navseek.html" title="navseek">navseek</a></span></p></td>
 <td>Seek based on navigation keys left-right</td>
 </tr>
 <tr>
@@ -88,11 +88,11 @@
 <td>Periodically query and report on processing progress</td>
 </tr>
 <tr>
-<td><p><span class="term">pushfilesrc</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html" title="pushfilesrc">pushfilesrc</a></span></p></td>
 <td>Implements pushfile:// URI-handler for push-based file access</td>
 </tr>
 <tr>
-<td><p><span class="term">rndbuffersize</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rndbuffersize.html" title="rndbuffersize">rndbuffersize</a></span></p></td>
 <td>pull random sized buffers</td>
 </tr>
 <tr>
@@ -100,7 +100,7 @@
 <td>inject metadata tags</td>
 </tr>
 <tr>
-<td><p><span class="term">testsink</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-testsink.html" title="testsink">testsink</a></span></p></td>
 <td>perform a number of tests</td>
 </tr>
 </tbody>
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 6bb838a..d84cb19 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-deinterlace.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-dtmf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
index 20e560d..59a810e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dtmf.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-dv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
index d8f64cb..85ef7f7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-dv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-effectv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
index 4cbbb32..7f463ac 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-effectv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 2728d87..3572a65 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-equalizer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-flac.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
index f898057..8d151bb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flac.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-flv.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
index fe88de6..bb31ef9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flv.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-flxdec.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
index c923582..74fbc54 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-flxdec.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-gdkpixbuf.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
index eb60385..984f82d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-gdkpixbuf.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,11 +68,11 @@
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term">gdkpixbufdec</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gdkpixbufdec.html" title="gdkpixbufdec">gdkpixbufdec</a></span></p></td>
 <td>Decodes images in a video stream using GdkPixbuf</td>
 </tr>
 <tr>
-<td><p><span class="term">gdkpixbufoverlay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-gdkpixbufoverlay.html" title="gdkpixbufoverlay">gdkpixbufoverlay</a></span></p></td>
 <td>Overlay an image onto a video stream</td>
 </tr>
 <tr>
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 cd728b9..5f6f4a5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-goom2k1.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
index 2b387f9..b9847f3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-goom2k1.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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 994dcb1..4545d25 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-icydemux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-id3demux.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
index 4b636da..a84b51f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-id3demux.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-imagefreeze.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
index f958ffe..d377d30 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-imagefreeze.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-interleave.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
index 90ba83c..9eba158 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-interleave.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-isomp4.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
index 9c9ee00..5d2d065 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-isomp4.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -96,7 +96,7 @@
 <td>Multiplex audio and video into a QuickTime file</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpxqtdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpxqtdepay.html" title="rtpxqtdepay">rtpxqtdepay</a></span></p></td>
 <td>Extracts Quicktime audio/video from RTP packets</td>
 </tr>
 </tbody>
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 e82282d..6a75b69 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jack.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-jpeg.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
index cfe2589..90334b9 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-jpeg.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-level.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
index 88ae011..10c54cd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-level.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-matroska.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
index ec2bd3e..3eb3bab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-matroska.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -76,7 +76,7 @@
 <td>Muxes video/audio/subtitle streams into a matroska stream</td>
 </tr>
 <tr>
-<td><p><span class="term">matroskaparse</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-matroskaparse.html" title="matroskaparse">matroskaparse</a></span></p></td>
 <td>Parses Matroska/WebM streams into video/audio/subtitles</td>
 </tr>
 <tr>
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 ff540db..0d88404 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-mulaw.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-multifile.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
index cb94204..b5697cc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multifile.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-multipart.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
index acd725d..aff4d69 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-multipart.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-navigationtest.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
index 2f7345f..167c51c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-navigationtest.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -67,7 +67,7 @@
 <col>
 </colgroup>
 <tbody><tr>
-<td><p><span class="term">navigationtest</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-navigationtest.html" title="navigationtest">navigationtest</a></span></p></td>
 <td>Handle navigation events showing a black square following mouse pointer</td>
 </tr></tbody>
 </table></div>
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 62dbaa7..c501025 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-oss4.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-ossaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
index b7c784f..6e91ece 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ossaudio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-png.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
index 97725e6..8274a3e 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-png.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-pulseaudio.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
index 84a8cbc..0075c4f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-pulseaudio.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-replaygain.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
index 856fd73..e6a49c2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-replaygain.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-rtp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
index 6526780..e091adb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,7 +68,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term">asteriskh263</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-asteriskh263.html" title="asteriskh263">asteriskh263</a></span></p></td>
 <td>Extracts H263 video from RTP and encodes in Asterisk H263 format</td>
 </tr>
 <tr>
@@ -80,11 +80,11 @@
 <td>Payload-encode Raw audio into RTP packets (RFC 3551)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpL24depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL24depay.html" title="rtpL24depay">rtpL24depay</a></span></p></td>
 <td>Extracts raw 24-bit audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpL24pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpL24pay.html" title="rtpL24pay">rtpL24pay</a></span></p></td>
 <td>Payload-encode Raw 24-bit audio into RTP packets (RFC 3190)</td>
 </tr>
 <tr>
@@ -112,67 +112,67 @@
 <td>Packetize BroadcomVoice audio streams into RTP packets (RFC 4298)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpceltdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpceltdepay.html" title="rtpceltdepay">rtpceltdepay</a></span></p></td>
 <td>Extracts CELT audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpceltpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpceltpay.html" title="rtpceltpay">rtpceltpay</a></span></p></td>
 <td>Payload-encodes CELT audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpdvdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdvdepay.html" title="rtpdvdepay">rtpdvdepay</a></span></p></td>
 <td>Depayloads DV from RTP packets (RFC 3189)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpdvpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpdvpay.html" title="rtpdvpay">rtpdvpay</a></span></p></td>
 <td>Payloads DV into RTP packets (RFC 3189)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg722depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg722depay.html" title="rtpg722depay">rtpg722depay</a></span></p></td>
 <td>Extracts G722 audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg722pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg722pay.html" title="rtpg722pay">rtpg722pay</a></span></p></td>
 <td>Payload-encode Raw audio into RTP packets (RFC 3551)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg723depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg723depay.html" title="rtpg723depay">rtpg723depay</a></span></p></td>
 <td>Extracts G.723 audio from RTP packets (RFC 3551)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg723pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg723pay.html" title="rtpg723pay">rtpg723pay</a></span></p></td>
 <td>Packetize G.723 audio into RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg726depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg726depay.html" title="rtpg726depay">rtpg726depay</a></span></p></td>
 <td>Extracts G.726 audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg726pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg726pay.html" title="rtpg726pay">rtpg726pay</a></span></p></td>
 <td>Payload-encodes G.726 audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg729depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg729depay.html" title="rtpg729depay">rtpg729depay</a></span></p></td>
 <td>Extracts G.729 audio from RTP packets (RFC 3551)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpg729pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpg729pay.html" title="rtpg729pay">rtpg729pay</a></span></p></td>
 <td>Packetize G.729 audio into RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpgsmdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpgsmdepay.html" title="rtpgsmdepay">rtpgsmdepay</a></span></p></td>
 <td>Extracts GSM audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpgsmpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpgsmpay.html" title="rtpgsmpay">rtpgsmpay</a></span></p></td>
 <td>Payload-encodes GSM audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpgstdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpgstdepay.html" title="rtpgstdepay">rtpgstdepay</a></span></p></td>
 <td>Extracts GStreamer buffers from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpgstpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpgstpay.html" title="rtpgstpay">rtpgstpay</a></span></p></td>
 <td>Payload GStreamer buffers as RTP packets</td>
 </tr>
 <tr>
@@ -184,47 +184,47 @@
 <td>Payload-encodes H261 video in RTP packets (RFC 4587)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph263depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph263depay.html" title="rtph263depay">rtph263depay</a></span></p></td>
 <td>Extracts H263 video from RTP packets (RFC 2190)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph263pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph263pay.html" title="rtph263pay">rtph263pay</a></span></p></td>
 <td>Payload-encodes H263 video in RTP packets (RFC 2190)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph263pdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph263pdepay.html" title="rtph263pdepay">rtph263pdepay</a></span></p></td>
 <td>Extracts H263/+/++ video from RTP packets (RFC 4629)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph263ppay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph263ppay.html" title="rtph263ppay">rtph263ppay</a></span></p></td>
 <td>Payload-encodes H263/+/++ video in RTP packets (RFC 4629)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph264depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph264depay.html" title="rtph264depay">rtph264depay</a></span></p></td>
 <td>Extracts H264 video from RTP packets (RFC 3984)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph264pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph264pay.html" title="rtph264pay">rtph264pay</a></span></p></td>
 <td>Payload-encode H264 video into RTP packets (RFC 3984)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph265depay</span></p></td>
-<td>Extracts H265 video from RTP packets (draft-ietf-payload-rtp-h265-03.txt)</td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph265depay.html" title="rtph265depay">rtph265depay</a></span></p></td>
+<td>Extracts H265 video from RTP packets (RFC 7798)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtph265pay</span></p></td>
-<td>Payload-encode H265 video into RTP packets (based on draft-ietf-payload-rtp-h265-03.txt)</td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtph265pay.html" title="rtph265pay">rtph265pay</a></span></p></td>
+<td>Payload-encode H265 video into RTP packets (RFC 7798)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpilbcdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpilbcdepay.html" title="rtpilbcdepay">rtpilbcdepay</a></span></p></td>
 <td>Extracts iLBC audio from RTP packets (RFC 3952)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpilbcpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpilbcpay.html" title="rtpilbcpay">rtpilbcpay</a></span></p></td>
 <td>Packetize iLBC audio streams into RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpj2kdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpj2kdepay.html" title="rtpj2kdepay">rtpj2kdepay</a></span></p></td>
 <td>Extracts JPEG 2000 video from RTP packets (RFC 5371)</td>
 </tr>
 <tr>
@@ -232,7 +232,7 @@
 <td>Payload-encodes JPEG 2000 pictures into RTP packets (RFC 5371)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpjpegdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpjpegdepay.html" title="rtpjpegdepay">rtpjpegdepay</a></span></p></td>
 <td>Extracts JPEG video from RTP packets (RFC 2435)</td>
 </tr>
 <tr>
@@ -248,59 +248,59 @@
 <td>Payloads KLV (SMPTE ST 336) metadata as RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp1sdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp1sdepay.html" title="rtpmp1sdepay">rtpmp1sdepay</a></span></p></td>
 <td>Extracts MPEG1 System Streams from RTP packets (RFC 3555)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp2tdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp2tdepay.html" title="rtpmp2tdepay">rtpmp2tdepay</a></span></p></td>
 <td>Extracts MPEG2 TS from RTP packets (RFC 2250)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp2tpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp2tpay.html" title="rtpmp2tpay">rtpmp2tpay</a></span></p></td>
 <td>Payload-encodes MPEG2 TS into RTP packets (RFC 2250)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4adepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4adepay.html" title="rtpmp4adepay">rtpmp4adepay</a></span></p></td>
 <td>Extracts MPEG4 audio from RTP packets (RFC 3016)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4apay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4apay.html" title="rtpmp4apay">rtpmp4apay</a></span></p></td>
 <td>Payload MPEG4 audio as RTP packets (RFC 3016)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4gdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4gdepay.html" title="rtpmp4gdepay">rtpmp4gdepay</a></span></p></td>
 <td>Extracts MPEG4 elementary streams from RTP packets (RFC 3640)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4gpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4gpay.html" title="rtpmp4gpay">rtpmp4gpay</a></span></p></td>
 <td>Payload MPEG4 elementary streams as RTP packets (RFC 3640)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4vdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4vdepay.html" title="rtpmp4vdepay">rtpmp4vdepay</a></span></p></td>
 <td>Extracts MPEG4 video from RTP packets (RFC 3016)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmp4vpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmp4vpay.html" title="rtpmp4vpay">rtpmp4vpay</a></span></p></td>
 <td>Payload MPEG-4 video as RTP packets (RFC 3016)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmpadepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmpadepay.html" title="rtpmpadepay">rtpmpadepay</a></span></p></td>
 <td>Extracts MPEG audio from RTP packets (RFC 2038)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmpapay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmpapay.html" title="rtpmpapay">rtpmpapay</a></span></p></td>
 <td>Payload MPEG audio as RTP packets (RFC 2038)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmparobustdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmparobustdepay.html" title="rtpmparobustdepay">rtpmparobustdepay</a></span></p></td>
 <td>Extracts MPEG audio from RTP packets (RFC 5219)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmpvdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmpvdepay.html" title="rtpmpvdepay">rtpmpvdepay</a></span></p></td>
 <td>Extracts MPEG video from RTP packets (RFC 2250)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpmpvpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpmpvpay.html" title="rtpmpvpay">rtpmpvpay</a></span></p></td>
 <td>Payload-encodes MPEG2 ES into RTP packets (RFC 2250)</td>
 </tr>
 <tr>
@@ -312,31 +312,31 @@
 <td>Puts Opus audio in RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtppcmadepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtppcmadepay.html" title="rtppcmadepay">rtppcmadepay</a></span></p></td>
 <td>Extracts PCMA audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtppcmapay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtppcmapay.html" title="rtppcmapay">rtppcmapay</a></span></p></td>
 <td>Payload-encodes PCMA audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtppcmudepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtppcmudepay.html" title="rtppcmudepay">rtppcmudepay</a></span></p></td>
 <td>Extracts PCMU audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtppcmupay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtppcmupay.html" title="rtppcmupay">rtppcmupay</a></span></p></td>
 <td>Payload-encodes PCMU audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpqcelpdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpqcelpdepay.html" title="rtpqcelpdepay">rtpqcelpdepay</a></span></p></td>
 <td>Extracts QCELP (PureVoice) audio from RTP packets (RFC 2658)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpqdm2depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpqdm2depay.html" title="rtpqdm2depay">rtpqdm2depay</a></span></p></td>
 <td>Extracts QDM2 audio from RTP packets (no RFC)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpsbcdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsbcdepay.html" title="rtpsbcdepay">rtpsbcdepay</a></span></p></td>
 <td>Extracts SBC audio from RTP packets</td>
 </tr>
 <tr>
@@ -344,71 +344,71 @@
 <td>Payload SBC audio as RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpsirendepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsirendepay.html" title="rtpsirendepay">rtpsirendepay</a></span></p></td>
 <td>Extracts Siren audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpsirenpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsirenpay.html" title="rtpsirenpay">rtpsirenpay</a></span></p></td>
 <td>Packetize Siren audio streams into RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpspeexdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpspeexdepay.html" title="rtpspeexdepay">rtpspeexdepay</a></span></p></td>
 <td>Extracts Speex audio from RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpspeexpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpspeexpay.html" title="rtpspeexpay">rtpspeexpay</a></span></p></td>
 <td>Payload-encodes Speex audio into a RTP packet</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpstreamdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpstreamdepay.html" title="rtpstreamdepay">rtpstreamdepay</a></span></p></td>
 <td>Depayloads RTP/RTCP packets for streaming protocols according to RFC4571</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpstreampay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpstreampay.html" title="rtpstreampay">rtpstreampay</a></span></p></td>
 <td>Payloads RTP/RTCP packets for streaming protocols according to RFC4571</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpsv3vdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpsv3vdepay.html" title="rtpsv3vdepay">rtpsv3vdepay</a></span></p></td>
 <td>Extracts SVQ3 video from RTP packets (no RFC)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtptheoradepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtptheoradepay.html" title="rtptheoradepay">rtptheoradepay</a></span></p></td>
 <td>Extracts Theora video from RTP packets (draft-01 of RFC XXXX)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtptheorapay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtptheorapay.html" title="rtptheorapay">rtptheorapay</a></span></p></td>
 <td>Payload-encode Theora video into RTP packets (draft-01 RFC XXXX)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvorbisdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvorbisdepay.html" title="rtpvorbisdepay">rtpvorbisdepay</a></span></p></td>
 <td>Extracts Vorbis Audio from RTP packets (RFC 5215)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvorbispay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvorbispay.html" title="rtpvorbispay">rtpvorbispay</a></span></p></td>
 <td>Payload-encode Vorbis audio into RTP packets (RFC 5215)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvp8depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvp8depay.html" title="rtpvp8depay">rtpvp8depay</a></span></p></td>
 <td>Extracts VP8 video from RTP packets)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvp8pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvp8pay.html" title="rtpvp8pay">rtpvp8pay</a></span></p></td>
 <td>Puts VP8 video in RTP packets</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvp9depay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvp9depay.html" title="rtpvp9depay">rtpvp9depay</a></span></p></td>
 <td>Extracts VP9 video from RTP packets)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvp9pay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvp9pay.html" title="rtpvp9pay">rtpvp9pay</a></span></p></td>
 <td>Puts VP9 video in RTP packets)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvrawdepay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvrawdepay.html" title="rtpvrawdepay">rtpvrawdepay</a></span></p></td>
 <td>Extracts raw video from RTP packets (RFC 4175)</td>
 </tr>
 <tr>
-<td><p><span class="term">rtpvrawpay</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtpvrawpay.html" title="rtpvrawpay">rtpvrawpay</a></span></p></td>
 <td>Payload raw video as RTP packets (RFC 4175)</td>
 </tr>
 </tbody>
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 4d6e4ad..0aec980 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtpmanager.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -88,7 +88,7 @@
 <td>Parses codec streams transmitted in the same RTP session</td>
 </tr>
 <tr>
-<td><p><span class="term">rtprtxqueue</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-rtprtxqueue.html" title="rtprtxqueue">rtprtxqueue</a></span></p></td>
 <td>Keep RTP packets in a queue for retransmission</td>
 </tr>
 <tr>
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 670bd1c..dc60652 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-rtsp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-shapewipe.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
index b960cf7..19872a1 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shapewipe.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-shout2send.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
index 08151ce..fe27fe4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-shout2send.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-smpte.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
index 45919a9..460266c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-smpte.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-soup.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
index bf00afd..34d572f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-soup.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,7 +68,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term">souphttpclientsink</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html" title="souphttpclientsink">souphttpclientsink</a></span></p></td>
 <td>Sends streams to HTTP server via PUT</td>
 </tr>
 <tr>
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 16c822c..d44df4f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-spectrum.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-speex.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
index 0dd91ae..5969499 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-speex.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-taglib.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
index 40cf7a3..f32fcef 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-taglib.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-udp.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
index 20c4cc9..5481ed5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-udp.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -68,7 +68,7 @@
 </colgroup>
 <tbody>
 <tr>
-<td><p><span class="term">dynudpsink</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-dynudpsink.html" title="dynudpsink">dynudpsink</a></span></p></td>
 <td>Send data over the network via UDP with packet destinations picked up dynamically from meta on the buffers passed</td>
 </tr>
 <tr>
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 41bb4e0..f534f92 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-video4linux2.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-videobox.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
index 1c62110..b86ca50 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videobox.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
index 2fd557d..c73e404 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videocrop.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-videofilter.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
index e49f053..b6767bc 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videofilter.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -80,7 +80,7 @@
 <td>Flips and rotates video</td>
 </tr>
 <tr>
-<td><p><span class="term">videomedian</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-videomedian.html" title="videomedian">videomedian</a></span></p></td>
 <td>Apply a median filter to an image</td>
 </tr>
 </tbody>
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 264ddeb..d7e7090 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-videomixer.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-vpx.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
index e9eb83e..41520c5 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-vpx.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.90</td>
 </tr>
 <tr>
 <td><p><span class="term">run-time license</span></p></td>
@@ -76,11 +76,11 @@
 <td>Encode VP8 video streams</td>
 </tr>
 <tr>
-<td><p><span class="term">vp9dec</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-vp9dec.html" title="vp9dec">vp9dec</a></span></p></td>
 <td>Decode VP9 video streams</td>
 </tr>
 <tr>
-<td><p><span class="term">vp9enc</span></p></td>
+<td><p><span class="term"><a class="link" href="gst-plugins-good-plugins-vp9enc.html" title="vp9enc">vp9enc</a></span></p></td>
 <td>Encode VP9 video streams</td>
 </tr>
 </tbody>
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 9640403..c0c178a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavenc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-wavpack.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
index cce2969..a98319b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavpack.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-wavparse.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
index 2f49542..cd6cf63 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-wavparse.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-ximagesrc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
index d4f3534..38512a0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-ximagesrc.html
@@ -42,7 +42,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
index 281b243..f60486b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-plugin-y4menc.html
@@ -7,7 +7,6 @@
 <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-ximagesrc.html" title="ximagesrc">
-<link rel="next" href="ch03.html" title="gst-plugins-good Base Classes">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -17,7 +16,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-ximagesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="ch03.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><img src="right-insensitive.png" width="16" height="16" border="0"></td>
 </tr></table>
 <div class="refentry">
 <a name="gst-plugins-good-plugins-plugin-y4menc"></a><div class="titlepage"></div>
@@ -42,7 +41,7 @@
 </tr>
 <tr>
 <td><p><span class="term">version</span></p></td>
-<td>1.8.3</td>
+<td>1.9.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-pngdec.html b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
index 8c1558d..2ce4134 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngdec.html
@@ -57,10 +57,12 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pngdec.description"></a><h2>Description</h2>
+<p>Decodes png images. If there is no framerate set on sink caps, it sends EOS
+after the first picture.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.99.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.109.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +88,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.99.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.109.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-pngenc.html b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
index e6cd2b4..8d4b82d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pngenc.html
@@ -87,10 +87,11 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pngenc.description"></a><h2>Description</h2>
+<p>Encodes png images.</p>
 <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.110.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +117,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.100.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.110.8.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-progressreport.html b/docs/plugins/html/gst-plugins-good-plugins-progressreport.html
index 1494cce..13c3687 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 @@
 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.101.7.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.111.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.101.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.111.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.101.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.111.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 12144be..e59f6e2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-pulsesink.html
@@ -124,10 +124,49 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pulsesink.description"></a><h2>Description</h2>
+<p>This element outputs audio to a</p>
+<a class="ulink" href="" target="_top">PulseAudio sound server</a>.
+<div class="refsect2">
+<a name="id-1.2.112.8.4"></a><h3>Example pipelines</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>sine<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> vorbisdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play an Ogg/Vorbis file.
+<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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> volume volume<span class="gtkdoc opt">=</span><span class="number">0.4</span> <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play a 440Hz sine wave.
+<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 audiotestsrc <span class="gtkdoc opt">!</span> pulsesink stream<span class="gtkdoc opt">-</span>properties<span class="gtkdoc opt">=</span><span class="string">&quot;props,media.title=test&quot;</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Play a sine wave and set a stream property. The property can be checked
+with "pactl list".
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.102.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.112.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -153,7 +192,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.102.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.112.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -266,7 +305,29 @@
 <div class="refsect2">
 <a name="GstPulseSink--stream-properties"></a><h3>The <code class="literal">“stream-properties”</code> property</h3>
 <pre class="programlisting">  “stream-properties”        <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
-<p>list of pulseaudio stream properties.</p>
+<p>List of pulseaudio stream properties. A list of defined properties can be
+found in the <a class="ulink" href="http://0pointer.de/lennart/projects/pulseaudio/doxygen/proplist_8h.html" target="_top">pulseaudio api docs</a>.</p>
+<p>Below is an example for registering as a music application to pulseaudio.</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstStructure <span class="gtkdoc opt">*</span>props<span class="gtkdoc opt">;</span>
+
+props <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#gst-structure-from-string">gst_structure_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;props,media.role=music&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span>pulse<span class="gtkdoc opt">,</span> <span class="string">&quot;stream-properties&quot;</span><span class="gtkdoc opt">,</span> props<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+gst_structure_free</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
@@ -286,6 +347,10 @@
 <p>Default value: NULL</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pulsesink.see-also"></a><h2>See Also</h2>
+<p>pulsesrc</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pulsesrc.html
index 92f604c..5873be9 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-qtdemux.html" title="qtdemux">
+<link rel="next" href="gst-plugins-good-plugins-pushfilesrc.html" title="pushfilesrc">
 <meta name="generator" content="GTK-Doc V1.25 (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-qtdemux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-pushfilesrc.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>
@@ -131,10 +131,26 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-pulsesrc.description"></a><h2>Description</h2>
+<p>This element captures audio from a</p>
+<a class="ulink" href="" target="_top">PulseAudio sound server</a>.
+<div class="refsect2">
+<a name="id-1.2.113.8.4"></a><h3>Example pipelines</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 pulsesrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>alsasrc<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Record from a sound card using pulseaudio and encode to Ogg/Vorbis.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.103.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.113.8.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -160,7 +176,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.103.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.113.8.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -236,14 +252,36 @@
 <div class="refsect2">
 <a name="GstPulseSrc--stream-properties"></a><h3>The <code class="literal">“stream-properties”</code> property</h3>
 <pre class="programlisting">  “stream-properties”        <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
-<p>list of pulseaudio stream properties.</p>
+<p>List of pulseaudio stream properties. A list of defined properties can be
+found in the <a class="ulink" href="" target="_top">pulseaudio api docs</a>.</p>
+<p>Below is an example for registering as a music application to pulseaudio.</p>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4
+5</pre></td>
+        <td class="listing_code"><pre class="programlisting">GstStructure <span class="gtkdoc opt">*</span>props<span class="gtkdoc opt">;</span>
+
+props <span class="gtkdoc opt">=</span> <span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#gst-structure-from-string">gst_structure_from_string</a></span> <span class="gtkdoc opt">(</span><span class="string">&quot;props,media.role=music&quot;</span><span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#g-object-set">g_object_set</a></span> <span class="gtkdoc opt">(</span>pulse<span class="gtkdoc opt">,</span> <span class="string">&quot;stream-properties&quot;</span><span class="gtkdoc opt">,</span> props<span class="gtkdoc opt">,</span> NULL<span class="gtkdoc opt">);</span>
+<span class="function"><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#gst-structure-free">gst_structure_free</a></span> <span class="gtkdoc opt">(</span>props<span class="gtkdoc opt">);</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+<p></p>
 <p>Flags: Read / Write</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstPulseSrc--mute"></a><h3>The <code class="literal">“mute”</code> property</h3>
 <pre class="programlisting">  “mute”                     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Mute state of this stream.</p>
+<p>Whether the stream is muted or not.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -251,7 +289,7 @@
 <div class="refsect2">
 <a name="GstPulseSrc--source-output-index"></a><h3>The <code class="literal">“source-output-index”</code> property</h3>
 <pre class="programlisting">  “source-output-index”      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>The index of the PulseAudio source output corresponding to this record stream.</p>
+<p>The index of the PulseAudio source output corresponding to this element.</p>
 <p>Flags: Read</p>
 <p>Default value: 4294967295</p>
 </div>
@@ -259,7 +297,7 @@
 <div class="refsect2">
 <a name="GstPulseSrc--volume"></a><h3>The <code class="literal">“volume”</code> property</h3>
 <pre class="programlisting">  “volume”                   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
-<p>Linear volume of this stream, 1.0=100%.</p>
+<p>The volume of the record stream.</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: [0,10]</p>
 <p>Default value: 1</p>
@@ -268,7 +306,7 @@
 <div class="refsect2">
 <a name="GstPulseSrc--client-name"></a><h3>The <code class="literal">“client-name”</code> property</h3>
 <pre class="programlisting">  “client-name”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>The PulseAudio client_name_to_use.</p>
+<p>The PulseAudio client name to use.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "lt-gst-plugins-good-plugins-scan"</p>
 </div>
@@ -281,6 +319,10 @@
 <p>Default value: NULL</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pulsesrc.see-also"></a><h2>See Also</h2>
+<p>pulsesink</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html
new file mode 100644
index 0000000..39e1957
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-pushfilesrc.html
@@ -0,0 +1,275 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>pushfilesrc: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<meta name="generator" content="GTK-Doc V1.25 (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-pushfilesrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-pushfilesrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-pushfilesrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-pushfilesrc.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-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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-pushfilesrc"></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-pushfilesrc.top_of_page"></a>pushfilesrc</span></h2>
+<p>pushfilesrc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--applied-rate" title="The “applied-rate” property">applied-rate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--initial-timestamp" title="The “initial-timestamp” property">initial-timestamp</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--location" title="The “location” property">location</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--rate" title="The “rate” property">rate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--start-time" title="The “start-time” property">start-time</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--stream-time" title="The “stream-time” property">stream-time</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-pushfilesrc.html#GstPushFileSrc--time-segment" title="The “time-segment” property">time-segment</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstPushFileSrc"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-pushfilesrc.html#GstPushFileSrc-struct" title="struct GstPushFileSrc">GstPushFileSrc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstBin.html#GstBin-struct">GstBin</a>
+                    <span class="lineart">╰──</span> GstPushFileSrc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstPushFileSrc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstChildProxy.html#GstChildProxy-struct">GstChildProxy</a> and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0gstreamer-GstUriHandler.html#GstURIHandler-struct">GstURIHandler</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.description"></a><h2>Description</h2>
+<p>This element is only useful for debugging purposes. It implements an URI
+protocol handler for the 'pushfile' protocol and behaves like a file source
+element that cannot be activated in pull-mode. This makes it very easy to
+debug demuxers or decoders that can operate both pull and push-based in
+connection with the playbin element (which creates a source based on the
+URI passed).</p>
+<div class="refsect2">
+<a name="id-1.2.114.8.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>m playbin uri<span class="gtkdoc opt">=</span>pushfile<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///home/you/some/file.ogg</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This plays back the given file using playbin, with the demuxer operating
+push-based.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.114.8.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Tim-Philipp Müller &lt;tim centricular net&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Testing</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.114.8.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>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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstPushFileSrc-struct"></a><h3>struct GstPushFileSrc</h3>
+<pre class="programlisting">struct GstPushFileSrc;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstPushFileSrc--applied-rate"></a><h3>The <code class="literal">“applied-rate”</code> property</h3>
+<pre class="programlisting">  “applied-rate”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Applied rate to use in TIME SEGMENT.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= G_MINDOUBLE</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--initial-timestamp"></a><h3>The <code class="literal">“initial-timestamp”</code> property</h3>
+<pre class="programlisting">  “initial-timestamp”        <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
+<p>Initial Buffer Timestamp (if time-segment TRUE).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 18446744073709551615</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--location"></a><h3>The <code class="literal">“location”</code> property</h3>
+<pre class="programlisting">  “location”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>Location of the file to read.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--rate"></a><h3>The <code class="literal">“rate”</code> property</h3>
+<pre class="programlisting">  “rate”                     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
+<p>Rate to use in TIME SEGMENT.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= G_MINDOUBLE</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--start-time"></a><h3>The <code class="literal">“start-time”</code> property</h3>
+<pre class="programlisting">  “start-time”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>Initial Start Time (if time-segment TRUE).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--stream-time"></a><h3>The <code class="literal">“stream-time”</code> property</h3>
+<pre class="programlisting">  “stream-time”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>Initial Stream Time (if time-segment TRUE).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstPushFileSrc--time-segment"></a><h3>The <code class="literal">“time-segment”</code> property</h3>
+<pre class="programlisting">  “time-segment”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Emit TIME SEGMENTS.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-pushfilesrc.see-also"></a><h2>See Also</h2>
+<p>filesrc</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
index 5edf8d7..c22534f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtdemux.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-good-plugins-pushfilesrc.html" title="pushfilesrc">
 <link rel="next" href="gst-plugins-good-plugins-qtmoovrecover.html" title="qtmoovrecover">
 <meta name="generator" content="GTK-Doc V1.25 (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-pulsesrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-pushfilesrc.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">
@@ -60,7 +60,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.104.6.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.115.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -79,7 +79,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.104.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.115.6.5.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.104.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.115.6.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 c6a6702..9f858d2 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmoovrecover.html
@@ -35,33 +35,6 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
-<a name="gst-plugins-good-plugins-qtmoovrecover.functions"></a><h2>Functions</h2>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="150px" class="functions_return">
-<col class="functions_name">
-</colgroup>
-<tbody>
-<tr>
-<td class="function_type">
-<a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-get-type" title="gst_qt_moov_recover_get_type ()">gst_qt_moov_recover_get_type</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-<tr>
-<td class="function_type">
-<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-</td>
-<td class="function_name">
-<a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#gst-qt-moov-recover-register" title="gst_qt_moov_recover_register ()">gst_qt_moov_recover_register</a> <span class="c_punctuation">()</span>
-</td>
-</tr>
-</tbody>
-</table></div>
-</div>
-<div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.properties"></a><h2>Properties</h2>
 <div class="informaltable"><table class="informaltable" border="0">
 <colgroup>
@@ -103,16 +76,10 @@
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody>
-<tr>
+<tbody><tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecover-struct" title="struct GstQTMoovRecover">GstQTMoovRecover</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">struct</td>
-<td class="function_name"><a class="link" href="gst-plugins-good-plugins-qtmoovrecover.html#GstQTMoovRecoverClass" title="struct GstQTMoovRecoverClass">GstQTMoovRecoverClass</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -135,7 +102,7 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.105.9.2"></a><h3>Example pipelines</h3>
+<a name="id-1.2.116.8.2"></a><h3>Example pipelines</h3>
 <p>
 This element recovers quicktime files created with qtmux using the moov
 recovery feature.
@@ -151,7 +118,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.105.9.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.116.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -177,23 +144,13 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.105.9.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.116.8.3.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.functions_details"></a><h2>Functions</h2>
-<div class="refsect2">
-<a name="gst-qt-moov-recover-get-type"></a><h3>gst_qt_moov_recover_get_type ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/gobjectgobject-Type-Information.html#GType"><span class="returnvalue">GType</span></a>
-gst_qt_moov_recover_get_type (<em class="parameter"><code><span class="type">void</span></code></em>);</pre>
-</div>
-<hr>
-<div class="refsect2">
-<a name="gst-qt-moov-recover-register"></a><h3>gst_qt_moov_recover_register ()</h3>
-<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>
-gst_qt_moov_recover_register (<em class="parameter"><code><a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPlugin.html#GstPlugin-struct"><span class="type">GstPlugin</span></a> *plugin</code></em>);</pre>
-</div>
+<p></p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.other_details"></a><h2>Types and Values</h2>
@@ -201,14 +158,6 @@
 <a name="GstQTMoovRecover-struct"></a><h3>struct GstQTMoovRecover</h3>
 <pre class="programlisting">struct GstQTMoovRecover;</pre>
 </div>
-<hr>
-<div class="refsect2">
-<a name="GstQTMoovRecoverClass"></a><h3>struct GstQTMoovRecoverClass</h3>
-<pre class="programlisting">struct GstQTMoovRecoverClass {
-  GstPipelineClass parent_class;
-};
-</pre>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmoovrecover.property-details"></a><h2>Property Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
index 29518fc..d7a4e41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-qtmux.html
@@ -139,7 +139,7 @@
 <a name="gst-plugins-good-plugins-qtmux.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
 <p>
 GstQTMux implements
- <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a> and  GstTagXmpWriter.</p>
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>,  GstTagXmpWriter and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a>.</p>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-qtmux.description"></a><h2>Description</h2>
@@ -184,7 +184,7 @@
 <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.106.8.9"></a><h3>Example pipelines</h3>
+<a name="id-1.2.117.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.106.8.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.117.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.106.8.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.117.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 f1907dd..15913cd 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-quarktv.html
@@ -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.107.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.118.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.107.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.118.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.107.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.118.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 a114610..6265900 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-radioactv.html
@@ -99,7 +99,7 @@
 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.108.7.5"></a><h3>Example launch line</h3>
+<a name="id-1.2.119.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.108.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.119.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.108.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.119.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 a05cc52..130b585 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.109.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.120.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.109.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.120.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.109.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.120.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 3d8e0fc..ab16ff7 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 @@
 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.110.7.6"></a><h3>Example launch lines</h3>
+<a name="id-1.2.121.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.110.7.7"></a><h3>Acknowledgements</h3>
+<a name="id-1.2.121.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.110.7.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.121.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.110.7.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.121.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 57a113b..43cedbd 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.111.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.122.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.111.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.122.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.111.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.122.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 d2bc6eb..03a637c 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 @@
 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.112.8.8"></a><h3>Example launch line</h3>
+<a name="id-1.2.123.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.112.8.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.123.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.112.8.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.123.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 0309656..63ba18d 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-rtpac3depay.html" title="rtpac3depay">
+<link rel="next" href="gst-plugins-good-plugins-rndbuffersize.html" title="rndbuffersize">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpac3depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rndbuffersize.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.113.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.124.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.113.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.124.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.113.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.124.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-rndbuffersize.html b/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html
new file mode 100644
index 0000000..8f66ee6
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rndbuffersize.html
@@ -0,0 +1,129 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rndbuffersize: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<meta name="generator" content="GTK-Doc V1.25 (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-rndbuffersize.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-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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rndbuffersize"></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-rndbuffersize.top_of_page"></a>rndbuffersize</span></h2>
+<p>rndbuffersize</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rndbuffersize.description"></a><h2>Description</h2>
+<p>This element pulls buffers with random sizes from the source.</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.125.3.3.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Stefan Kost &lt;stefan.kost@nokia.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Testing</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.125.3.3.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>ANY</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rndbuffersize.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rndbuffersize.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
index 86c6f4e..4eaea38 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL16depay.html
@@ -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.138.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.172.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.138.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.172.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.138.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.172.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 8e6d972..663e269 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-rtpmux.html" title="rtpmux">
+<link rel="next" href="gst-plugins-good-plugins-rtpL24depay.html" title="rtpL24depay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpmux.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpL24depay.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.139.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.173.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.139.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.173.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.139.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.173.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-rtpL24depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.html
new file mode 100644
index 0000000..77248a8
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL24depay.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>rtpL24depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpL24pay.html" title="rtpL24pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpL24depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL24depay.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-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-rtpL24pay.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-rtpL24depay"></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-rtpL24depay.top_of_page"></a>rtpL24depay</span></h2>
+<p>rtpL24depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpL24Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpL24depay.html#GstRtpL24Depay-struct" title="struct GstRtpL24Depay">GstRtpL24Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpL24Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.description"></a><h2>Description</h2>
+<p>Extract raw audio from RTP packets according to RFC 3190, section 4.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt</p>
+<div class="refsect2">
+<a name="id-1.2.174.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)audio, clock-rate=(int)44100, encoding-name=(string)L24, encoding-params=(string)1, channels=(int)1, payload=(int)96'</span> <span class="gtkdoc opt">!</span> rtpL24depay <span class="gtkdoc opt">!</span> pulsesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will depayload an RTP raw audio stream. Refer to
+the rtpL24pay example to create the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.174.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>Zeeshan Ali &lt;zak147@yahoo.com&gt;,Wim Taymans &lt;wim.taymans@gmail.com&gt;,David Holroyd &lt;dave@badgers-in-foil.co.uk&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.174.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)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L24</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)S24BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpL24Depay-struct"></a><h3>struct GstRtpL24Depay</h3>
+<pre class="programlisting">struct GstRtpL24Depay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24depay.see-also"></a><h2>See Also</h2>
+<p>rtpL24pay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html
new file mode 100644
index 0000000..6e3188e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpL24pay.html
@@ -0,0 +1,178 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpL24pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpL24depay.html" title="rtpL24depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp1sdepay.html" title="rtpmp1sdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpL24pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpL24pay.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-rtpL24depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp1sdepay.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-rtpL24pay"></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-rtpL24pay.top_of_page"></a>rtpL24pay</span></h2>
+<p>rtpL24pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpL24Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpL24pay.html#GstRtpL24Pay-struct" title="struct GstRtpL24Pay">GstRtpL24Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpL24Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.description"></a><h2>Description</h2>
+<p>Payload raw 24-bit audio into RTP packets according to RFC 3190, section 4.
+For detailed information see: http://www.rfc-editor.org/rfc/rfc3190.txt</p>
+<div class="refsect2">
+<a name="id-1.2.175.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> <span class="gtkdoc opt">-</span>v audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> rtpL24pay <span class="gtkdoc opt">!</span> udpsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will payload raw audio. Refer to
+the rtpL24depay example to depayload and play the RTP stream.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.175.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>Wim Taymans &lt;wim.taymans@gmail.com&gt;,David Holroyd &lt;dave@badgers-in-foil.co.uk&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.175.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>audio/x-raw, format=(string)S24BE, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)L24, channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpL24Pay-struct"></a><h3>struct GstRtpL24Pay</h3>
+<pre class="programlisting">struct GstRtpL24Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpL24pay.see-also"></a><h2>See Also</h2>
+<p>rtpL24depay</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpac3depay.html
index 9b32dd6..daad5a8 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.79.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="prev" href="gst-plugins-good-plugins-rndbuffersize.html" title="rndbuffersize">
 <link rel="next" href="gst-plugins-good-plugins-rtpac3pay.html" title="rtpac3pay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rippletv.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rndbuffersize.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.114.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.126.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 @@
 <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.126.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.114.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.126.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 b109fe6..6510437 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.115.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.127.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 @@
 <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.127.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.115.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.127.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 1cd6882..76f5f8d 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.116.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.128.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.116.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.128.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.116.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.128.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 2658347..17e1e1c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpamrpay.html
@@ -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.117.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.129.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.117.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.129.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.117.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.129.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 20fb327..842020c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbin.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpdec.html" title="rtpdec">
+<link rel="prev" href="gst-plugins-good-plugins-rtpamrpay.html" title="rtpamrpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpbvdepay.html" title="rtpbvdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpdec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></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="n" href="gst-plugins-good-plugins-rtpbvdepay.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>
@@ -71,7 +71,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode" title="enum RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--buffer-mode" title="The “buffer-mode” property">buffer-mode</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -86,7 +86,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRTCPSync" title="enum GstRTCPSync"><span class="type">GstRTCPSync</span></a></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#GstRTCPSync"><span class="type">GstRTCPSync</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync" title="The “rtcp-sync” property">rtcp-sync</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -140,6 +140,16 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rtcp-sync-send-time" title="The “rtcp-sync-send-time” property">rtcp-sync-send-time</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--rfc7273-sync" title="The “rfc7273-sync” property">rfc7273-sync</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin--max-streams" title="The “max-streams” property">max-streams</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -296,20 +306,10 @@
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody>
-<tr>
+<tbody><tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRtpBin-struct" title="struct GstRtpBin">GstRtpBin</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode" title="enum RTPJitterBufferMode">RTPJitterBufferMode</a></td>
-</tr>
-<tr>
-<td class="datatype_keyword">enum</td>
-<td class="function_name"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRTCPSync" title="enum GstRTCPSync">GstRTCPSync</a></td>
-</tr>
-</tbody>
+</tr></tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -385,7 +385,7 @@
 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.128.9.12"></a><h3>Example pipelines</h3>
+<a name="id-1.2.130.9.12"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -477,7 +477,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.128.9.13.1"></a><h3>Element Information</h3>
+<a name="id-1.2.130.9.13.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -503,7 +503,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.128.9.13.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.130.9.13.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -677,92 +677,6 @@
 <a name="GstRtpBin-struct"></a><h3>struct GstRtpBin</h3>
 <pre class="programlisting">struct GstRtpBin;</pre>
 </div>
-<hr>
-<div class="refsect2">
-<a name="RTPJitterBufferMode"></a><h3>enum RTPJitterBufferMode</h3>
-<p>RTP_JITTER_BUFFER_MODE_NONE: don't do any skew correction, outgoing
-   timestamps are calculated directly from the RTP timestamps. This mode is
-   good for recording but not for real-time applications.
-RTP_JITTER_BUFFER_MODE_SLAVE: calculate the skew between sender and receiver
-   and produce smoothed adjusted outgoing timestamps. This mode is good for
-   low latency communications.
-RTP_JITTER_BUFFER_MODE_BUFFER: buffer packets between low/high watermarks.
-   This mode is good for streaming communication.
-RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized,
-   like <a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTP-JITTER-BUFFER-MODE-SLAVE:CAPS"><span class="type">RTP_JITTER_BUFFER_MODE_SLAVE</span></a> but skew is assumed to be 0. Good for
-   low latency communication when sender and receiver clocks are
-   synchronized and there is thus no clock skew.
-RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.</p>
-<p>The different buffer modes for a jitterbuffer.</p>
-<div class="refsect3">
-<a name="RTPJitterBufferMode.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="RTP-JITTER-BUFFER-MODE-NONE:CAPS"></a>RTP_JITTER_BUFFER_MODE_NONE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="RTP-JITTER-BUFFER-MODE-SLAVE:CAPS"></a>RTP_JITTER_BUFFER_MODE_SLAVE</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="RTP-JITTER-BUFFER-MODE-BUFFER:CAPS"></a>RTP_JITTER_BUFFER_MODE_BUFFER</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="RTP-JITTER-BUFFER-MODE-SYNCED:CAPS"></a>RTP_JITTER_BUFFER_MODE_SYNCED</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="RTP-JITTER-BUFFER-MODE-LAST:CAPS"></a>RTP_JITTER_BUFFER_MODE_LAST</p></td>
-<td> </td>
-<td> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
-<hr>
-<div class="refsect2">
-<a name="GstRTCPSync"></a><h3>enum GstRTCPSync</h3>
-<div class="refsect3">
-<a name="GstRTCPSync.members"></a><h4>Members</h4>
-<div class="informaltable"><table class="informaltable" width="100%" border="0">
-<colgroup>
-<col width="300px" class="enum_members_name">
-<col class="enum_members_description">
-<col width="200px" class="enum_members_annotations">
-</colgroup>
-<tbody>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RTP-BIN-RTCP-SYNC-ALWAYS:CAPS"></a>GST_RTP_BIN_RTCP_SYNC_ALWAYS</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RTP-BIN-RTCP-SYNC-INITIAL:CAPS"></a>GST_RTP_BIN_RTCP_SYNC_INITIAL</p></td>
-<td> </td>
-<td> </td>
-</tr>
-<tr>
-<td class="enum_member_name"><p><a name="GST-RTP-BIN-RTCP-SYNC-RTP:CAPS"></a>GST_RTP_BIN_RTCP_SYNC_RTP</p></td>
-<td> </td>
-<td> </td>
-</tr>
-</tbody>
-</table></div>
-</div>
-</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbin.property-details"></a><h2>Property Details</h2>
@@ -807,7 +721,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRtpBin--buffer-mode"></a><h3>The <code class="literal">“buffer-mode”</code> property</h3>
-<pre class="programlisting">  “buffer-mode”              <a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode" title="enum RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></pre>
+<pre class="programlisting">  “buffer-mode”              <a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></pre>
 <p>Control the buffering and timestamping mode used by the jitterbuffer.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Slave receiver to sender clock</p>
@@ -835,7 +749,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRtpBin--rtcp-sync"></a><h3>The <code class="literal">“rtcp-sync”</code> property</h3>
-<pre class="programlisting">  “rtcp-sync”                <a class="link" href="gst-plugins-good-plugins-rtpbin.html#GstRTCPSync" title="enum GstRTCPSync"><span class="type">GstRTCPSync</span></a></pre>
+<pre class="programlisting">  “rtcp-sync”                <a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#GstRTCPSync"><span class="type">GstRTCPSync</span></a></pre>
 <p>If not synchronizing (directly) to the NTP clock, determines how to sync
 the various streams.</p>
 <p>Flags: Read / Write</p>
@@ -926,6 +840,22 @@
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpBin--rfc7273-sync"></a><h3>The <code class="literal">“rfc7273-sync”</code> property</h3>
+<pre class="programlisting">  “rfc7273-sync”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpBin--max-streams"></a><h3>The <code class="literal">“max-streams”</code> property</h3>
+<pre class="programlisting">  “max-streams”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The maximum number of streams to create for one session.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 4294967295</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbin.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
index 1d31fdb..c218f53 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpbvdepay.html
@@ -15,7 +15,8 @@
 <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-rtpbvdepay.description" class="shortcut">Description</a></span>
+                  <a href="#gst-plugins-good-plugins-rtpbvdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpbvdepay.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>
@@ -31,6 +32,29 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
+<a name="GstRTPBVDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpbvdepay.html#GstRTPBVDepay-struct" title="struct GstRTPBVDepay">GstRTPBVDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRTPBVDepay
+</pre>
+</div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvdepay.description"></a><h2>Description</h2>
 <p>Extract BroadcomVoice audio from RTP packets according to RFC 4298.
@@ -38,7 +62,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.119.3.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.131.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -64,7 +88,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.119.3.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.131.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -126,6 +150,10 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPBVDepay-struct"></a><h3>struct GstRTPBVDepay</h3>
+<pre class="programlisting">struct GstRTPBVDepay;</pre>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvdepay.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpbvpay.html
index c9dd449..d4b6ac0 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-rtph261depay.html" title="rtph261depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpceltdepay.html" title="rtpceltdepay">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -15,12 +15,13 @@
 <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-rtpbvpay.description" class="shortcut">Description</a></span>
+                  <a href="#gst-plugins-good-plugins-rtpbvpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpbvpay.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-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-rtph261depay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpceltdepay.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>
@@ -31,6 +32,30 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
+<a name="GstRTPBVPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpbvpay.html#GstRTPBVPay-struct" title="struct GstRTPBVPay">GstRTPBVPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpbvpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRTPBVPay
+</pre>
+</div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvpay.description"></a><h2>Description</h2>
 <p>Payload BroadcomVoice audio into RTP packets according to RFC 4298.
@@ -38,7 +63,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.120.3.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.132.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -64,7 +89,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.120.3.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.132.6.3.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -126,6 +151,10 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPBVPay-struct"></a><h3>struct GstRTPBVPay</h3>
+<pre class="programlisting">struct GstRTPBVPay;</pre>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpbvpay.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html
new file mode 100644
index 0000000..f3ac741
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpceltdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpceltdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpceltpay.html" title="rtpceltpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpceltdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpceltdepay.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-rtpceltpay.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-rtpceltdepay"></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-rtpceltdepay.top_of_page"></a>rtpceltdepay</span></h2>
+<p>rtpceltdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpCELTDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpceltdepay.html#GstRtpCELTDepay-struct" title="struct GstRtpCELTDepay">GstRtpCELTDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpCELTDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.133.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.133.6.2.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, clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</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-celt</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpCELTDepay-struct"></a><h3>struct GstRtpCELTDepay</h3>
+<pre class="programlisting">struct GstRtpCELTDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html
new file mode 100644
index 0000000..545953f
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpceltpay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpceltpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpceltdepay.html" title="rtpceltdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpdec.html" title="rtpdec">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpceltpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpceltpay.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-rtpceltdepay.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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpceltpay"></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-rtpceltpay.top_of_page"></a>rtpceltpay</span></h2>
+<p>rtpceltpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpCELTPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpceltpay.html#GstRtpCELTPay-struct" title="struct GstRtpCELTPay">GstRtpCELTPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpCELTPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.134.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.134.6.2.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>audio/x-celt, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], frame-size=(int)[ 64, 512 ]</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 32000, 48000 ], encoding-name=(string)CELT</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpceltpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpCELTPay-struct"></a><h3>struct GstRtpCELTPay</h3>
+<pre class="programlisting">struct GstRtpCELTPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
index 29b0d97..fb924e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdec.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpceltpay.html" title="rtpceltpay">
 <link rel="next" href="gst-plugins-good-plugins-rtpdtmfdepay.html" title="rtpdtmfdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-rtpceltpay.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">
@@ -130,7 +130,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.129.8.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.135.8.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -156,7 +156,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.129.8.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.135.8.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-rtpdtmfdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
index 1c6a256..1b3f329 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfdepay.html
@@ -135,7 +135,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.130.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">
@@ -161,7 +161,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.130.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">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
index b6d6832..65e594d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfmux.html
@@ -67,7 +67,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.131.6.4.1"></a><h3>Element Information</h3>
+<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">
@@ -93,7 +93,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.131.6.4.2"></a><h3>Element Pads</h3>
+<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">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdtmfsrc.html
index 1f97996..4056f1c 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-rtpj2kpay.html" title="rtpj2kpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpdvdepay.html" title="rtpdvdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-rtpdvdepay.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.132.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.138.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.132.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.138.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-rtpdvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html
new file mode 100644
index 0000000..dc841c1
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdvdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpdvdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpdvpay.html" title="rtpdvpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpdvdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdvdepay.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-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-rtpdvpay.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-rtpdvdepay"></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-rtpdvdepay.top_of_page"></a>rtpdvdepay</span></h2>
+<p>rtpdvdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPDVDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpdvdepay.html#GstRTPDVDepay-struct" title="struct GstRTPDVDepay">GstRTPDVDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRTPDVDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.139.6.2.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>Marcel Moreaux &lt;marcelm@spacelabs.nl&gt;, Wim Taymans &lt;wim.taymans@gmail.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.139.6.2.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, audio }, encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</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-dv</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPDVDepay-struct"></a><h3>struct GstRTPDVDepay</h3>
+<pre class="programlisting">struct GstRTPDVDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html
new file mode 100644
index 0000000..dec1bdf
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpdvpay.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpdvpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpdvdepay.html" title="rtpdvdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg722depay.html" title="rtpg722depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpdvpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdvpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpdvpay.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-rtpdvdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg722depay.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-rtpdvpay"></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-rtpdvpay.top_of_page"></a>rtpdvpay</span></h2>
+<p>rtpdvpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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"><span class="type">GstDVPayMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpdvpay.html#GstRTPDVPay--mode" title="The “mode” property">mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRTPDVPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpdvpay.html#GstRTPDVPay-struct" title="struct GstRTPDVPay">GstRTPDVPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPDVPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.140.7.2.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>Marcel Moreaux &lt;marcelm@spacelabs.nl&gt;, Wim Taymans &lt;wim.taymans@gmail.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.140.7.2.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-dv</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, audio }, payload=(int)[ 96, 127 ], encoding-name=(string)DV, clock-rate=(int)90000, encode=(string){ SD-VCR/525-60, SD-VCR/625-50, HD-VCR/1125-60, HD-VCR/1250-50, SDL-VCR/525-60, SDL-VCR/625-50, 306M/525-60, 306M/625-50, 314M-25/525-60, 314M-25/625-50, 314M-50/525-60, 314M-50/625-50 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPDVPay-struct"></a><h3>struct GstRTPDVPay</h3>
+<pre class="programlisting">struct GstRTPDVPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpdvpay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRTPDVPay--mode"></a><h3>The <code class="literal">“mode”</code> property</h3>
+<pre class="programlisting">  “mode”                     <span class="type">GstDVPayMode</span></pre>
+<p>The payload mode of payloading.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Video only</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html
new file mode 100644
index 0000000..04f9410
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg722depay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg722depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpdvpay.html" title="rtpdvpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg722pay.html" title="rtpg722pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg722depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg722depay.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-rtpdvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg722pay.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-rtpg722depay"></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-rtpg722depay.top_of_page"></a>rtpg722depay</span></h2>
+<p>rtpg722depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpG722Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg722depay.html#GstRtpG722Depay-struct" title="struct GstRtpG722Depay">GstRtpG722Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpG722Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.141.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.141.6.2.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, clock-rate=(int)8000, encoding-name=(string)G722</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)9, clock-rate=(int)[ 1, 2147483647 ]</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/G722, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG722Depay-struct"></a><h3>struct GstRtpG722Depay</h3>
+<pre class="programlisting">struct GstRtpG722Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html
new file mode 100644
index 0000000..3e85ad0
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg722pay.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg722pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg722depay.html" title="rtpg722depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg723depay.html" title="rtpg723depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg722pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg722pay.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-rtpg722depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg723depay.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-rtpg722pay"></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-rtpg722pay.top_of_page"></a>rtpg722pay</span></h2>
+<p>rtpg722pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpG722Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg722pay.html#GstRtpG722Pay-struct" title="struct GstRtpG722Pay">GstRtpG722Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpG722Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.142.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.142.6.2.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>audio/G722, rate=(int)16000, channels=(int)1</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)audio, encoding-name=(string)G722, payload=(int)9, clock-rate=(int)8000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)G722, payload=(int)[ 96, 127 ], clock-rate=(int)8000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg722pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG722Pay-struct"></a><h3>struct GstRtpG722Pay</h3>
+<pre class="programlisting">struct GstRtpG722Pay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html
new file mode 100644
index 0000000..6b24574
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg723depay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg723depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg722pay.html" title="rtpg722pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg723pay.html" title="rtpg723pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg723depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg723depay.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-rtpg722pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg723pay.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-rtpg723depay"></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-rtpg723depay.top_of_page"></a>rtpg723depay</span></h2>
+<p>rtpg723depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpG723Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg723depay.html#GstRtpG723Depay-struct" title="struct GstRtpG723Depay">GstRtpG723Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpG723Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.143.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.143.6.2.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, clock-rate=(int)8000, encoding-name=(string)G723</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)4, clock-rate=(int)8000</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/G723, channels=(int)1, rate=(int)8000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG723Depay-struct"></a><h3>struct GstRtpG723Depay</h3>
+<pre class="programlisting">struct GstRtpG723Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html
new file mode 100644
index 0000000..83c47cb
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg723pay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg723pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg723depay.html" title="rtpg723depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg726depay.html" title="rtpg726depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg723pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg723pay.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-rtpg723depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg726depay.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-rtpg723pay"></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-rtpg723pay.top_of_page"></a>rtpg723pay</span></h2>
+<p>rtpg723pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPG723Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg723pay.html#GstRTPG723Pay-struct" title="struct GstRTPG723Pay">GstRTPG723Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPG723Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.144.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.144.6.2.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>audio/G723, channels=(int)1, rate=(int)8000</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)audio, payload=(int)4, clock-rate=(int)8000, encoding-name=(string)G723</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G723</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg723pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPG723Pay-struct"></a><h3>struct GstRTPG723Pay</h3>
+<pre class="programlisting">struct GstRTPG723Pay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html
new file mode 100644
index 0000000..50a11f9
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg726depay.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg726depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg723pay.html" title="rtpg723pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg726pay.html" title="rtpg726pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg726depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg726depay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg726depay.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-rtpg723pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg726pay.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-rtpg726depay"></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-rtpg726depay.top_of_page"></a>rtpg726depay</span></h2>
+<p>rtpg726depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpg726depay.html#GstRtpG726Depay--force-aal2" title="The “force-aal2” property">force-aal2</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpG726Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg726depay.html#GstRtpG726Depay-struct" title="struct GstRtpG726Depay">GstRtpG726Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpG726Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<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">
+<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>Axis Communications &lt;dev-gstreamer@axis.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.145.7.2.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, encoding-name=(string){ G726, G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }, clock-rate=(int)8000</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-adpcm, channels=(int)1, rate=(int)8000, bitrate=(int){ 16000, 24000, 32000, 40000 }, block_align=(int){ 2, 3, 4, 5 }, layout=(string)g726</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG726Depay-struct"></a><h3>struct GstRtpG726Depay</h3>
+<pre class="programlisting">struct GstRtpG726Depay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726depay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpG726Depay--force-aal2"></a><h3>The <code class="literal">“force-aal2”</code> property</h3>
+<pre class="programlisting">  “force-aal2”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Force AAL2 decoding for compatibility with bad payloaders.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html
new file mode 100644
index 0000000..f7e1ec4
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg726pay.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg726pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg726depay.html" title="rtpg726depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg729depay.html" title="rtpg729depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg726pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg726pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg726pay.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-rtpg726depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg729depay.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-rtpg726pay"></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-rtpg726pay.top_of_page"></a>rtpg726pay</span></h2>
+<p>rtpg726pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpg726pay.html#GstRtpG726Pay--force-aal2" title="The “force-aal2” property">force-aal2</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpG726Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg726pay.html#GstRtpG726Pay-struct" title="struct GstRtpG726Pay">GstRtpG726Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpG726Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.146.7.2.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>Axis Communications &lt;dev-gstreamer@axis.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.146.7.2.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>audio/x-adpcm, channels=(int)1, rate=(int)8000, bitrate=(int){ 16000, 24000, 32000, 40000 }, layout=(string)g726</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string){ G726-16, G726-24, G726-32, G726-40, AAL2-G726-16, AAL2-G726-24, AAL2-G726-32, AAL2-G726-40 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG726Pay-struct"></a><h3>struct GstRtpG726Pay</h3>
+<pre class="programlisting">struct GstRtpG726Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg726pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpG726Pay--force-aal2"></a><h3>The <code class="literal">“force-aal2”</code> property</h3>
+<pre class="programlisting">  “force-aal2”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Force AAL2 encoding for compatibility with bad depayloaders.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html
new file mode 100644
index 0000000..42fa901
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg729depay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg729depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg726pay.html" title="rtpg726pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpg729pay.html" title="rtpg729pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg729depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg729depay.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-rtpg726pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpg729pay.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-rtpg729depay"></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-rtpg729depay.top_of_page"></a>rtpg729depay</span></h2>
+<p>rtpg729depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpG729Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg729depay.html#GstRtpG729Depay-struct" title="struct GstRtpG729Depay">GstRtpG729Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpG729Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.147.6.2.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>Laurent Glayal &lt;spglegle@yahoo.fr&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.147.6.2.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, clock-rate=(int)8000, encoding-name=(string)G729</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)18, clock-rate=(int)8000</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/G729, channels=(int)1, rate=(int)8000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpG729Depay-struct"></a><h3>struct GstRtpG729Depay</h3>
+<pre class="programlisting">struct GstRtpG729Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html
new file mode 100644
index 0000000..7f5bb15
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpg729pay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpg729pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg729depay.html" title="rtpg729depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpgsmdepay.html" title="rtpgsmdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpg729pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpg729pay.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-rtpg729depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpgsmdepay.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-rtpg729pay"></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-rtpg729pay.top_of_page"></a>rtpg729pay</span></h2>
+<p>rtpg729pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPG729Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpg729pay.html#GstRTPG729Pay-struct" title="struct GstRTPG729Pay">GstRTPG729Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPG729Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.148.6.2.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>Olivier Crete &lt;olivier.crete@collabora.co.uk&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.148.6.2.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>audio/G729, channels=(int)1, rate=(int)8000</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)audio, payload=(int)18, clock-rate=(int)8000, encoding-name=(string)G729</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)G729</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpg729pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPG729Pay-struct"></a><h3>struct GstRTPG729Pay</h3>
+<pre class="programlisting">struct GstRTPG729Pay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html
new file mode 100644
index 0000000..3340cf8
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpgsmdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpg729pay.html" title="rtpg729pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpgsmpay.html" title="rtpgsmpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpgsmdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpgsmdepay.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-rtpg729pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpgsmpay.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-rtpgsmdepay"></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-rtpgsmdepay.top_of_page"></a>rtpgsmdepay</span></h2>
+<p>rtpgsmdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPGSMDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpgsmdepay.html#GstRTPGSMDepay-struct" title="struct GstRTPGSMDepay">GstRTPGSMDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRTPGSMDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.149.6.2.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>Zeeshan Ali &lt;zeenix@gmail.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.149.6.2.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, clock-rate=(int)8000, encoding-name=(string)GSM</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)3, clock-rate=(int)8000</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-gsm, rate=(int)8000, channels=(int)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPGSMDepay-struct"></a><h3>struct GstRTPGSMDepay</h3>
+<pre class="programlisting">struct GstRTPGSMDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html
new file mode 100644
index 0000000..f880adb
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgsmpay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpgsmpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpgsmdepay.html" title="rtpgsmdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpgstdepay.html" title="rtpgstdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpgsmpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpgsmpay.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-rtpgsmdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpgstdepay.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-rtpgsmpay"></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-rtpgsmpay.top_of_page"></a>rtpgsmpay</span></h2>
+<p>rtpgsmpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPGSMPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpgsmpay.html#GstRTPGSMPay-struct" title="struct GstRTPGSMPay">GstRTPGSMPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPGSMPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.150.6.2.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>Zeeshan Ali &lt;zeenix@gmail.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.150.6.2.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>audio/x-gsm, rate=(int)8000, channels=(int)1</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)audio, payload=(int)3, clock-rate=(int)8000, encoding-name=(string)GSM</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)GSM</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgsmpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPGSMPay-struct"></a><h3>struct GstRTPGSMPay</h3>
+<pre class="programlisting">struct GstRTPGSMPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html
new file mode 100644
index 0000000..6194998
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgstdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpgstdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpgsmpay.html" title="rtpgsmpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpgstpay.html" title="rtpgstpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpgstdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpgstdepay.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-rtpgsmpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpgstpay.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-rtpgstdepay"></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-rtpgstdepay.top_of_page"></a>rtpgstdepay</span></h2>
+<p>rtpgstdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpGSTDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpgstdepay.html#GstRtpGSTDepay-struct" title="struct GstRtpGSTDepay">GstRtpGSTDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpGSTDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.151.6.2.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>Wim Taymans &lt;wim.taymans@gmail.com&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.151.6.2.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)90000, encoding-name=(string)X-GST</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpGSTDepay-struct"></a><h3>struct GstRtpGSTDepay</h3>
+<pre class="programlisting">struct GstRtpGSTDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html
new file mode 100644
index 0000000..4434fb5
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpgstpay.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpgstpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpgstdepay.html" title="rtpgstdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtph261depay.html" title="rtph261depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpgstpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpgstpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpgstpay.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-rtpgstdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></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-rtpgstpay"></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-rtpgstpay.top_of_page"></a>rtpgstpay</span></h2>
+<p>rtpgstpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpgstpay.html#GstRtpGSTPay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpGSTPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpgstpay.html#GstRtpGSTPay-struct" title="struct GstRtpGSTPay">GstRtpGSTPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpGSTPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.152.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.152.7.2.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>ANY</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, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)X-GST</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpGSTPay-struct"></a><h3>struct GstRtpGSTPay</h3>
+<pre class="programlisting">struct GstRtpGSTPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpgstpay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpGSTPay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Interval for sending caps and TAG events in seconds (0 = disabled).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 3600</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
index ddbcadd..aadf127 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261depay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpgstpay.html" title="rtpgstpay">
 <link rel="next" href="gst-plugins-good-plugins-rtph261pay.html" title="rtph261pay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpgstpay.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">
@@ -63,7 +63,7 @@
 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>
+<a name="id-1.2.153.6.4"></a><h3>Example pipeline</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -80,7 +80,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.121.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.153.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -106,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.121.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.153.6.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-rtph261pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
index 46c84ad..3459595 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph261pay.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-rtph261depay.html" title="rtph261depay">
-<link rel="next" href="gst-plugins-good-plugins-rtpL16depay.html" title="rtpL16depay">
+<link rel="next" href="gst-plugins-good-plugins-rtph263depay.html" title="rtph263depay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph263depay.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>
@@ -69,7 +69,7 @@
 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>
+<a name="id-1.2.154.6.4"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -86,7 +86,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.122.6.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.154.6.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,7 +112,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.122.6.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.154.6.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-rtph263depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html
new file mode 100644
index 0000000..21e0395
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263depay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph263depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph261pay.html" title="rtph261pay">
+<link rel="next" href="gst-plugins-good-plugins-rtph263pay.html" title="rtph263pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph263depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263depay.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-rtph261pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph263pay.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-rtph263depay"></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-rtph263depay.top_of_page"></a>rtph263depay</span></h2>
+<p>rtph263depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH263Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph263depay.html#GstRtpH263Depay-struct" title="struct GstRtpH263Depay">GstRtpH263Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpH263Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.155.6.2.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>Philippe Kalaf &lt;philippe.kalaf@collabora.co.uk&gt;, Edward Hervey &lt;bilboed@bilboed.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.155.6.2.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)34, clock-rate=(int)90000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H263</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-h263, variant=(string)itu, h263version=(string)h263</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH263Depay-struct"></a><h3>struct GstRtpH263Depay</h3>
+<pre class="programlisting">struct GstRtpH263Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html
new file mode 100644
index 0000000..54f8871
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263pay.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph263pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph263depay.html" title="rtph263depay">
+<link rel="next" href="gst-plugins-good-plugins-rtph263pdepay.html" title="rtph263pdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph263pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263pay.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-rtph263depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph263pdepay.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-rtph263pay"></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-rtph263pay.top_of_page"></a>rtph263pay</span></h2>
+<p>rtph263pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph263pay.html#GstRtpH263Pay--modea-only" title="The “modea-only” property">modea-only</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpH263Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph263pay.html#GstRtpH263Pay-struct" title="struct GstRtpH263Pay">GstRtpH263Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpH263Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.156.7.2.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>Neil Stratford &lt;neils@vipadia.com&gt;Dejan Sakelsak &lt;dejan.sakelsak@marand.si&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.156.7.2.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-h263, variant=(string)itu, h263version=(string)h263</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)34, clock-rate=(int)90000, encoding-name=(string)H263</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)H263</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH263Pay-struct"></a><h3>struct GstRtpH263Pay</h3>
+<pre class="programlisting">struct GstRtpH263Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpH263Pay--modea-only"></a><h3>The <code class="literal">“modea-only”</code> property</h3>
+<pre class="programlisting">  “modea-only”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Disable packetization modes B and C.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html
new file mode 100644
index 0000000..830ec3b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263pdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph263pdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph263pay.html" title="rtph263pay">
+<link rel="next" href="gst-plugins-good-plugins-rtph263ppay.html" title="rtph263ppay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph263pdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263pdepay.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-rtph263pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph263ppay.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-rtph263pdepay"></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-rtph263pdepay.top_of_page"></a>rtph263pdepay</span></h2>
+<p>rtph263pdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH263PDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph263pdepay.html#GstRtpH263PDepay-struct" title="struct GstRtpH263PDepay">GstRtpH263PDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpH263PDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.157.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.157.6.2.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, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-1998</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)H263-2000</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-h263, variant=(string)itu</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263pdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH263PDepay-struct"></a><h3>struct GstRtpH263PDepay</h3>
+<pre class="programlisting">struct GstRtpH263PDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html
new file mode 100644
index 0000000..0c2ef94
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph263ppay.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph263ppay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph263pdepay.html" title="rtph263pdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtph264depay.html" title="rtph264depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph263ppay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263ppay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph263ppay.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-rtph263pdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph264depay.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-rtph263ppay"></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-rtph263ppay.top_of_page"></a>rtph263ppay</span></h2>
+<p>rtph263ppay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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"><span class="type">GstFragmentationMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph263ppay.html#GstRtpH263PPay--fragmentation-mode" title="The “fragmentation-mode” property">fragmentation-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpH263PPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph263ppay.html#GstRtpH263PPay-struct" title="struct GstRtpH263PPay">GstRtpH263PPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpH263PPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.158.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.158.7.2.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-h263, variant=(string)itu</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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H263-1998</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)H263-2000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH263PPay-struct"></a><h3>struct GstRtpH263PPay</h3>
+<pre class="programlisting">struct GstRtpH263PPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph263ppay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpH263PPay--fragmentation-mode"></a><h3>The <code class="literal">“fragmentation-mode”</code> property</h3>
+<pre class="programlisting">  “fragmentation-mode”       <span class="type">GstFragmentationMode</span></pre>
+<p>Packet Fragmentation Mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Normal</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html
new file mode 100644
index 0000000..1ff8461
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph264depay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph264depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph263ppay.html" title="rtph263ppay">
+<link rel="next" href="gst-plugins-good-plugins-rtph264pay.html" title="rtph264pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph264depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph264depay.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-rtph263ppay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph264pay.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-rtph264depay"></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-rtph264depay.top_of_page"></a>rtph264depay</span></h2>
+<p>rtph264depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH264Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph264depay.html#GstRtpH264Depay-struct" title="struct GstRtpH264Depay">GstRtpH264Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpH264Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.159.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.159.6.2.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, clock-rate=(int)90000, encoding-name=(string)H264</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-h264, stream-format=(string)avc, alignment=(string)au</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h264, stream-format=(string)byte-stream, alignment=(string){ nal, au }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH264Depay-struct"></a><h3>struct GstRtpH264Depay</h3>
+<pre class="programlisting">struct GstRtpH264Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html
new file mode 100644
index 0000000..4918311
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph264pay.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph264pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph264depay.html" title="rtph264depay">
+<link rel="next" href="gst-plugins-good-plugins-rtph265depay.html" title="rtph265depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph264pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph264pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph264pay.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-rtph264depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph265depay.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-rtph264pay"></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-rtph264pay.top_of_page"></a>rtph264pay</span></h2>
+<p>rtph264pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph264pay.html#GstRtpH264Pay--sprop-parameter-sets" title="The “sprop-parameter-sets” property">sprop-parameter-sets</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph264pay.html#GstRtpH264Pay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstRtpH264Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph264pay.html#GstRtpH264Pay-struct" title="struct GstRtpH264Pay">GstRtpH264Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpH264Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.160.7.2.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>Laurent Glayal &lt;spglegle@yahoo.fr&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.160.7.2.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-h264, stream-format=(string)avc, alignment=(string)au</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h264, stream-format=(string)byte-stream, alignment=(string){ nal, au }</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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H264</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH264Pay-struct"></a><h3>struct GstRtpH264Pay</h3>
+<pre class="programlisting">struct GstRtpH264Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph264pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpH264Pay--sprop-parameter-sets"></a><h3>The <code class="literal">“sprop-parameter-sets”</code> property</h3>
+<pre class="programlisting">  “sprop-parameter-sets”     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The base64 sprop-parameter-sets to set in out caps (set to NULL to extract from stream).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpH264Pay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Send SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled, -1 = send with every IDR frame).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [G_MAXULONG,3600]</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html
new file mode 100644
index 0000000..dccca72
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph265depay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph265depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph264pay.html" title="rtph264pay">
+<link rel="next" href="gst-plugins-good-plugins-rtph265pay.html" title="rtph265pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph265depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph265depay.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-rtph264pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtph265pay.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-rtph265depay"></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-rtph265depay.top_of_page"></a>rtph265depay</span></h2>
+<p>rtph265depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpH265Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph265depay.html#GstRtpH265Depay-struct" title="struct GstRtpH265Depay">GstRtpH265Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpH265Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.161.6.2.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>Jurgen Slowack &lt;jurgenslowack@gmail.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.161.6.2.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, clock-rate=(int)90000, encoding-name=(string)H265</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-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH265Depay-struct"></a><h3>struct GstRtpH265Depay</h3>
+<pre class="programlisting">struct GstRtpH265Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html
new file mode 100644
index 0000000..72e7868
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtph265pay.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtph265pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph265depay.html" title="rtph265depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpilbcdepay.html" title="rtpilbcdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtph265pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph265pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtph265pay.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-rtph265depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpilbcdepay.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-rtph265pay"></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-rtph265pay.top_of_page"></a>rtph265pay</span></h2>
+<p>rtph265pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph265pay.html#GstRtpH265Pay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtph265pay.html#GstRtpH265Pay--sprop-parameter-sets" title="The “sprop-parameter-sets” property">sprop-parameter-sets</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstRtpH265Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtph265pay.html#GstRtpH265Pay-struct" title="struct GstRtpH265Pay">GstRtpH265Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpH265Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.162.7.2.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>Jurgen Slowack &lt;jurgenslowack@gmail.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.162.7.2.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-h265, stream-format=(string)hvc1, alignment=(string)au</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)H265</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpH265Pay-struct"></a><h3>struct GstRtpH265Pay</h3>
+<pre class="programlisting">struct GstRtpH265Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtph265pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpH265Pay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Send VPS, SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled, -1 = send with every IDR frame).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [G_MAXULONG,3600]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpH265Pay--sprop-parameter-sets"></a><h3>The <code class="literal">“sprop-parameter-sets”</code> property</h3>
+<pre class="programlisting">  “sprop-parameter-sets”     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>The base64 sprop-parameter-sets to set in out caps (set to NULL to extract from stream).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: NULL</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html
new file mode 100644
index 0000000..569122b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcdepay.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpilbcdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtph265pay.html" title="rtph265pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpilbcpay.html" title="rtpilbcpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpilbcdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpilbcdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpilbcdepay.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-rtph265pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpilbcpay.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-rtpilbcdepay"></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-rtpilbcdepay.top_of_page"></a>rtpilbcdepay</span></h2>
+<p>rtpilbcdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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"><span class="type">iLBCMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpilbcdepay.html#GstRTPiLBCDepay--mode" title="The “mode” property">mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRTPiLBCDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpilbcdepay.html#GstRTPiLBCDepay-struct" title="struct GstRTPiLBCDepay">GstRTPiLBCDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRTPiLBCDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.163.7.2.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>Philippe Kalaf &lt;philippe.kalaf@collabora.co.uk&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.163.7.2.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, clock-rate=(int)8000, encoding-name=(string)ILBC</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-iLBC, mode=(int){ 20, 30 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPiLBCDepay-struct"></a><h3>struct GstRTPiLBCDepay</h3>
+<pre class="programlisting">struct GstRTPiLBCDepay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcdepay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRTPiLBCDepay--mode"></a><h3>The <code class="literal">“mode”</code> property</h3>
+<pre class="programlisting">  “mode”                     <span class="type">iLBCMode</span></pre>
+<p>iLBC frame mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 30ms frames</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html
new file mode 100644
index 0000000..48d5550
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpilbcpay.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpilbcpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpilbcdepay.html" title="rtpilbcdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpj2kdepay.html" title="rtpj2kdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpilbcpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpilbcpay.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-rtpilbcdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpj2kdepay.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-rtpilbcpay"></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-rtpilbcpay.top_of_page"></a>rtpilbcpay</span></h2>
+<p>rtpilbcpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPILBCPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpilbcpay.html#GstRTPILBCPay-struct" title="struct GstRTPILBCPay">GstRTPILBCPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRTPILBCPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.164.6.2.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>Philippe Kalaf &lt;philippe.kalaf@collabora.co.uk&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.164.6.2.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>audio/x-iLBC, mode=(int){ 20, 30 }</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)8000, encoding-name=(string)ILBC, mode=(string){ 20, 30 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpilbcpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPILBCPay-struct"></a><h3>struct GstRTPILBCPay</h3>
+<pre class="programlisting">struct GstRTPILBCPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html
new file mode 100644
index 0000000..e9cd296
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kdepay.html
@@ -0,0 +1,164 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpj2kdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpilbcpay.html" title="rtpilbcpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpj2kpay.html" title="rtpj2kpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpj2kdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpj2kdepay.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-rtpilbcpay.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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpj2kdepay"></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-rtpj2kdepay.top_of_page"></a>rtpj2kdepay</span></h2>
+<p>rtpj2kdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpJ2KDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpj2kdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpj2kdepay.html#GstRtpJ2KDepay-struct" title="struct GstRtpJ2KDepay">GstRtpJ2KDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpj2kdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpJ2KDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpj2kdepay.description"></a><h2>Description</h2>
+<p>Depayload an RTP-payloaded JPEG 2000 image into RTP packets according to RFC 5371
+and RFC 5372.
+For detailed information see: https://datatracker.ietf.org/doc/rfc5371/
+and https://datatracker.ietf.org/doc/rfc5372/</p>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.165.6.3.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>Wim Taymans &lt;wim.taymans@gmail.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.165.6.3.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, clock-rate=(int)90000, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }, encoding-name=(string)JPEG2000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, clock-rate=(int)90000, colorspace=(string){ sRGB, sYUV, GRAY }, encoding-name=(string)JPEG2000</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>image/x-jpc, colorspace=(string){ sRGB, sYUV, GRAY }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpj2kdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpj2kdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpJ2KDepay-struct"></a><h3>struct GstRtpJ2KDepay</h3>
+<pre class="programlisting">struct GstRtpJ2KDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</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 60c2062..0b26a41 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpj2kpay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-good-plugins-rtpj2kdepay.html" title="rtpj2kdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpjitterbuffer.html" title="rtpjitterbuffer">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpdtmfsrc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpj2kdepay.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">
@@ -57,15 +57,18 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpj2kpay.description"></a><h2>Description</h2>
-<p>Payload encode JPEG 2000 pictures into RTP packets according to RFC 5371.
-For detailed information see: http://www.rfc-editor.org/rfc/rfc5371.txt</p>
-<p>The payloader takes a JPEG 2000 picture, scans the header for packetization
-units and constructs the RTP packet header followed by the actual JPEG 2000
-codestream.</p>
+<p>Payload encode JPEG 2000 images into RTP packets according to RFC 5371
+and RFC 5372.
+For detailed information see: https://datatracker.ietf.org/doc/rfc5371/
+and https://datatracker.ietf.org/doc/rfc5372/</p>
+<p>The payloader takes a JPEG 2000 image, scans it for "packetization
+units" and constructs the RTP packet header followed by the JPEG 2000
+codestream. A "packetization unit" is defined as either a JPEG 2000 main header,
+a JPEG 2000 tile-part header, or a JPEG 2000 packet.</p>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.133.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.166.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -91,7 +94,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.133.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.166.6.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -112,7 +115,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>image/x-jpc</td>
+<td>image/x-jpc, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }</td>
 </tr>
 </tbody>
 </table></div>
@@ -136,7 +139,7 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG2000</td>
+<td>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }, encoding-name=(string)JPEG2000</td>
 </tr>
 </tbody>
 </table></div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
index 49cc03a..4715d49 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjitterbuffer.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-rtpj2kpay.html" title="rtpj2kpay">
-<link rel="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpjpegdepay.html" title="rtpjpegdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpjpegdepay.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>
@@ -64,7 +64,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode" title="enum RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></td>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--mode" title="The “mode” property">mode</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -139,6 +139,21 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--max-rtcp-rtp-time-diff" title="The “max-rtcp-rtp-time-diff” property">max-rtcp-rtp-time-diff</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rfc7273-sync" title="The “rfc7273-sync” property">rfc7273-sync</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-deadline" title="The “rtx-deadline” property">rtx-deadline</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpjitterbuffer.html#GstRtpJitterBuffer--rtx-stats-timeout" title="The “rtx-stats-timeout” property">rtx-stats-timeout</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -253,7 +268,7 @@
 to the pipeline.</p>
 <p>This element will automatically be used inside rtpbin.</p>
 <div class="refsect2">
-<a name="id-1.2.134.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.167.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -271,7 +286,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.134.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.167.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -297,7 +312,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.134.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.167.8.12.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -424,7 +439,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstRtpJitterBuffer--mode"></a><h3>The <code class="literal">“mode”</code> property</h3>
-<pre class="programlisting">  “mode”                     <a class="link" href="gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode" title="enum RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></pre>
+<pre class="programlisting">  “mode”                     <a href="/usr/share/gtk-doc/html/gst-plugins-good-plugins-1.0gst-plugins-good-plugins-rtpbin.html#RTPJitterBufferMode"><span class="type">RTPJitterBufferMode</span></a></pre>
 <p>Control the buffering and timestamping mode used by the jitterbuffer.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Slave receiver to sender clock</p>
@@ -467,7 +482,8 @@
 <p>Assume that a retransmission event should be sent when we see
 this much packet reordering.</p>
 <p>When -1 is used, the value will be estimated based on observed packet
-reordering.</p>
+reordering. When 0 is used packet reordering alone will not cause a
+retransmission event (Since 1.10).</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 3</p>
@@ -503,6 +519,26 @@
 <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
 <li class="listitem"><p>
   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
+  <code class="classname">"num-pushed"</code>:
+  the number of packets pushed out.
+  </p></li>
+<li class="listitem"><p>
+  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
+  <code class="classname">"num-lost"</code>:
+  the number of packets considered lost.
+  </p></li>
+<li class="listitem"><p>
+  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
+  <code class="classname">"num-late"</code>:
+  the number of packets arriving too late.
+  </p></li>
+<li class="listitem"><p>
+  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
+  <code class="classname">"num-duplicates"</code>:
+  the number of duplicate packets.
+  </p></li>
+<li class="listitem"><p>
+  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a>
   <code class="classname">"rtx-count"</code>:
   the number of retransmissions requested.
   </p></li>
@@ -597,6 +633,34 @@
 <p>Default value: 1000</p>
 <p class="since">Since: 1.8</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpJitterBuffer--rfc7273-sync"></a><h3>The <code class="literal">“rfc7273-sync”</code> property</h3>
+<pre class="programlisting">  “rfc7273-sync”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpJitterBuffer--rtx-deadline"></a><h3>The <code class="literal">“rtx-deadline”</code> property</h3>
+<pre class="programlisting">  “rtx-deadline”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>The deadline for a valid RTX request in ms.</p>
+<p>How long the RTX RTCP will be valid for.
+When -1 is used, the size of the jitterbuffer will be used.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: -1</p>
+<p class="since">Since: 1.10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRtpJitterBuffer--rtx-stats-timeout"></a><h3>The <code class="literal">“rtx-stats-timeout”</code> property</h3>
+<pre class="programlisting">  “rtx-stats-timeout”        <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The time to wait for a retransmitted packet after it has been considered lost in order to collect statistics (ms).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 1000</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpjitterbuffer.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html
new file mode 100644
index 0000000..225747f
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpjpegdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="next" href="gst-plugins-good-plugins-rtpjpegpay.html" title="rtpjpegpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpjpegdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpjpegdepay.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-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-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-rtpjpegdepay"></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-rtpjpegdepay.top_of_page"></a>rtpjpegdepay</span></h2>
+<p>rtpjpegdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpJPEGDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpjpegdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpjpegdepay.html#GstRtpJPEGDepay-struct" title="struct GstRtpJPEGDepay">GstRtpJPEGDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpjpegdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpJPEGDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpjpegdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.168.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.168.6.2.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, clock-rate=(int)90000, encoding-name=(string)JPEG</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)26, clock-rate=(int)90000</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>image/jpeg</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpjpegdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpjpegdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpJPEGDepay-struct"></a><h3>struct GstRtpJPEGDepay</h3>
+<pre class="programlisting">struct GstRtpJPEGDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
index 2f5cdaa..4935977 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpjpegpay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpjpegdepay.html" title="rtpjpegdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpklvdepay.html" title="rtpklvdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpjpegdepay.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">
@@ -89,7 +89,7 @@
 <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.169.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -115,7 +115,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.135.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.169.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-rtpklvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
index bf4fa1e..87f0a1c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvdepay.html
@@ -60,7 +60,7 @@
 <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.136.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.170.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 @@
 <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.170.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.136.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.170.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-rtpklvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
index bd55006..c289515 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpklvpay.html
@@ -60,7 +60,7 @@
 <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.137.6.3"></a><h3>Example pipeline</h3>
+<a name="id-1.2.171.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.137.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.171.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.137.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.171.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-rtpmp1sdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html
new file mode 100644
index 0000000..d41f057
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp1sdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp1sdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpL24pay.html" title="rtpL24pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp2tdepay.html" title="rtpmp2tdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp1sdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp1sdepay.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-rtpL24pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp2tdepay.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-rtpmp1sdepay"></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-rtpmp1sdepay.top_of_page"></a>rtpmp1sdepay</span></h2>
+<p>rtpmp1sdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP1SDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp1sdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp1sdepay.html#GstRtpMP1SDepay-struct" title="struct GstRtpMP1SDepay">GstRtpMP1SDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp1sdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP1SDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp1sdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.176.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.176.6.2.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)other, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP1S</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/mpeg, systemstream=(boolean)true</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp1sdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp1sdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP1SDepay-struct"></a><h3>struct GstRtpMP1SDepay</h3>
+<pre class="programlisting">struct GstRtpMP1SDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html
new file mode 100644
index 0000000..ba00a07
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tdepay.html
@@ -0,0 +1,186 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp2tdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp1sdepay.html" title="rtpmp1sdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp2tpay.html" title="rtpmp2tpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp2tdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp2tdepay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp2tdepay.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-rtpmp1sdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp2tpay.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-rtpmp2tdepay"></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-rtpmp2tdepay.top_of_page"></a>rtpmp2tdepay</span></h2>
+<p>rtpmp2tdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmp2tdepay.html#GstRtpMP2TDepay--skip-first-bytes" title="The “skip-first-bytes” property">skip-first-bytes</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpMP2TDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp2tdepay.html#GstRtpMP2TDepay-struct" title="struct GstRtpMP2TDepay">GstRtpMP2TDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP2TDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.177.7.2.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>Wim Taymans &lt;wim.taymans@gmail.com&gt;, Thijs Vermeir &lt;thijs.vermeir@barco.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.177.7.2.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, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ MP2T, MP2T-ES }</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)33, clock-rate=(int)[ 1, 2147483647 ]</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/mpegts, packetsize=(int)188, systemstream=(boolean)true</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP2TDepay-struct"></a><h3>struct GstRtpMP2TDepay</h3>
+<pre class="programlisting">struct GstRtpMP2TDepay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tdepay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpMP2TDepay--skip-first-bytes"></a><h3>The <code class="literal">“skip-first-bytes”</code> property</h3>
+<pre class="programlisting">  “skip-first-bytes”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>The amount of bytes that need to be skipped at the beginning of the payload.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html
new file mode 100644
index 0000000..0a902b1
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp2tpay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp2tpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp2tdepay.html" title="rtpmp2tdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4adepay.html" title="rtpmp4adepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp2tpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp2tpay.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-rtpmp2tdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4adepay.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-rtpmp2tpay"></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-rtpmp2tpay.top_of_page"></a>rtpmp2tpay</span></h2>
+<p>rtpmp2tpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPMP2TPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp2tpay.html#GstRTPMP2TPay-struct" title="struct GstRTPMP2TPay">GstRTPMP2TPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPMP2TPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.178.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.178.6.2.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/mpegts, packetsize=(int)188, systemstream=(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)video, payload=(int)33, clock-rate=(int)90000, encoding-name=(string)MP2T</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)MP2T</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp2tpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPMP2TPay-struct"></a><h3>struct GstRTPMP2TPay</h3>
+<pre class="programlisting">struct GstRTPMP2TPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html
new file mode 100644
index 0000000..49622bd
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4adepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4adepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp2tpay.html" title="rtpmp2tpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4apay.html" title="rtpmp4apay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4adepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4adepay.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-rtpmp2tpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4apay.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-rtpmp4adepay"></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-rtpmp4adepay.top_of_page"></a>rtpmp4adepay</span></h2>
+<p>rtpmp4adepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP4ADepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4adepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4adepay.html#GstRtpMP4ADepay-struct" title="struct GstRtpMP4ADepay">GstRtpMP4ADepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4adepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4ADepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4adepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.179.6.2.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>Nokia Corporation (contact &lt;stefan.kost@nokia.com&gt;), Wim Taymans &lt;wim.taymans@gmail.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.179.6.2.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, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</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/mpeg, mpegversion=(int)4, framed=(boolean){ false, true }, stream-format=(string)raw</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4adepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4adepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4ADepay-struct"></a><h3>struct GstRtpMP4ADepay</h3>
+<pre class="programlisting">struct GstRtpMP4ADepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html
new file mode 100644
index 0000000..b448db7
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4apay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4apay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4adepay.html" title="rtpmp4adepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4gdepay.html" title="rtpmp4gdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4apay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4apay.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-rtpmp4adepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4gdepay.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-rtpmp4apay"></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-rtpmp4apay.top_of_page"></a>rtpmp4apay</span></h2>
+<p>rtpmp4apay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP4APay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4apay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4apay.html#GstRtpMP4APay-struct" title="struct GstRtpMP4APay">GstRtpMP4APay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4apay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4APay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4apay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.180.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.180.6.2.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>audio/mpeg, mpegversion=(int)4, stream-format=(string)raw</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4A-LATM</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4apay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4apay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4APay-struct"></a><h3>struct GstRtpMP4APay</h3>
+<pre class="programlisting">struct GstRtpMP4APay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html
new file mode 100644
index 0000000..0b24e5c
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4gdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4apay.html" title="rtpmp4apay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4gpay.html" title="rtpmp4gpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4gdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4gdepay.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-rtpmp4apay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4gpay.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-rtpmp4gdepay"></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-rtpmp4gdepay.top_of_page"></a>rtpmp4gdepay</span></h2>
+<p>rtpmp4gdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP4GDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4gdepay.html#GstRtpMP4GDepay-struct" title="struct GstRtpMP4GDepay">GstRtpMP4GDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4GDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.181.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.181.6.2.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, audio, application }, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</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/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/mpeg, mpegversion=(int)4, stream-format=(string)raw</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4GDepay-struct"></a><h3>struct GstRtpMP4GDepay</h3>
+<pre class="programlisting">struct GstRtpMP4GDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html
new file mode 100644
index 0000000..64a5856
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4gpay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4gpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4gdepay.html" title="rtpmp4gdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4vdepay.html" title="rtpmp4vdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4gpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4gpay.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-rtpmp4gdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4vdepay.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-rtpmp4gpay"></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-rtpmp4gpay.top_of_page"></a>rtpmp4gpay</span></h2>
+<p>rtpmp4gpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP4GPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4gpay.html#GstRtpMP4GPay-struct" title="struct GstRtpMP4GPay">GstRtpMP4GPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4GPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.182.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.182.6.2.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/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> audio/mpeg, mpegversion=(int)4, stream-format=(string)raw</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, audio, application }, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MPEG4-GENERIC, streamtype=(string){ 4, 5 }, mode=(string){ generic, CELP-cbr, CELP-vbr, AAC-lbr, AAC-hbr }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4gpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4GPay-struct"></a><h3>struct GstRtpMP4GPay</h3>
+<pre class="programlisting">struct GstRtpMP4GPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html
new file mode 100644
index 0000000..c7c8e0e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4vdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4gpay.html" title="rtpmp4gpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmp4vpay.html" title="rtpmp4vpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4vdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4vdepay.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-rtpmp4gpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmp4vpay.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-rtpmp4vdepay"></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-rtpmp4vdepay.top_of_page"></a>rtpmp4vdepay</span></h2>
+<p>rtpmp4vdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMP4VDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4vdepay.html#GstRtpMP4VDepay-struct" title="struct GstRtpMP4VDepay">GstRtpMP4VDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4VDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.183.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.183.6.2.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, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</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/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4VDepay-struct"></a><h3>struct GstRtpMP4VDepay</h3>
+<pre class="programlisting">struct GstRtpMP4VDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html
new file mode 100644
index 0000000..3f8eb9a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmp4vpay.html
@@ -0,0 +1,187 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmp4vpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4vdepay.html" title="rtpmp4vdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmpadepay.html" title="rtpmpadepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmp4vpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4vpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmp4vpay.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-rtpmp4vdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmpadepay.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-rtpmp4vpay"></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-rtpmp4vpay.top_of_page"></a>rtpmp4vpay</span></h2>
+<p>rtpmp4vpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpmp4vpay.html#GstRtpMP4VPay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpMP4VPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmp4vpay.html#GstRtpMP4VPay-struct" title="struct GstRtpMP4VPay">GstRtpMP4VPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpMP4VPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.184.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.184.7.2.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/mpeg, mpegversion=(int)4, systemstream=(boolean)false</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> video/x-divx</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)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)MP4V-ES</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMP4VPay-struct"></a><h3>struct GstRtpMP4VPay</h3>
+<pre class="programlisting">struct GstRtpMP4VPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmp4vpay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpMP4VPay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Send Config Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 3600</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html
new file mode 100644
index 0000000..0534055
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpadepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmpadepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmp4vpay.html" title="rtpmp4vpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmpapay.html" title="rtpmpapay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmpadepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmpadepay.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-rtpmp4vpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmpapay.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-rtpmpadepay"></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-rtpmpadepay.top_of_page"></a>rtpmpadepay</span></h2>
+<p>rtpmpadepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMPADepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpadepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmpadepay.html#GstRtpMPADepay-struct" title="struct GstRtpMPADepay">GstRtpMPADepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpadepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMPADepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpadepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.185.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.185.6.2.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)14, clock-rate=(int)90000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)MPA, clock-rate=(int)[ 1, 2147483647 ]</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/mpeg, mpegversion=(int)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpadepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpadepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMPADepay-struct"></a><h3>struct GstRtpMPADepay</h3>
+<pre class="programlisting">struct GstRtpMPADepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html
new file mode 100644
index 0000000..d2444c5
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpapay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmpapay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmpadepay.html" title="rtpmpadepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmparobustdepay.html" title="rtpmparobustdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmpapay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmpapay.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-rtpmpadepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmparobustdepay.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-rtpmpapay"></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-rtpmpapay.top_of_page"></a>rtpmpapay</span></h2>
+<p>rtpmpapay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMPAPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpapay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmpapay.html#GstRtpMPAPay-struct" title="struct GstRtpMPAPay">GstRtpMPAPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpapay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpMPAPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpapay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.186.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.186.6.2.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>audio/mpeg, mpegversion=(int)1</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)audio, payload=(int)14, clock-rate=(int)90000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)MPA</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpapay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpapay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMPAPay-struct"></a><h3>struct GstRtpMPAPay</h3>
+<pre class="programlisting">struct GstRtpMPAPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html
new file mode 100644
index 0000000..85e5abd
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmparobustdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmparobustdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmpapay.html" title="rtpmpapay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmpvdepay.html" title="rtpmpvdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmparobustdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmparobustdepay.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-rtpmpapay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmpvdepay.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-rtpmparobustdepay"></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-rtpmparobustdepay.top_of_page"></a>rtpmparobustdepay</span></h2>
+<p>rtpmparobustdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMPARobustDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmparobustdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmparobustdepay.html#GstRtpMPARobustDepay-struct" title="struct GstRtpMPARobustDepay">GstRtpMPARobustDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmparobustdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMPARobustDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmparobustdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.187.6.2.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>Mark Nauwelaerts &lt;mark.nauwelaerts@collabora.co.uk&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.187.6.2.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, clock-rate=(int)90000, encoding-name=(string)MPA-ROBUST</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-MP3-DRAFT-00, X-MP3-DRAFT-01, X-MP3-DRAFT-02, X-MP3-DRAFT-03, X-MP3-DRAFT-04, X-MP3-DRAFT-05, X-MP3-DRAFT-06 }</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/mpeg, mpegversion=(int)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmparobustdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmparobustdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMPARobustDepay-struct"></a><h3>struct GstRtpMPARobustDepay</h3>
+<pre class="programlisting">struct GstRtpMPARobustDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html
new file mode 100644
index 0000000..e6f81d1
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmpvdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmparobustdepay.html" title="rtpmparobustdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmpvpay.html" title="rtpmpvpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmpvdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmpvdepay.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-rtpmparobustdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpmpvpay.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-rtpmpvdepay"></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-rtpmpvdepay.top_of_page"></a>rtpmpvdepay</span></h2>
+<p>rtpmpvdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpMPVDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmpvdepay.html#GstRtpMPVDepay-struct" title="struct GstRtpMPVDepay">GstRtpMPVDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpMPVDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.188.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.188.6.2.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, clock-rate=(int)90000, encoding-name=(string)MPV</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)video, payload=(int)32, clock-rate=(int)90000</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/mpeg, mpegversion=(int)2, systemstream=(boolean)false</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpMPVDepay-struct"></a><h3>struct GstRtpMPVDepay</h3>
+<pre class="programlisting">struct GstRtpMPVDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html
new file mode 100644
index 0000000..5aff749
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmpvpay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpmpvpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmpvdepay.html" title="rtpmpvdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpmpvpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpmpvpay.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-rtpmpvdepay.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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpmpvpay"></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-rtpmpvpay.top_of_page"></a>rtpmpvpay</span></h2>
+<p>rtpmpvpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPMPVPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpmpvpay.html#GstRTPMPVPay-struct" title="struct GstRTPMPVPay">GstRTPMPVPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRTPMPVPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.189.6.2.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>Thijs Vermeir &lt;thijsvermeir@gmail.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.189.6.2.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/mpeg, mpegversion=(int)2, systemstream=(boolean)false</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)32, clock-rate=(int)90000, encoding-name=(string)MPV</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)MPV</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpmpvpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPMPVPay-struct"></a><h3>struct GstRTPMPVPay</h3>
+<pre class="programlisting">struct GstRTPMPVPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</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 3dbe14d..a32027f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpmux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpopuspay.html" title="rtpopuspay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpmpvpay.html" title="rtpmpvpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpopusdepay.html" title="rtpopusdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpopuspay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpmpvpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpopusdepay.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-rtpmux"></a><div class="titlepage"></div>
@@ -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.140.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.190.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.140.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.190.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.140.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.190.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-rtpopusdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
index 19fabcc..887a098 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpopusdepay.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpopuspay.html" title="rtpopuspay">
-<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<link rel="prev" href="gst-plugins-good-plugins-rtpmux.html" title="rtpmux">
+<link rel="next" href="gst-plugins-good-plugins-rtpopuspay.html" title="rtpopuspay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpopuspay.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>
+<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-rtpopuspay.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-rtpopusdepay"></a><div class="titlepage"></div>
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstRtpL16Pay"></a><a name="GstRTPOpusDepay"></a><div class="refsect1">
+<a name="GstRTPOpusDepay"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpopusdepay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -60,7 +60,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.142.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.191.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.142.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.191.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-rtpopuspay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
index 3d49264..f8071e4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpopuspay.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpmux.html" title="rtpmux">
-<link rel="next" href="gst-plugins-good-plugins-rtpopusdepay.html" title="rtpopusdepay">
+<link rel="prev" href="gst-plugins-good-plugins-rtpopusdepay.html" title="rtpopusdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtppcmadepay.html" title="rtppcmadepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-rtpopusdepay.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpopusdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtppcmadepay.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-rtpopuspay"></a><div class="titlepage"></div>
@@ -32,7 +32,7 @@
 </td>
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
-<a name="GstRtpL16Pay"></a><a name="GstRTPOpusDepay"></a><a name="GstRtpOPUSPay"></a><div class="refsect1">
+<a name="GstRtpOPUSPay"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-rtpopuspay.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
 <colgroup>
@@ -60,7 +60,7 @@
 <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.192.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.141.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.192.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-rtppcmadepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html
new file mode 100644
index 0000000..d982a79
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmadepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtppcmadepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpopuspay.html" title="rtpopuspay">
+<link rel="next" href="gst-plugins-good-plugins-rtppcmapay.html" title="rtppcmapay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtppcmadepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtppcmadepay.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-rtpopuspay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtppcmapay.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-rtppcmadepay"></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-rtppcmadepay.top_of_page"></a>rtppcmadepay</span></h2>
+<p>rtppcmadepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpPcmaDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmadepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtppcmadepay.html#GstRtpPcmaDepay-struct" title="struct GstRtpPcmaDepay">GstRtpPcmaDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmadepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpPcmaDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmadepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.193.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&gt;, Zeeshan Ali &lt;zeenix@gmail.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.193.6.2.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)8, clock-rate=(int)8000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</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-alaw, channels=(int)1, rate=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmadepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmadepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpPcmaDepay-struct"></a><h3>struct GstRtpPcmaDepay</h3>
+<pre class="programlisting">struct GstRtpPcmaDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html
new file mode 100644
index 0000000..c6ec97a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmapay.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtppcmapay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtppcmadepay.html" title="rtppcmadepay">
+<link rel="next" href="gst-plugins-good-plugins-rtppcmudepay.html" title="rtppcmudepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtppcmapay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtppcmapay.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-rtppcmadepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtppcmudepay.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-rtppcmapay"></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-rtppcmapay.top_of_page"></a>rtppcmapay</span></h2>
+<p>rtppcmapay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpPcmaPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmapay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtppcmapay.html#GstRtpPcmaPay-struct" title="struct GstRtpPcmaPay">GstRtpPcmaPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmapay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpPcmaPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmapay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.194.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&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.194.6.2.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>audio/x-alaw, channels=(int)1, rate=(int)8000</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)audio, payload=(int)8, clock-rate=(int)8000, encoding-name=(string)PCMA</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMA</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmapay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmapay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpPcmaPay-struct"></a><h3>struct GstRtpPcmaPay</h3>
+<pre class="programlisting">struct GstRtpPcmaPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html
new file mode 100644
index 0000000..dc0717d
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmudepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtppcmudepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtppcmapay.html" title="rtppcmapay">
+<link rel="next" href="gst-plugins-good-plugins-rtppcmupay.html" title="rtppcmupay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtppcmudepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtppcmudepay.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-rtppcmapay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtppcmupay.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-rtppcmudepay"></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-rtppcmudepay.top_of_page"></a>rtppcmudepay</span></h2>
+<p>rtppcmudepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpPcmuDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmudepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtppcmudepay.html#GstRtpPcmuDepay-struct" title="struct GstRtpPcmuDepay">GstRtpPcmuDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmudepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpPcmuDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmudepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.195.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&gt;, Zeeshan Ali &lt;zeenix@gmail.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.195.6.2.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)0, clock-rate=(int)8000</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, encoding-name=(string)PCMU, clock-rate=(int)[ 1, 2147483647 ]</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-mulaw, channels=(int)1, rate=(int)[ 1, 2147483647 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmudepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmudepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpPcmuDepay-struct"></a><h3>struct GstRtpPcmuDepay</h3>
+<pre class="programlisting">struct GstRtpPcmuDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html b/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html
new file mode 100644
index 0000000..531fb48
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtppcmupay.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtppcmupay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtppcmudepay.html" title="rtppcmudepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpptdemux.html" title="rtpptdemux">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtppcmupay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtppcmupay.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-rtppcmudepay.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">
+<a name="gst-plugins-good-plugins-rtppcmupay"></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-rtppcmupay.top_of_page"></a>rtppcmupay</span></h2>
+<p>rtppcmupay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpPcmuPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmupay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtppcmupay.html#GstRtpPcmuPay-struct" title="struct GstRtpPcmuPay">GstRtpPcmuPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmupay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRtpPcmuPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmupay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.196.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&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.196.6.2.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>audio/x-mulaw, channels=(int)1, rate=(int)8000</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)audio, payload=(int)0, clock-rate=(int)8000, encoding-name=(string)PCMU</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)PCMU</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmupay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtppcmupay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpPcmuPay-struct"></a><h3>struct GstRtpPcmuPay</h3>
+<pre class="programlisting">struct GstRtpPcmuPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
index e9585dd..d2117e7 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpptdemux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpopusdepay.html" title="rtpopusdepay">
-<link rel="next" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
+<link rel="prev" href="gst-plugins-good-plugins-rtppcmupay.html" title="rtppcmupay">
+<link rel="next" href="gst-plugins-good-plugins-rtpqcelpdepay.html" title="rtpqcelpdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtpopusdepay.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-rtppcmupay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpqcelpdepay.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 @@
 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.143.7.5"></a><h3>Example pipelines</h3>
+<a name="id-1.2.197.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.143.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.197.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.143.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.197.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-rtpqcelpdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html
new file mode 100644
index 0000000..611feb2
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpqcelpdepay.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpqcelpdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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="next" href="gst-plugins-good-plugins-rtpqdm2depay.html" title="rtpqdm2depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpqcelpdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpqcelpdepay.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-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-rtpqdm2depay.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-rtpqcelpdepay"></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-rtpqcelpdepay.top_of_page"></a>rtpqcelpdepay</span></h2>
+<p>rtpqcelpdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpQCELPDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqcelpdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpqcelpdepay.html#GstRtpQCELPDepay-struct" title="struct GstRtpQCELPDepay">GstRtpQCELPDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqcelpdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpQCELPDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqcelpdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.198.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.198.6.2.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, clock-rate=(int)8000, encoding-name=(string)QCELP</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtp, media=(string)audio, payload=(int)12, clock-rate=(int)8000</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/qcelp, channels=(int)1, rate=(int)8000</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqcelpdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqcelpdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpQCELPDepay-struct"></a><h3>struct GstRtpQCELPDepay</h3>
+<pre class="programlisting">struct GstRtpQCELPDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html
new file mode 100644
index 0000000..7feee53
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpqdm2depay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpqdm2depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpqcelpdepay.html" title="rtpqcelpdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtprtxqueue.html" title="rtprtxqueue">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpqdm2depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpqdm2depay.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-rtpqcelpdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtprtxqueue.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-rtpqdm2depay"></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-rtpqdm2depay.top_of_page"></a>rtpqdm2depay</span></h2>
+<p>rtpqdm2depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpQDM2Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqdm2depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpqdm2depay.html#GstRtpQDM2Depay-struct" title="struct GstRtpQDM2Depay">GstRtpQDM2Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqdm2depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpQDM2Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqdm2depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.199.6.2.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>Edward Hervey &lt;bilboed@bilboed.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.199.6.2.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, encoding-name=(string)X-QDM</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-qdm2</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqdm2depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpqdm2depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpQDM2Depay-struct"></a><h3>struct GstRtpQDM2Depay</h3>
+<pre class="programlisting">struct GstRtpQDM2Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
new file mode 100644
index 0000000..694e106
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxqueue.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtprtxqueue: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpqdm2depay.html" title="rtpqdm2depay">
+<link rel="next" href="gst-plugins-good-plugins-rtprtxreceive.html" title="rtprtxreceive">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtprtxqueue.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtprtxqueue.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtprtxqueue.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-rtpqdm2depay.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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtprtxqueue"></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-rtprtxqueue.top_of_page"></a>rtprtxqueue</span></h2>
+<p>rtprtxqueue</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue--max-size-packets" title="The “max-size-packets” property">max-size-packets</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue--max-size-time" title="The “max-size-time” property">max-size-time</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstRTPRtxQueue"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtprtxqueue.html#GstRTPRtxQueue-struct" title="struct GstRTPRtxQueue">GstRTPRtxQueue</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstRTPRtxQueue
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.200.7.2.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-rtpmanager.html#plugin-rtpmanager">rtpmanager</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.200.7.2.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</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</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPRtxQueue-struct"></a><h3>struct GstRTPRtxQueue</h3>
+<pre class="programlisting">struct GstRTPRtxQueue;</pre>
+<p>The opaque <a class="link" href="gst-plugins-good-plugins-rtprtxqueue.html#GstRTPRtxQueue"><span class="type">GstRTPRtxQueue</span></a> structure.</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtprtxqueue.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRTPRtxQueue--max-size-packets"></a><h3>The <code class="literal">“max-size-packets”</code> property</h3>
+<pre class="programlisting">  “max-size-packets”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Amount of packets to queue (0 = unlimited).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 100</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstRTPRtxQueue--max-size-time"></a><h3>The <code class="literal">“max-size-time”</code> property</h3>
+<pre class="programlisting">  “max-size-time”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Amount of ms to queue (0 = unlimited).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
index ff6d184..0a3b424 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxreceive.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtprtxqueue.html" title="rtprtxqueue">
 <link rel="next" href="gst-plugins-good-plugins-rtprtxsend.html" title="rtprtxsend">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-rtprtxqueue.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">
@@ -104,7 +104,7 @@
 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.144.7.3"></a><h3>Example pipelines</h3>
+<a name="id-1.2.201.7.3"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -237,7 +237,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.144.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.201.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -263,7 +263,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.144.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.201.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 5b537c3..10e8364 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtprtxsend.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-rtprtxreceive.html" title="rtprtxreceive">
-<link rel="next" href="gst-plugins-good-plugins-rtpsbcpay.html" title="rtpsbcpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpsbcdepay.html" title="rtpsbcdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsbcdepay.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>
@@ -112,7 +112,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.145.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.202.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -138,7 +138,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.145.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.202.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-rtpsbcdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html
new file mode 100644
index 0000000..d550e83
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpsbcdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsbcpay.html" title="rtpsbcpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpsbcdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpsbcdepay.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-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-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-rtpsbcdepay"></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-rtpsbcdepay.top_of_page"></a>rtpsbcdepay</span></h2>
+<p>rtpsbcdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpSbcDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpsbcdepay.html#GstRtpSbcDepay-struct" title="struct GstRtpSbcDepay">GstRtpSbcDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpSbcDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.203.6.2.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>Arun Raghavan &lt;arun.raghavan@collabora.co.uk&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.203.6.2.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){ 16000, 32000, 44100, 48000 }, encoding-name=(string)SBC</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-sbc, rate=(int){ 16000, 32000, 44100, 48000 }, channels=(int)[ 1, 2 ], mode=(string){ mono, dual, stereo, joint }, blocks=(int){ 4, 8, 12, 16 }, subbands=(int){ 4, 8 }, allocation-method=(string){ snr, loudness }, bitpool=(int)[ 2, 64 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsbcdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpSbcDepay-struct"></a><h3>struct GstRtpSbcDepay</h3>
+<pre class="programlisting">struct GstRtpSbcDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
index 03ced13..b41a6d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsbcpay.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-good-plugins-rtpsbcdepay.html" title="rtpsbcdepay">
 <link rel="next" href="gst-plugins-good-plugins-rtpsession.html" title="rtpsession">
 <meta name="generator" content="GTK-Doc V1.25 (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-rtprtxsend.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpsbcdepay.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">
@@ -76,7 +76,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.146.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.204.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.146.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.204.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 8640d9f..59a7664 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpsession.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsession.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-rtpsbcpay.html" title="rtpsbcpay">
-<link rel="next" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
+<link rel="next" href="gst-plugins-good-plugins-rtpsirendepay.html" title="rtpsirendepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsirendepay.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-rtpsession"></a><div class="titlepage"></div>
@@ -273,7 +273,7 @@
 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.147.8.11"></a><h3>Example pipelines</h3>
+<a name="id-1.2.205.8.11"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -341,7 +341,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.147.8.12.1"></a><h3>Element Information</h3>
+<a name="id-1.2.205.8.12.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -367,7 +367,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.147.8.12.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.205.8.12.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-rtpsirendepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html
new file mode 100644
index 0000000..d84316b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsirendepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpsirendepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsession.html" title="rtpsession">
+<link rel="next" href="gst-plugins-good-plugins-rtpsirenpay.html" title="rtpsirenpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpsirendepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpsirendepay.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-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-rtpsirenpay.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-rtpsirendepay"></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-rtpsirendepay.top_of_page"></a>rtpsirendepay</span></h2>
+<p>rtpsirendepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPSirenDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirendepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpsirendepay.html#GstRTPSirenDepay-struct" title="struct GstRTPSirenDepay">GstRTPSirenDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirendepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRTPSirenDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirendepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.206.6.2.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>Philippe Kalaf &lt;philippe.kalaf@collabora.co.uk&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.206.6.2.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, clock-rate=(int)16000, encoding-name=(string)SIREN</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-siren, dct-length=(int)320</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirendepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirendepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPSirenDepay-struct"></a><h3>struct GstRTPSirenDepay</h3>
+<pre class="programlisting">struct GstRTPSirenDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html
new file mode 100644
index 0000000..a24ace7
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsirenpay.html
@@ -0,0 +1,157 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpsirenpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsirendepay.html" title="rtpsirendepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpspeexdepay.html" title="rtpspeexdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpsirenpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpsirenpay.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-rtpsirendepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpspeexdepay.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-rtpsirenpay"></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-rtpsirenpay.top_of_page"></a>rtpsirenpay</span></h2>
+<p>rtpsirenpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRTPSirenPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirenpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpsirenpay.html#GstRTPSirenPay-struct" title="struct GstRTPSirenPay">GstRTPSirenPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirenpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbaseaudiopayload.html#GstRTPBaseAudioPayload-struct">GstRTPBaseAudioPayload</a>
+                        <span class="lineart">╰──</span> GstRTPSirenPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirenpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.207.6.2.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>Youness Alaoui &lt;kakaroto@kakaroto.homelinux.net&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.207.6.2.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>audio/x-siren, dct-length=(int)320</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)16000, encoding-name=(string)SIREN, bitrate=(string)16000, dct-length=(int)320</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirenpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsirenpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRTPSirenPay-struct"></a><h3>struct GstRTPSirenPay</h3>
+<pre class="programlisting">struct GstRTPSirenPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html
new file mode 100644
index 0000000..d14165e
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpspeexdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsirenpay.html" title="rtpsirenpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpspeexpay.html" title="rtpspeexpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpspeexdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpspeexdepay.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-rtpsirenpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpspeexpay.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-rtpspeexdepay"></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-rtpspeexdepay.top_of_page"></a>rtpspeexdepay</span></h2>
+<p>rtpspeexdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpSPEEXDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpspeexdepay.html#GstRtpSPEEXDepay-struct" title="struct GstRtpSPEEXDepay">GstRtpSPEEXDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpSPEEXDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.208.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&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.208.6.2.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, clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX</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-speex</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpSPEEXDepay-struct"></a><h3>struct GstRtpSPEEXDepay</h3>
+<pre class="programlisting">struct GstRtpSPEEXDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html
new file mode 100644
index 0000000..55a3051
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpspeexpay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpspeexpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpspeexdepay.html" title="rtpspeexdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpssrcdemux.html" title="rtpssrcdemux">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpspeexpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpspeexpay.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-rtpspeexdepay.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">
+<a name="gst-plugins-good-plugins-rtpspeexpay"></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-rtpspeexpay.top_of_page"></a>rtpspeexpay</span></h2>
+<p>rtpspeexpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpSPEEXPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpspeexpay.html#GstRtpSPEEXPay-struct" title="struct GstRtpSPEEXPay">GstRtpSPEEXPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpSPEEXPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.209.6.2.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>Edgard Lima &lt;edgard.lima@indt.org.br&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.209.6.2.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>audio/x-speex, rate=(int)[ 6000, 48000 ], channels=(int)1</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 6000, 48000 ], encoding-name=(string)SPEEX, encoding-params=(string)1</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpspeexpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpSPEEXPay-struct"></a><h3>struct GstRtpSPEEXPay</h3>
+<pre class="programlisting">struct GstRtpSPEEXPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
index 84ebcf4..a2f738a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpssrcdemux.html
@@ -6,8 +6,8 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsession.html" title="rtpsession">
-<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
+<link rel="prev" href="gst-plugins-good-plugins-rtpspeexpay.html" title="rtpspeexpay">
+<link rel="next" href="gst-plugins-good-plugins-rtpstreamdepay.html" title="rtpstreamdepay">
 <meta name="generator" content="GTK-Doc V1.25 (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-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-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-rtpspeexpay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpstreamdepay.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 @@
 <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.148.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.210.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.148.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.210.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.148.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.210.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-rtpstreamdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html
new file mode 100644
index 0000000..60372c6
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpstreamdepay.html
@@ -0,0 +1,198 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpstreamdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpstreampay.html" title="rtpstreampay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpstreamdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpstreamdepay.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-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-rtpstreampay.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-rtpstreamdepay"></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-rtpstreamdepay.top_of_page"></a>rtpstreamdepay</span></h2>
+<p>rtpstreamdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpStreamDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreamdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpstreamdepay.html#GstRtpStreamDepay-struct" title="struct GstRtpStreamDepay">GstRtpStreamDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreamdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseParse.html#GstBaseParse-struct">GstBaseParse</a>
+                    <span class="lineart">╰──</span> GstRtpStreamDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreamdepay.description"></a><h2>Description</h2>
+<p>Implements stream depayloading of RTP and RTCP packets for connection-oriented
+transport protocols according to RFC4571.</p>
+<div class="refsect2">
+<a name="id-1.2.211.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
+2</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 <span class="gtkdoc opt">!</span> <span class="string">&quot;audio/x-raw,rate=48000&quot;</span> <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> rtpvorbispay config<span class="gtkdoc opt">-</span>interval<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> rtpstreampay <span class="gtkdoc opt">!</span> tcpserversink port<span class="gtkdoc opt">=</span><span class="number">5678</span>
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> tcpclientsrc port<span class="gtkdoc opt">=</span><span class="number">5678</span> host<span class="gtkdoc opt">=</span><span class="number">127.0.0.1</span> <span class="keyword">do</span><span class="gtkdoc opt">-</span>timestamp<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> <span class="string">&quot;application/x-rtp-stream,media=audio,clock-rate=48000,encoding-name=VORBIS&quot;</span> <span class="gtkdoc opt">!</span> rtpstreamdepay <span class="gtkdoc opt">!</span> rtpvorbisdepay <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.211.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>Sebastian Dröge &lt;sebastian@centricular.com&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.211.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-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtcp-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtp-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtcp-stream</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</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtcp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtcp</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreamdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreamdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpStreamDepay-struct"></a><h3>struct GstRtpStreamDepay</h3>
+<pre class="programlisting">struct GstRtpStreamDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html
new file mode 100644
index 0000000..5ee3c05
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpstreampay.html
@@ -0,0 +1,197 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpstreampay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpstreamdepay.html" title="rtpstreamdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpsv3vdepay.html" title="rtpsv3vdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpstreampay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpstreampay.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-rtpstreamdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpsv3vdepay.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-rtpstreampay"></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-rtpstreampay.top_of_page"></a>rtpstreampay</span></h2>
+<p>rtpstreampay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpStreamPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreampay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpstreampay.html#GstRtpStreamPay-struct" title="struct GstRtpStreamPay">GstRtpStreamPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreampay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstRtpStreamPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreampay.description"></a><h2>Description</h2>
+<p>Implements stream payloading of RTP and RTCP packets for connection-oriented
+transport protocols according to RFC4571.</p>
+<div class="refsect2">
+<a name="id-1.2.212.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
+2</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 <span class="gtkdoc opt">!</span> <span class="string">&quot;audio/x-raw,rate=48000&quot;</span> <span class="gtkdoc opt">!</span> vorbisenc <span class="gtkdoc opt">!</span> rtpvorbispay config<span class="gtkdoc opt">-</span>interval<span class="gtkdoc opt">=</span><span class="number">1</span> <span class="gtkdoc opt">!</span> rtpstreampay <span class="gtkdoc opt">!</span> tcpserversink port<span class="gtkdoc opt">=</span><span class="number">5678</span>
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> tcpclientsrc port<span class="gtkdoc opt">=</span><span class="number">5678</span> host<span class="gtkdoc opt">=</span><span class="number">127.0.0.1</span> <span class="keyword">do</span><span class="gtkdoc opt">-</span>timestamp<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> <span class="string">&quot;application/x-rtp-stream,media=audio,clock-rate=48000,encoding-name=VORBIS&quot;</span> <span class="gtkdoc opt">!</span> rtpstreamdepay <span class="gtkdoc opt">!</span> rtpvorbisdepay <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.212.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>Sebastian Dröge &lt;sebastian@centricular.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Payloader/Network</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.212.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</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtcp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtp</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtcp</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-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-rtcp-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtp-stream</td>
+</tr>
+<tr>
+<td><p><span class="term"></span></p></td>
+<td> application/x-srtcp-stream</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreampay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpstreampay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpStreamPay-struct"></a><h3>struct GstRtpStreamPay</h3>
+<pre class="programlisting">struct GstRtpStreamPay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html
new file mode 100644
index 0000000..f670d76
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpsv3vdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpsv3vdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpstreampay.html" title="rtpstreampay">
+<link rel="next" href="gst-plugins-good-plugins-rtptheoradepay.html" title="rtptheoradepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpsv3vdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpsv3vdepay.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-rtpstreampay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtptheoradepay.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-rtpsv3vdepay"></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-rtpsv3vdepay.top_of_page"></a>rtpsv3vdepay</span></h2>
+<p>rtpsv3vdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpSV3VDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsv3vdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpsv3vdepay.html#GstRtpSV3VDepay-struct" title="struct GstRtpSV3VDepay">GstRtpSV3VDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsv3vdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpSV3VDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsv3vdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.213.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.213.6.2.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, clock-rate=(int)90000, encoding-name=(string){ X-SV3V-ES, X-SORENSON-VIDEO, X-SORENSONVIDEO, X-SorensonVideo }</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-svq, svqversion=(int)3</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsv3vdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpsv3vdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpSV3VDepay-struct"></a><h3>struct GstRtpSV3VDepay</h3>
+<pre class="programlisting">struct GstRtpSV3VDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html
new file mode 100644
index 0000000..9c85f23
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtptheoradepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtptheoradepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpsv3vdepay.html" title="rtpsv3vdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtptheorapay.html" title="rtptheorapay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtptheoradepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtptheoradepay.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-rtpsv3vdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtptheorapay.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-rtptheoradepay"></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-rtptheoradepay.top_of_page"></a>rtptheoradepay</span></h2>
+<p>rtptheoradepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpTheoraDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheoradepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtptheoradepay.html#GstRtpTheoraDepay-struct" title="struct GstRtpTheoraDepay">GstRtpTheoraDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheoradepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpTheoraDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheoradepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.214.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.214.6.2.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, clock-rate=(int)90000, encoding-name=(string)THEORA</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-theora</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheoradepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheoradepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpTheoraDepay-struct"></a><h3>struct GstRtpTheoraDepay</h3>
+<pre class="programlisting">struct GstRtpTheoraDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html b/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html
new file mode 100644
index 0000000..22ae322
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtptheorapay.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtptheorapay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtptheoradepay.html" title="rtptheoradepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvorbisdepay.html" title="rtpvorbisdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtptheorapay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtptheorapay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtptheorapay.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-rtptheoradepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvorbisdepay.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-rtptheorapay"></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-rtptheorapay.top_of_page"></a>rtptheorapay</span></h2>
+<p>rtptheorapay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtptheorapay.html#GstRtpTheoraPay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpTheoraPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtptheorapay.html#GstRtpTheoraPay-struct" title="struct GstRtpTheoraPay">GstRtpTheoraPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpTheoraPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.215.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.215.7.2.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-theora</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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)THEORA</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpTheoraPay-struct"></a><h3>struct GstRtpTheoraPay</h3>
+<pre class="programlisting">struct GstRtpTheoraPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtptheorapay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpTheoraPay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Send Config Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 3600</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html
new file mode 100644
index 0000000..92fbb85
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbisdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvorbisdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtptheorapay.html" title="rtptheorapay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvorbispay.html" title="rtpvorbispay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvorbisdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvorbisdepay.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-rtptheorapay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvorbispay.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-rtpvorbisdepay"></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-rtpvorbisdepay.top_of_page"></a>rtpvorbisdepay</span></h2>
+<p>rtpvorbisdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpVorbisDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbisdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvorbisdepay.html#GstRtpVorbisDepay-struct" title="struct GstRtpVorbisDepay">GstRtpVorbisDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbisdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpVorbisDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbisdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.216.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.216.6.2.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, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</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-vorbis</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbisdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbisdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVorbisDepay-struct"></a><h3>struct GstRtpVorbisDepay</h3>
+<pre class="programlisting">struct GstRtpVorbisDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html
new file mode 100644
index 0000000..f127c59
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvorbispay.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvorbispay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvorbisdepay.html" title="rtpvorbisdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvp8depay.html" title="rtpvp8depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvorbispay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvorbispay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvorbispay.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-rtpvorbisdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvp8depay.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-rtpvorbispay"></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-rtpvorbispay.top_of_page"></a>rtpvorbispay</span></h2>
+<p>rtpvorbispay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpvorbispay.html#GstRtpVorbisPay--config-interval" title="The “config-interval” property">config-interval</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpVorbisPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvorbispay.html#GstRtpVorbisPay-struct" title="struct GstRtpVorbisPay">GstRtpVorbisPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpVorbisPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.217.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.217.7.2.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>audio/x-vorbis</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)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string)VORBIS</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVorbisPay-struct"></a><h3>struct GstRtpVorbisPay</h3>
+<pre class="programlisting">struct GstRtpVorbisPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvorbispay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpVorbisPay--config-interval"></a><h3>The <code class="literal">“config-interval”</code> property</h3>
+<pre class="programlisting">  “config-interval”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Send Config Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 3600</p>
+<p>Default value: 0</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html
new file mode 100644
index 0000000..64e6c21
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8depay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvp8depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvorbispay.html" title="rtpvorbispay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvp8pay.html" title="rtpvp8pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvp8depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp8depay.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-rtpvorbispay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvp8pay.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-rtpvp8depay"></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-rtpvp8depay.top_of_page"></a>rtpvp8depay</span></h2>
+<p>rtpvp8depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpVP8Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvp8depay.html#GstRtpVP8Depay-struct" title="struct GstRtpVP8Depay">GstRtpVP8Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpVP8Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.218.6.2.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>Sjoerd Simons &lt;sjoerd@luon.net&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.218.6.2.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, clock-rate=(int)90000, media=(string)video, encoding-name=(string){ VP8, VP8-DRAFT-IETF-01 }</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-vp8</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVP8Depay-struct"></a><h3>struct GstRtpVP8Depay</h3>
+<pre class="programlisting">struct GstRtpVP8Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html
new file mode 100644
index 0000000..86ac947
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp8pay.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvp8pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvp8depay.html" title="rtpvp8depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvp9depay.html" title="rtpvp9depay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvp8pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp8pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp8pay.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-rtpvp8depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvp9depay.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-rtpvp8pay"></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-rtpvp8pay.top_of_page"></a>rtpvp8pay</span></h2>
+<p>rtpvp8pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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"><span class="type">GstVP8RTPPayMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpvp8pay.html#GstRtpVP8Pay--picture-id-mode" title="The “picture-id-mode” property">picture-id-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpVP8Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvp8pay.html#GstRtpVP8Pay-struct" title="struct GstRtpVP8Pay">GstRtpVP8Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpVP8Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.219.7.2.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>Sjoerd Simons &lt;sjoerd@luon.net&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.219.7.2.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-vp8</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, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string){ VP8, VP8-DRAFT-IETF-01 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVP8Pay-struct"></a><h3>struct GstRtpVP8Pay</h3>
+<pre class="programlisting">struct GstRtpVP8Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp8pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpVP8Pay--picture-id-mode"></a><h3>The <code class="literal">“picture-id-mode”</code> property</h3>
+<pre class="programlisting">  “picture-id-mode”          <span class="type">GstVP8RTPPayMode</span></pre>
+<p>The picture ID mode for payloading.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: No Picture ID</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html
new file mode 100644
index 0000000..ec70bee
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9depay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvp9depay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvp8pay.html" title="rtpvp8pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvp9pay.html" title="rtpvp9pay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvp9depay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp9depay.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-rtpvp8pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvp9pay.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-rtpvp9depay"></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-rtpvp9depay.top_of_page"></a>rtpvp9depay</span></h2>
+<p>rtpvp9depay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpVP9Depay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9depay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvp9depay.html#GstRtpVP9Depay-struct" title="struct GstRtpVP9Depay">GstRtpVP9Depay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9depay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpVP9Depay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9depay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.220.6.2.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.220.6.2.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, clock-rate=(int)90000, media=(string)video, encoding-name=(string){ VP9, VP9-DRAFT-IETF-01 }</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-vp9</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9depay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9depay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVP9Depay-struct"></a><h3>struct GstRtpVP9Depay</h3>
+<pre class="programlisting">struct GstRtpVP9Depay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html
new file mode 100644
index 0000000..47a8a8f
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvp9pay.html
@@ -0,0 +1,182 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvp9pay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvp9depay.html" title="rtpvp9depay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvrawdepay.html" title="rtpvrawdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvp9pay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp9pay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvp9pay.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-rtpvp9depay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvrawdepay.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-rtpvp9pay"></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-rtpvp9pay.top_of_page"></a>rtpvp9pay</span></h2>
+<p>rtpvp9pay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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"><span class="type">GstVP9RTPPayMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpvp9pay.html#GstRtpVP9Pay--picture-id-mode" title="The “picture-id-mode” property">picture-id-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpVP9Pay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvp9pay.html#GstRtpVP9Pay-struct" title="struct GstRtpVP9Pay">GstRtpVP9Pay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpVP9Pay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.221.7.2.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.221.7.2.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-vp9</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, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string){ VP9, VP9-DRAFT-IETF-01 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVP9Pay-struct"></a><h3>struct GstRtpVP9Pay</h3>
+<pre class="programlisting">struct GstRtpVP9Pay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvp9pay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpVP9Pay--picture-id-mode"></a><h3>The <code class="literal">“picture-id-mode”</code> property</h3>
+<pre class="programlisting">  “picture-id-mode”          <span class="type">GstVP9RTPPayMode</span></pre>
+<p>The picture ID mode for payloading.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: No Picture ID</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html
new file mode 100644
index 0000000..5b812f1
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvrawdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvp9pay.html" title="rtpvp9pay">
+<link rel="next" href="gst-plugins-good-plugins-rtpvrawpay.html" title="rtpvrawpay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvrawdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvrawdepay.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-rtpvp9pay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpvrawpay.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-rtpvrawdepay"></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-rtpvrawdepay.top_of_page"></a>rtpvrawdepay</span></h2>
+<p>rtpvrawdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpVRawDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvrawdepay.html#GstRtpVRawDepay-struct" title="struct GstRtpVRawDepay">GstRtpVRawDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpVRawDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.222.6.2.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>Wim Taymans &lt;wim.taymans@gmail.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.222.6.2.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, clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string){ RGB, RGBA, BGR, BGRA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1 }, depth=(string){ 8, 10, 12, 16 }</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-raw</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVRawDepay-struct"></a><h3>struct GstRtpVRawDepay</h3>
+<pre class="programlisting">struct GstRtpVRawDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html
new file mode 100644
index 0000000..f156139
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpvrawpay.html
@@ -0,0 +1,183 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpvrawpay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvrawdepay.html" title="rtpvrawdepay">
+<link rel="next" href="gst-plugins-good-plugins-rtpxqtdepay.html" title="rtpxqtdepay">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpvrawpay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvrawpay.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpvrawpay.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-rtpvrawdepay.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-rtpxqtdepay.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-rtpvrawpay"></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-rtpvrawpay.top_of_page"></a>rtpvrawpay</span></h2>
+<p>rtpvrawpay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtpvrawpay.html#GstRtpVRawPay--chunks-per-frame" title="The “chunks-per-frame” property">chunks-per-frame</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstRtpVRawPay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpvrawpay.html#GstRtpVRawPay-struct" title="struct GstRtpVRawPay">GstRtpVRawPay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasepayload.html#GstRTPBasePayload-struct">GstRTPBasePayload</a>
+                    <span class="lineart">╰──</span> GstRtpVRawPay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.223.7.2.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>Wim Taymans &lt;wim.taymans@gmail.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.223.7.2.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-raw, format=(string){ RGB, RGBA, BGR, BGRA, AYUV, UYVY, I420, Y41B, UYVP }, width=(int)[ 1, 32767 ], height=(int)[ 1, 32767 ]</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)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string){ RGB, RGBA, BGR, BGRA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1 }, depth=(string){ 8, 10, 12, 16 }, colorimetry=(string){ BT601-5, BT709-2, SMPTE240M }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpVRawPay-struct"></a><h3>struct GstRtpVRawPay</h3>
+<pre class="programlisting">struct GstRtpVRawPay;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpvrawpay.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstRtpVRawPay--chunks-per-frame"></a><h3>The <code class="literal">“chunks-per-frame”</code> property</h3>
+<pre class="programlisting">  “chunks-per-frame”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Split and send out each frame in multiple chunks to reduce overhead.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 1</p>
+<p>Default value: 10</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html b/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html
new file mode 100644
index 0000000..7b8531b
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtpxqtdepay.html
@@ -0,0 +1,156 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>rtpxqtdepay: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-rtpvrawpay.html" title="rtpvrawpay">
+<link rel="next" href="gst-plugins-good-plugins-rtspsrc.html" title="rtspsrc">
+<meta name="generator" content="GTK-Doc V1.25 (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-rtpxqtdepay.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-rtpxqtdepay.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-rtpvrawpay.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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-rtpxqtdepay"></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-rtpxqtdepay.top_of_page"></a>rtpxqtdepay</span></h2>
+<p>rtpxqtdepay</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<a name="GstRtpXQTDepay"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpxqtdepay.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-rtpxqtdepay.html#GstRtpXQTDepay-struct" title="struct GstRtpXQTDepay">GstRtpXQTDepay</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpxqtdepay.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstrtpbasedepayload.html#GstRTPBaseDepayload-struct">GstRTPBaseDepayload</a>
+                    <span class="lineart">╰──</span> GstRtpXQTDepay
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpxqtdepay.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.224.6.2.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-isomp4.html#plugin-isomp4">isomp4</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim@fluendo.com&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.224.6.2.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, payload=(int)[ 96, 127 ], media=(string){ audio, video }, clock-rate=(int)[ 1, 2147483647 ], encoding-name=(string){ X-QT, X-QUICKTIME }</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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpxqtdepay.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-rtpxqtdepay.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstRtpXQTDepay-struct"></a><h3>struct GstRtpXQTDepay</h3>
+<pre class="programlisting">struct GstRtpXQTDepay;</pre>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
index 9ce8f8d..2da55e3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-rtspsrc.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-good-plugins-rtpxqtdepay.html" title="rtpxqtdepay">
 <link rel="next" href="gst-plugins-good-plugins-sbcparse.html" title="sbcparse">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -23,7 +23,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-rtpssrcdemux.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-rtpxqtdepay.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">
@@ -231,6 +231,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--max-rtcp-rtp-time-diff" title="The “max-rtcp-rtp-time-diff” property">max-rtcp-rtp-time-diff</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-rtspsrc.html#GstRTSPSrc--rfc7273-sync" title="The “rfc7273-sync” property">rfc7273-sync</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -322,7 +327,7 @@
 <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.149.9.7"></a><h3>Example launch line</h3>
+<a name="id-1.2.225.9.7"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -339,7 +344,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.149.9.8.1"></a><h3>Element Information</h3>
+<a name="id-1.2.225.9.8.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -365,7 +370,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.149.9.8.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.225.9.8.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -688,7 +693,7 @@
 <pre class="programlisting">  “user-agent”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
 <p>The User-Agent string to send to the server.</p>
 <p>Flags: Read / Write</p>
-<p>Default value: "GStreamer/1.8.3"</p>
+<p>Default value: "GStreamer/1.9.90"</p>
 </div>
 <hr>
 <div class="refsect2">
@@ -699,6 +704,14 @@
 <p>Allowed values: &gt;= G_MAXULONG</p>
 <p>Default value: 1000</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstRTSPSrc--rfc7273-sync"></a><h3>The <code class="literal">“rfc7273-sync”</code> property</h3>
+<pre class="programlisting">  “rfc7273-sync”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Synchronize received streams to the RFC7273 clock (requires clock and offset to be provided).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-rtspsrc.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
index 2648ac3..cd05afb 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-sbcparse.html
@@ -62,7 +62,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.150.6.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.226.6.3.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -88,7 +88,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.150.6.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.226.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 fc47691..7527b3b 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.151.7.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.227.7.4"></a><h3>Example pipelines</h3>
 <p>
 </p>
 <div class="informalexample">
@@ -148,7 +148,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.151.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.227.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.151.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.227.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 249b442..928c101 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.152.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.228.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.152.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.228.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.152.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.228.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 57527e7..1bc64ff 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 @@
 <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.153.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.229.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.153.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.229.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.153.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.229.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 8dbcd7c..cce15c4 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-smokedec.html" title="smokedec">
+<link rel="next" href="gst-plugins-good-plugins-smptealpha.html" title="smptealpha">
 <meta name="generator" content="GTK-Doc V1.25 (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-smokedec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></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-shout2send"></a><div class="titlepage"></div>
@@ -156,10 +156,28 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-shout2send.description"></a><h2>Description</h2>
+<p>shout2send pushes a media stream to an Icecast server</p>
+<div class="refsect2">
+<a name="id-1.2.230.9.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> uridecodebin uri<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///path/to/audiofile ! audioconvert ! vorbisenc ! oggmux ! shout2send mount=/stream.ogg port=8000 username=source password=somepassword ip=server_IP_address_or_hostname</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline demuxes, decodes, re-encodes and re-muxes an audio
+media file into oggvorbis and sends the resulting stream to an Icecast
+server. Properties mount, port, username and password are all server-config
+dependent.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.154.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.230.9.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -185,7 +203,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.154.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.230.9.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-smokedec.html b/docs/plugins/html/gst-plugins-good-plugins-smokedec.html
deleted file mode 100644
index 4660fa0..0000000
--- a/docs/plugins/html/gst-plugins-good-plugins-smokedec.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!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.79.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.25 (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 class="informaltable" 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.25</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
deleted file mode 100644
index e54186c..0000000
--- a/docs/plugins/html/gst-plugins-good-plugins-smokeenc.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!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.79.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.25 (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>
-</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.other"></a><h2>Types and Values</h2>
-<div class="informaltable"><table class="informaltable" 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>
-<div class="footer">
-<hr>Generated by GTK-Doc V1.25</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 8aaa2f4..6cc8a49 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smpte.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smpte.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-smptealpha.html" title="smptealpha">
-<link rel="next" href="gst-plugins-good-plugins-souphttpsrc.html" title="souphttpsrc">
+<link rel="next" href="gst-plugins-good-plugins-souphttpclientsink.html" title="souphttpclientsink">
 <meta name="generator" content="GTK-Doc V1.25 (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-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>
+<td><a accesskey="n" href="gst-plugins-good-plugins-souphttpclientsink.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>
@@ -101,7 +101,7 @@
 higher presision will create a mask with smoother gradients in order to avoid
 banding.</p>
 <div class="refsect2">
-<a name="id-1.2.158.7.4"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.232.7.4"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -120,7 +120,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.158.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.232.7.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -146,7 +146,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.158.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.232.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 88bf13e..17a6a55 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-smptealpha.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-smokeenc.html" title="smokeenc">
+<link rel="prev" href="gst-plugins-good-plugins-shout2send.html" title="shout2send">
 <link rel="next" href="gst-plugins-good-plugins-smpte.html" title="smpte">
 <meta name="generator" content="GTK-Doc V1.25 (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-smokeenc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></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-smpte.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -107,7 +107,7 @@
 A higher presision will create a mask with smoother gradients in order to
 avoid banding.</p>
 <div class="refsect2">
-<a name="id-1.2.157.7.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.231.7.5"></a><h3>Sample pipelines</h3>
 <p>
 Here is a pipeline to demonstrate the smpte transition :
 </p>
@@ -124,7 +124,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.157.7.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.231.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.157.7.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.231.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-souphttpclientsink.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html
new file mode 100644
index 0000000..4bd7f09
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-souphttpclientsink.html
@@ -0,0 +1,324 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>souphttpclientsink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<meta name="generator" content="GTK-Doc V1.25 (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-souphttpclientsink.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-souphttpclientsink.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-souphttpclientsink.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-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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-souphttpclientsink"></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-souphttpclientsink.top_of_page"></a>souphttpclientsink</span></h2>
+<p>souphttpclientsink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--automatic-redirect" title="The “automatic-redirect” property">automatic-redirect</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#GStrv"><span class="type">GStrv</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--cookies" title="The “cookies” property">cookies</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--location" title="The “location” property">location</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy" title="The “proxy” property">proxy</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy-id" title="The “proxy-id” property">proxy-id</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--proxy-pw" title="The “proxy-pw” property">proxy-pw</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<span class="type">SoupSession</span> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--session" title="The “session” property">session</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-agent" title="The “user-agent” property">user-agent</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-id" title="The “user-id” property">user-id</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--user-pw" title="The “user-pw” property">user-pw</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">SoupLoggerLogLevel</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--http-log-level" title="The “http-log-level” property">http-log-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--retries" title="The “retries” property">retries</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-souphttpclientsink.html#GstSoupHttpClientSink--retry-delay" title="The “retry-delay” property">retry-delay</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstSoupHttpClientSink"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-souphttpclientsink.html#GstSoupHttpClientSink-struct" title="struct GstSoupHttpClientSink">GstSoupHttpClientSink</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseSink.html#GstBaseSink-struct">GstBaseSink</a>
+                    <span class="lineart">╰──</span> GstSoupHttpClientSink
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.233.7.2.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-soup.html#plugin-soup">soup</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>David Schleef &lt;ds@entropywave.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Generic</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.233.7.2.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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink-struct"></a><h3>struct GstSoupHttpClientSink</h3>
+<pre class="programlisting">struct GstSoupHttpClientSink;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-souphttpclientsink.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--automatic-redirect"></a><h3>The <code class="literal">“automatic-redirect”</code> property</h3>
+<pre class="programlisting">  “automatic-redirect”       <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Automatically follow HTTP redirects (HTTP Status Code 3xx).</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--cookies"></a><h3>The <code class="literal">“cookies”</code> property</h3>
+<pre class="programlisting">  “cookies”                  <a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#GStrv"><span class="type">GStrv</span></a></pre>
+<p>HTTP request cookies.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--location"></a><h3>The <code class="literal">“location”</code> property</h3>
+<pre class="programlisting">  “location”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>URI to send to.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--proxy"></a><h3>The <code class="literal">“proxy”</code> property</h3>
+<pre class="programlisting">  “proxy”                    <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>HTTP proxy server URI.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--proxy-id"></a><h3>The <code class="literal">“proxy-id”</code> property</h3>
+<pre class="programlisting">  “proxy-id”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>user id for proxy authentication.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--proxy-pw"></a><h3>The <code class="literal">“proxy-pw”</code> property</h3>
+<pre class="programlisting">  “proxy-pw”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>user password for proxy authentication.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--session"></a><h3>The <code class="literal">“session”</code> property</h3>
+<pre class="programlisting">  “session”                  <span class="type">SoupSession</span> *</pre>
+<p>SoupSession object to use for communication.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--user-agent"></a><h3>The <code class="literal">“user-agent”</code> property</h3>
+<pre class="programlisting">  “user-agent”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>Value of the User-Agent HTTP request header field.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: "GStreamer souphttpclientsink "</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--user-id"></a><h3>The <code class="literal">“user-id”</code> property</h3>
+<pre class="programlisting">  “user-id”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>user id for authentication.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--user-pw"></a><h3>The <code class="literal">“user-pw”</code> property</h3>
+<pre class="programlisting">  “user-pw”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<p>user password for authentication.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: ""</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--http-log-level"></a><h3>The <code class="literal">“http-log-level”</code> property</h3>
+<pre class="programlisting">  “http-log-level”           <span class="type">SoupLoggerLogLevel</span></pre>
+<p>Set log level for soup's HTTP session log.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: SOUP_LOGGER_LOG_NONE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--retries"></a><h3>The <code class="literal">“retries”</code> property</h3>
+<pre class="programlisting">  “retries”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum number of retries, zero to disable, -1 to retry forever.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= G_MAXULONG</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstSoupHttpClientSink--retry-delay"></a><h3>The <code class="literal">“retry-delay”</code> property</h3>
+<pre class="programlisting">  “retry-delay”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Delay in seconds between retries after a failure.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 1</p>
+<p>Default value: 5</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html b/docs/plugins/html/gst-plugins-good-plugins-souphttpsrc.html
index 70fcf9e..c1ae9e6 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.79.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="prev" href="gst-plugins-good-plugins-souphttpclientsink.html" title="souphttpclientsink">
 <link rel="next" href="gst-plugins-good-plugins-spectrum.html" title="spectrum">
 <meta name="generator" content="GTK-Doc V1.25 (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-smpte.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-souphttpclientsink.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">
@@ -205,10 +205,88 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-souphttpsrc.description"></a><h2>Description</h2>
+<p>This plugin reads data from a remote location specified by a URI.
+Supported protocols are 'http', 'https'.</p>
+<p>An HTTP proxy must be specified by its URL.
+If the "http_proxy" environment variable is set, its value is used.
+If built with libsoup's GNOME integration features, the GNOME proxy
+configuration will be used, or failing that, proxy autodetection.
+The <a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--proxy" title="The “proxy” property"><span class="type">“proxy”</span></a> property can be used to override the default.</p>
+<p>In case the <a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode" title="The “iradio-mode” property"><span class="type">“iradio-mode”</span></a> property is set and the location is
+an HTTP resource, souphttpsrc will send special Icecast HTTP headers to the
+server to request additional Icecast meta-information.
+If the server is not an Icecast server, it will behave as if the
+<a class="link" href="gst-plugins-good-plugins-souphttpsrc.html#GstSoupHTTPSrc--iradio-mode" title="The “iradio-mode” property"><span class="type">“iradio-mode”</span></a> property were not set. If it is, souphttpsrc will
+output data with a media type of application/x-icy, in which case you will
+need to use the <span class="type">ICYDemux</span> element as follow-up element to extract the Icecast
+metadata and to determine the underlying media type.</p>
+<div class="refsect2">
+<a name="id-1.2.234.8.5"></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
+2</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 souphttpsrc location<span class="gtkdoc opt">=</span>https<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//some.server.org/index.html</span>
+    <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=/</span>home<span class="gtkdoc opt">/</span>joe<span class="gtkdoc opt">/</span>server<span class="gtkdoc opt">.</span>html</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ The above pipeline reads a web page from a server using the HTTPS protocol
+and writes it to a local file.
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4</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 souphttpsrc user<span class="gtkdoc opt">-</span>agent<span class="gtkdoc opt">=</span><span class="string">&quot;FooPlayer 0.99 beta&quot;</span>
+    automatic<span class="gtkdoc opt">-</span>redirect<span class="gtkdoc opt">=</span><span class="keyword">false</span> proxy<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//proxy.intranet.local:8080</span>
+    location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//music.foobar.com/demo.mp3 ! mad ! audioconvert</span>
+    <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> alsasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ The above pipeline will read and decode and play an mp3 file from a
+web server using the HTTP protocol. If the server sends redirects,
+the request fails instead of following the redirect. The specified
+HTTP proxy server is used. The User-Agent HTTP request header
+is set to a custom string instead of "GStreamer souphttpsrc."
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2
+3
+4</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 souphttpsrc location<span class="gtkdoc opt">=</span>http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//10.11.12.13/mjpeg</span>
+    <span class="keyword">do</span><span class="gtkdoc opt">-</span>timestamp<span class="gtkdoc opt">=</span><span class="keyword">true</span> <span class="gtkdoc opt">!</span> multipartdemux
+    <span class="gtkdoc opt">!</span> image<span class="gtkdoc opt">/</span>jpeg<span class="gtkdoc opt">,</span>width<span class="gtkdoc opt">=</span><span class="number">640</span><span class="gtkdoc opt">,</span>height<span class="gtkdoc opt">=</span><span class="number">480</span> <span class="gtkdoc opt">!</span> matroskamux
+    <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>mjpeg<span class="gtkdoc opt">.</span>mkv</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ The above pipeline reads a motion JPEG stream from an IP camera
+using the HTTP protocol, encoded as mime/multipart image/jpeg
+parts, and writes a Matroska motion JPEG file. The width and
+height properties are set in the caps to provide the Matroska
+multiplexer with the information to set this in the header.
+Timestamps are set on the buffers as they arrive from the camera.
+These are used by the mime/multipart demultiplexer to emit timestamps
+on the JPEG-encoded video frame buffers. This allows the Matroska
+multiplexer to timestamp the frames in the resulting file.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.159.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.234.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -234,7 +312,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.159.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.234.8.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-spectrum.html b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
index 6af41f5..18ed22f 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-spectrum.html
@@ -157,7 +157,7 @@
 fields will be each a nested <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstControlSource.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.161.7.8"></a><h3>Example application</h3>
+<a name="id-1.2.236.7.8"></a><h3>Example application</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -419,7 +419,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.161.7.9.1"></a><h3>Element Information</h3>
+<a name="id-1.2.236.7.9.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -445,7 +445,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.161.7.9.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.236.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 4a235a3..bc3fd71 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexdec.html
@@ -73,10 +73,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-speexdec.description"></a><h2>Description</h2>
+<p>This element decodes a Speex stream to raw integer audio.</p>
+<a class="ulink" href="http://www.speex.org/" target="_top">Speex</a> is a royalty-free
+<p>audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
+Foundation</a>.</p>
+<div class="refsect2">
+<a name="id-1.2.237.7.5"></a><h3>Example pipelines</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>speex<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> oggdemux <span class="gtkdoc opt">!</span> speexdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> alsasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Decode an Ogg/Speex file. To create an Ogg/Speex file refer to the
+documentation of speexenc.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.162.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.237.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -102,7 +121,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.162.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.237.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,6 +194,10 @@
 <p>Default value: TRUE</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-speexdec.see-also"></a><h2>See Also</h2>
+<p>speexenc, oggdemux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
index 6cd3bda..8e3436a 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-speexenc.html
@@ -128,10 +128,28 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-speexenc.description"></a><h2>Description</h2>
+<p>This element encodes audio as a Speex stream.</p>
+<a class="ulink" href="http://www.speex.org/" target="_top">Speex</a> is a royalty-free
+<p>audio codec maintained by the <a class="ulink" href="http://www.xiph.org/" target="_top">Xiph.org
+Foundation</a>.</p>
+<div class="refsect2">
+<a name="id-1.2.238.8.5"></a><h3>Example pipelines</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> audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">100</span> <span class="gtkdoc opt">!</span> speexenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>beep<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encode an Ogg/Speex file.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.163.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.238.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -157,7 +175,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.163.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.238.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -311,6 +329,10 @@
 <p>Default value: Auto</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-speexenc.see-also"></a><h2>See Also</h2>
+<p>speexdec, oggmux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
index bb8c268..cafc917 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitfilesrc.html
@@ -89,7 +89,7 @@
 (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.164.8.4"></a><h3>Example launch lines</h3>
+<a name="id-1.2.239.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.164.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.239.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.164.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.239.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 a03ed8e..6bbd430 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsink.html
@@ -82,6 +82,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--max-files" title="The “max-files” property">max-files</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsink.html#GstSplitMuxSink--send-keyframe-requests" title="The “send-keyframe-requests” property">send-keyframe-requests</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -146,7 +151,7 @@
 file parts to be played individually correctly. In the absence of a video
 stream, the first available stream is used as reference for synchronization.</p>
 <div class="refsect2">
-<a name="id-1.2.165.9.6"></a><h3>Example pipelines</h3>
+<a name="id-1.2.240.9.6"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -165,7 +170,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.165.9.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.240.9.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -191,7 +196,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.165.9.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.240.9.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -334,6 +339,14 @@
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstSplitMuxSink--send-keyframe-requests"></a><h3>The <code class="literal">“send-keyframe-requests”</code> property</h3>
+<pre class="programlisting">  “send-keyframe-requests”   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Request a keyframe every max-size-time ns to try splitting at that point. Needs max-size-bytes to be 0 in order to be effective.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-splitmuxsink.signal-details"></a><h2>Signal Details</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
index 90a55ef..ff79c03 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-splitmuxsrc.html
@@ -18,7 +18,8 @@
                   <a href="#gst-plugins-good-plugins-splitmuxsrc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-splitmuxsrc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-splitmuxsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-splitmuxsrc.properties" class="shortcut">Properties</a></span>
+                  <a href="#gst-plugins-good-plugins-splitmuxsrc.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-splitmuxsrc.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>
@@ -51,6 +52,21 @@
 </tr></tbody>
 </table></div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-splitmuxsrc.signals"></a><h2>Signals</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#GStrv"><span class="returnvalue">GStrv</span></a></td>
+<td class="signal_name"><a class="link" href="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc-format-location" title="The “format-location” signal">format-location</a></td>
+<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></td>
+</tr></tbody>
+</table></div>
+</div>
 <a name="GstSplitMuxSrc"></a><div class="refsect1">
 <a name="gst-plugins-good-plugins-splitmuxsrc.other"></a><h2>Types and Values</h2>
 <div class="informaltable"><table class="informaltable" width="100%" border="0">
@@ -88,7 +104,7 @@
 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.166.8.4"></a><h3>Example pipelines</h3>
+<a name="id-1.2.241.9.4"></a><h3>Example pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -115,7 +131,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.166.8.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.241.9.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +157,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.166.8.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.241.9.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -238,6 +254,45 @@
 <p>Default value: NULL</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-splitmuxsrc.signal-details"></a><h2>Signal Details</h2>
+<div class="refsect2">
+<a name="GstSplitMuxSrc-format-location"></a><h3>The <code class="literal">“format-location”</code> signal</h3>
+<pre class="programlisting"><a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#GStrv"><span class="returnvalue">GStrv</span></a>
+user_function (<a class="link" href="gst-plugins-good-plugins-splitmuxsrc.html#GstSplitMuxSrc"><span class="type">GstSplitMuxSrc</span></a> *splitmux,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>        user_data)</pre>
+<div class="refsect3">
+<a name="GstSplitMuxSrc-format-location.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" 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-splitmuxsrc.html#GstSplitMuxSrc"><span class="type">GstSplitMuxSrc</span></a></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="GstSplitMuxSrc-format-location.returns"></a><h4>Returns</h4>
+<p> A NULL-terminated sorted array of strings containing the
+filenames of the input files. The array will be freed internally
+using <a href="/usr/share/gtk-doc/html/glibglib-String-Utility-Functions.html#g-strfreev"><code class="function">g_strfreev()</code></a></p>
+</div>
+<p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
+<p class="since">Since: 1.8</p>
+</div>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
index 670ed81..137f82b 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-streaktv.html
@@ -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.167.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.242.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.167.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.242.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.167.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.242.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 21a2869..5f76253 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-udpsink.html" title="udpsink">
+<link rel="next" href="gst-plugins-good-plugins-testsink.html" title="testsink">
 <meta name="generator" content="GTK-Doc V1.25 (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-udpsink.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-testsink.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.168.7.3"></a><h3>Example launch lines</h3>
+<a name="id-1.2.243.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.168.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.243.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.168.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.243.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-testsink.html b/docs/plugins/html/gst-plugins-good-plugins-testsink.html
new file mode 100644
index 0000000..49f52f8
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-testsink.html
@@ -0,0 +1,104 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>testsink: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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">
+<meta name="generator" content="GTK-Doc V1.25 (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-testsink.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-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>
+</tr></table>
+<div class="refentry">
+<a name="gst-plugins-good-plugins-testsink"></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-testsink.top_of_page"></a>testsink</span></h2>
+<p>testsink</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-testsink.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.244.3.2.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-debug.html#plugin-debug">debug</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Benjamin Otte &lt;otte@gnome&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Testing</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.244.3.2.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>ANY</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-testsink.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-testsink.other_details"></a><h2>Types and Values</h2>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
index 5f7f95e..d8ed921 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsink.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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="prev" href="gst-plugins-good-plugins-testsink.html" title="testsink">
 <link rel="next" href="gst-plugins-good-plugins-udpsrc.html" title="udpsrc">
 <meta name="generator" content="GTK-Doc V1.25 (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-taginject.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-testsink.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">
@@ -92,7 +92,7 @@
 <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.169.8.3"></a><h3>Examples</h3>
+<a name="id-1.2.245.8.3"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -108,7 +108,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.169.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.245.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.169.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.245.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 3212b7d..1c2428d 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-udpsrc.html
@@ -125,6 +125,11 @@
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--loop" title="The “loop” property">loop</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-udpsrc.html#GstUDPSrc--retrieve-sender-address" title="The “retrieve-sender-address” property">retrieve-sender-address</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
 </tbody>
 </table></div>
 </div>
@@ -206,7 +211,7 @@
 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.170.8.17"></a><h3>Examples</h3>
+<a name="id-1.2.246.8.17"></a><h3>Examples</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -247,7 +252,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.170.8.18.1"></a><h3>Element Information</h3>
+<a name="id-1.2.246.8.18.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -273,7 +278,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.170.8.18.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.246.8.18.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -433,6 +438,14 @@
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstUDPSrc--retrieve-sender-address"></a><h3>The <code class="literal">“retrieve-sender-address”</code> property</h3>
+<pre class="programlisting">  “retrieve-sender-address”  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Whether to retrieve the sender address and add it to buffers as meta. Disabling this might result in minor performance improvements in certain scenarios.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-udpsrc.see-also"></a><h2>See Also</h2>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
index 6886f54..0dfba51 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2radio.html
@@ -87,10 +87,30 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2radio.description"></a><h2>Description</h2>
+<p>v4l2radio can be used to control radio device
+and to tune it to different radiostations.</p>
+<div class="refsect2">
+<a name="id-1.2.247.8.3"></a><h3>Example launch lines</h3>
+<div class="informalexample">
+  <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
+    <tbody>
+      <tr>
+        <td class="listing_lines" align="right"><pre>1
+2</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> v4l2radio device<span class="gtkdoc opt">=/</span>dev<span class="gtkdoc opt">/</span>radio0 frequency<span class="gtkdoc opt">=</span><span class="number">101200000</span>
+gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> alsasrc device<span class="gtkdoc opt">=</span>hw<span class="gtkdoc opt">:</span><span class="number">1</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> alsasink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+
+First pipeline tunes the radio device /dev/radio0 to station 101.2 MHz,
+second pipeline connects digital audio out (hw:1) to default sound card.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.171.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.247.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -116,7 +136,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.171.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.247.8.4.2"></a><h3>Element Pads</h3>
 </div>
 </div>
 </div>
@@ -129,6 +149,7 @@
 <div class="refsect2">
 <a name="GstV4l2Radio-struct"></a><h3>struct GstV4l2Radio</h3>
 <pre class="programlisting">struct GstV4l2Radio;</pre>
+<p>Opaque video4linux2 radio tuner element</p>
 </div>
 </div>
 <div class="refsect1">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
index 5258725..2084aab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2sink.html
@@ -187,10 +187,46 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2sink.description"></a><h2>Description</h2>
+<p>v4l2sink can be used to display video to v4l2 devices (screen overlays
+provided by the graphics hardware, tv-out, etc)</p>
+<div class="refsect2">
+<a name="id-1.2.248.8.3"></a><h3>Example launch lines</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> v4l2sink device<span class="gtkdoc opt">=/</span>dev<span class="gtkdoc opt">/</span>video1</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline displays a test pattern on /dev/video1
+<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 videotestsrc <span class="gtkdoc opt">!</span> navigationtest <span class="gtkdoc opt">!</span> v4l2sink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ A pipeline to test navigation events.
+While moving the mouse pointer over the test signal you will see a black box
+following the mouse pointer. If you press the mouse button somewhere on the
+video and release it somewhere else a green box will appear where you pressed
+the button and a red one where you released it. (The navigationtest element
+is part of gst-plugins-good.) You can observe here that even if the images
+are scaled through hardware the pointer coordinates are converted back to the
+original video frame geometry so that the box can be drawn to the correct
+position. This also handles borders correctly, limiting coordinates to the
+image area
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.172.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.248.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -216,7 +252,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.172.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.248.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-v4l2src.html b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
index 22c3175..3f26325 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-v4l2src.html
@@ -163,10 +163,39 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-v4l2src.description"></a><h2>Description</h2>
+<p>v4l2src can be used to capture video from v4l2 devices, like webcams and tv
+cards.</p>
+<div class="refsect2">
+<a name="id-1.2.249.9.3"></a><h3>Example launch lines</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> v4l2src <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows the video captured from /dev/video0 tv card and for
+webcams.
+<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> v4l2src <span class="gtkdoc opt">!</span> jpegdec <span class="gtkdoc opt">!</span> xvimagesink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline shows the video captured from a webcam that delivers jpeg
+images.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.173.9.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.249.9.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -192,7 +221,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.173.9.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.249.9.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -281,6 +310,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src-struct"></a><h3>struct GstV4l2Src</h3>
 <pre class="programlisting">struct GstV4l2Src;</pre>
+<p>Opaque object.</p>
 </div>
 </div>
 <div class="refsect1">
@@ -320,7 +350,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--brightness"></a><h3>The <code class="literal">“brightness”</code> property</h3>
 <pre class="programlisting">  “brightness”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>Picture brightness, or more precisely, the black level.</p>
+<p>Picture brightness, or more precisely, the black level</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
@@ -328,7 +358,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--contrast"></a><h3>The <code class="literal">“contrast”</code> property</h3>
 <pre class="programlisting">  “contrast”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>Picture contrast or luma gain.</p>
+<p>Picture contrast or luma gain</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
@@ -336,7 +366,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--hue"></a><h3>The <code class="literal">“hue”</code> property</h3>
 <pre class="programlisting">  “hue”                      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>Hue or color balance.</p>
+<p>Hue or color balance</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
@@ -344,7 +374,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--saturation"></a><h3>The <code class="literal">“saturation”</code> property</h3>
 <pre class="programlisting">  “saturation”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
-<p>Picture color saturation or chroma gain.</p>
+<p>Picture color saturation or chroma gain</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
@@ -352,7 +382,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--norm"></a><h3>The <code class="literal">“norm”</code> property</h3>
 <pre class="programlisting">  “norm”                     <span class="type">V4L2_TV_norms</span></pre>
-<p>video standard.</p>
+<p>TV norm</p>
 <p>Flags: Read / Write</p>
 <p>Default value: none</p>
 </div>
@@ -360,7 +390,7 @@
 <div class="refsect2">
 <a name="GstV4l2Src--io-mode"></a><h3>The <code class="literal">“io-mode”</code> property</h3>
 <pre class="programlisting">  “io-mode”                  <span class="type">GstV4l2IOMode</span></pre>
-<p>I/O mode.</p>
+<p>IO Mode</p>
 <p>Flags: Read / Write</p>
 <p>Default value: GST_V4L2_IO_AUTO</p>
 </div>
@@ -368,24 +398,31 @@
 <div class="refsect2">
 <a name="GstV4l2Src--extra-controls"></a><h3>The <code class="literal">“extra-controls”</code> property</h3>
 <pre class="programlisting">  “extra-controls”           <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstStructure.html#GstStructure-struct"><span class="type">GstStructure</span></a> *</pre>
-<p>Extra v4l2 controls (CIDs) for the device.</p>
+<p>Additional v4l2 controls for the device. The controls are identified
+by the control name (lowercase with '_' for any non-alphanumeric
+characters).</p>
 <p>Flags: Read / Write</p>
+<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstV4l2Src--force-aspect-ratio"></a><h3>The <code class="literal">“force-aspect-ratio”</code> property</h3>
 <pre class="programlisting">  “force-aspect-ratio”       <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>When enabled, the pixel aspect ratio will be enforced.</p>
+<p>When enabled, the pixel aspect ratio queried from the device or set
+with the pixel-aspect-ratio property will be enforced.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
+<p class="since">Since: 1.2</p>
 </div>
 <hr>
 <div class="refsect2">
 <a name="GstV4l2Src--pixel-aspect-ratio"></a><h3>The <code class="literal">“pixel-aspect-ratio”</code> property</h3>
 <pre class="programlisting">  “pixel-aspect-ratio”       <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>Overwrite the pixel aspect ratio of the device.</p>
+<p>The pixel aspect ratio of the device. This overwrites the pixel aspect
+ratio queried from the device.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: "1/1"</p>
+<p class="since">Since: 1.2</p>
 </div>
 </div>
 <div class="refsect1">
@@ -393,11 +430,49 @@
 <div class="refsect2">
 <a name="GstV4l2Src-prepare-format"></a><h3>The <code class="literal">“prepare-format”</code> signal</h3>
 <pre class="programlisting"><span class="returnvalue">void</span>
-user_function (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *gstv4l2src,
-               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>        arg1,
-               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>    *arg2,
+user_function (<a class="link" href="gst-plugins-good-plugins-v4l2src.html#GstV4l2Src"><span class="type">GstV4l2Src</span></a> *v4l2src,
+               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a>        fd,
+               <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstCaps.html#GstCaps-struct"><span class="type">GstCaps</span></a>    *caps,
                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)</pre>
+<p>This signal gets emitted before calling the v4l2 VIDIOC_S_FMT ioctl
+(set format). This allows for any custom configuration of the device to
+happen prior to the format being set.
+This is mostly useful for UVC H264 encoding cameras which need the H264
+Probe &amp; Commit to happen prior to the normal Probe &amp; Commit.</p>
+<div class="refsect3">
+<a name="GstV4l2Src-prepare-format.parameters"></a><h4>Parameters</h4>
+<div class="informaltable"><table class="informaltable" 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>v4l2src</p></td>
+<td class="parameter_description"><p>the v4l2src instance</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>fd</p></td>
+<td class="parameter_description"><p>the file descriptor of the current device</p></td>
+<td class="parameter_annotations"> </td>
+</tr>
+<tr>
+<td class="parameter_name"><p>caps</p></td>
+<td class="parameter_description"><p>the caps of the format being set</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>
 <p>Flags: <a href="/usr/share/gtk-doc/html/gobjectgobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS">Run Last</a></p>
+<p class="since">Since: 0.10.32</p>
 </div>
 </div>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
index 1ebfc8a..99f1174 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vertigotv.html
@@ -83,7 +83,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.174.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.250.7.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -99,7 +99,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.174.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.250.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -125,7 +125,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.174.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.250.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-videobalance.html b/docs/plugins/html/gst-plugins-good-plugins-videobalance.html
index 7a68efa..0d32db0 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 @@
 <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.175.8.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.251.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.175.8.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.251.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.175.8.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.251.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 fa8f199..2e539ab 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videobox.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videobox.html
@@ -58,7 +58,7 @@
 <td class="property_flags">Read / Write</td>
 </tr>
 <tr>
-<td class="property_type"><span class="type">GstVideoBoxFill</span></td>
+<td class="property_type"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBoxFill" title="enum GstVideoBoxFill"><span class="type">GstVideoBoxFill</span></a></td>
 <td class="property_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox--fill" title="The “fill” property">fill</a></td>
 <td class="property_flags">Read / Write</td>
 </tr>
@@ -92,10 +92,16 @@
 <col width="150px" class="name">
 <col class="description">
 </colgroup>
-<tbody><tr>
+<tbody>
+<tr>
 <td class="datatype_keyword">struct</td>
 <td class="function_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBox-struct" title="struct GstVideoBox">GstVideoBox</a></td>
-</tr></tbody>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBoxFill" title="enum GstVideoBoxFill">GstVideoBoxFill</a></td>
+</tr>
+</tbody>
 </table></div>
 </div>
 <div class="refsect1">
@@ -149,7 +155,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.176.7.10.1"></a><h3>Element Information</h3>
+<a name="id-1.2.252.7.10.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,7 +181,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.176.7.10.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.252.7.10.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -237,6 +243,57 @@
 <a name="GstVideoBox-struct"></a><h3>struct GstVideoBox</h3>
 <pre class="programlisting">struct GstVideoBox;</pre>
 </div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoBoxFill"></a><h3>enum GstVideoBoxFill</h3>
+<div class="refsect3">
+<a name="GstVideoBoxFill.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-BLACK:CAPS"></a>VIDEO_BOX_FILL_BLACK</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-GREEN:CAPS"></a>VIDEO_BOX_FILL_GREEN</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-BLUE:CAPS"></a>VIDEO_BOX_FILL_BLUE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-RED:CAPS"></a>VIDEO_BOX_FILL_RED</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-YELLOW:CAPS"></a>VIDEO_BOX_FILL_YELLOW</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-WHITE:CAPS"></a>VIDEO_BOX_FILL_WHITE</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-BOX-FILL-LAST:CAPS"></a>VIDEO_BOX_FILL_LAST</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-videobox.property-details"></a><h2>Property Details</h2>
@@ -268,7 +325,7 @@
 <hr>
 <div class="refsect2">
 <a name="GstVideoBox--fill"></a><h3>The <code class="literal">“fill”</code> property</h3>
-<pre class="programlisting">  “fill”                     <span class="type">GstVideoBoxFill</span></pre>
+<pre class="programlisting">  “fill”                     <a class="link" href="gst-plugins-good-plugins-videobox.html#GstVideoBoxFill" title="enum GstVideoBoxFill"><span class="type">GstVideoBoxFill</span></a></pre>
 <p>How to fill the borders.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: Black</p>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videocrop.html b/docs/plugins/html/gst-plugins-good-plugins-videocrop.html
index 6f97f6f..80ae174 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 @@
 <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.177.7.6"></a><h3>Example launch line</h3>
+<a name="id-1.2.253.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.177.7.7.1"></a><h3>Element Information</h3>
+<a name="id-1.2.253.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.177.7.7.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.253.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 ebe4cfe..69272b4 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videoflip.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videoflip.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-videocrop.html" title="videocrop">
-<link rel="next" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
+<link rel="next" href="gst-plugins-good-plugins-videomedian.html" title="videomedian">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
 </head>
@@ -16,13 +16,14 @@
 <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-videoflip.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
-                  <a href="#gst-plugins-good-plugins-videoflip.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videoflip.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videoflip.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
                   <a href="#gst-plugins-good-plugins-videoflip.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-videocrop.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-videomixer.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-videomedian.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-videoflip"></a><div class="titlepage"></div>
@@ -79,10 +80,16 @@
 </pre>
 </div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-videoflip.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstVideoFlip implements
+ GstVideoDirection.</p>
+</div>
+<div class="refsect1">
 <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.178.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.254.8.3"></a><h3>Example launch line</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -98,7 +105,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.178.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.254.8.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -124,7 +131,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.178.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.254.8.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -273,7 +280,7 @@
 <div class="refsect2">
 <a name="GstVideoFlip--method"></a><h3>The <code class="literal">“method”</code> property</h3>
 <pre class="programlisting">  “method”                   <a class="link" href="gst-plugins-good-plugins-videoflip.html#GstVideoFlipMethod" title="enum GstVideoFlipMethod"><span class="type">GstVideoFlipMethod</span></a></pre>
-<p>method.</p>
+<p>method (deprecated, use video-direction instead).</p>
 <p>Flags: Read / Write / Construct</p>
 <p>Default value: Identity (no rotation)</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomedian.html b/docs/plugins/html/gst-plugins-good-plugins-videomedian.html
new file mode 100644
index 0000000..ea1b0d7
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomedian.html
@@ -0,0 +1,230 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>videomedian: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-videoflip.html" title="videoflip">
+<link rel="next" href="gst-plugins-good-plugins-videomixer.html" title="videomixer">
+<meta name="generator" content="GTK-Doc V1.25 (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-videomedian.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videomedian.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videomedian.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-videoflip.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-videomixer.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-videomedian"></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-videomedian.top_of_page"></a>videomedian</span></h2>
+<p>videomedian</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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 class="link" href="gst-plugins-good-plugins-videomedian.html#GstVideoMedianSize" title="enum GstVideoMedianSize"><span class="type">GstVideoMedianSize</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videomedian.html#GstVideoMedian--filtersize" title="The “filtersize” property">filtersize</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videomedian.html#GstVideoMedian--lum-only" title="The “lum-only” property">lum-only</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstVideoMedian"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-videomedian.html#GstVideoMedian-struct" title="struct GstVideoMedian">GstVideoMedian</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videomedian.html#GstVideoMedianSize" title="enum GstVideoMedianSize">GstVideoMedianSize</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
+                    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstvideofilter.html#GstVideoFilter-struct">GstVideoFilter</a>
+                        <span class="lineart">╰──</span> GstVideoMedian
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.description"></a><h2>Description</h2>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.255.7.2.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-videofilter.html#plugin-videofilter">videofilter</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Filter/Effect/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.255.7.2.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-raw, format=(string){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</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-raw, format=(string){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoMedian-struct"></a><h3>struct GstVideoMedian</h3>
+<pre class="programlisting">struct GstVideoMedian;</pre>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoMedianSize"></a><h3>enum GstVideoMedianSize</h3>
+<div class="refsect3">
+<a name="GstVideoMedianSize.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-MEDIAN-SIZE-5:CAPS"></a>GST_VIDEO_MEDIAN_SIZE_5</p></td>
+<td> </td>
+<td> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="GST-VIDEO-MEDIAN-SIZE-9:CAPS"></a>GST_VIDEO_MEDIAN_SIZE_9</p></td>
+<td> </td>
+<td> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomedian.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstVideoMedian--filtersize"></a><h3>The <code class="literal">“filtersize”</code> property</h3>
+<pre class="programlisting">  “filtersize”               <a class="link" href="gst-plugins-good-plugins-videomedian.html#GstVideoMedianSize" title="enum GstVideoMedianSize"><span class="type">GstVideoMedianSize</span></a></pre>
+<p>The size of the filter.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Median of 5 neighbour pixels</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoMedian--lum-only"></a><h3>The <code class="literal">“lum-only”</code> property</h3>
+<pre class="programlisting">  “lum-only”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Only apply filter on luminance.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: TRUE</p>
+</div>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
index 10b62dc..6f4b61c 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-videomixer.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-videoflip.html" title="videoflip">
+<link rel="prev" href="gst-plugins-good-plugins-videomedian.html" title="videomedian">
 <link rel="next" href="gst-plugins-good-plugins-vp8dec.html" title="vp8dec">
 <meta name="generator" content="GTK-Doc V1.25 (XML mode)">
 <link rel="stylesheet" href="style.css" type="text/css">
@@ -15,11 +15,14 @@
 <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-videomixer.description" class="shortcut">Description</a></span>
+                  <a href="#gst-plugins-good-plugins-videomixer.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videomixer.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videomixer.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-videomixer.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-videoflip.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-videomedian.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
 <td><a accesskey="n" href="gst-plugins-good-plugins-vp8dec.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
 </tr></table>
 <div class="refentry">
@@ -32,8 +35,57 @@
 <td class="gallery_image" valign="top" align="right"></td>
 </tr></table></div>
 <div class="refsect1">
+<a name="gst-plugins-good-plugins-videomixer.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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 class="link" href="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2Background" title="enum GstVideoMixer2Background"><span class="type">GstVideoMixer2Background</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2--background" title="The “background” property">background</a></td>
+<td class="property_flags">Read / Write</td>
+</tr></tbody>
+</table></div>
+</div>
+<a name="GstVideoMixer2"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-videomixer.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-videomixer.html#GstVideoMixer2-struct" title="struct GstVideoMixer2">GstVideoMixer2</a></td>
+</tr>
+<tr>
+<td class="datatype_keyword">enum</td>
+<td class="function_name"><a class="link" href="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2Background" title="enum GstVideoMixer2Background">GstVideoMixer2Background</a></td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomixer.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> GstVideoMixer2
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomixer.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstVideoMixer2 implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstChildProxy.html#GstChildProxy-struct">GstChildProxy</a>.</p>
+</div>
+<div class="refsect1">
 <a name="gst-plugins-good-plugins-videomixer.description"></a><h2>Description</h2>
-<p>Videomixer2 can accept AYUV, ARGB and BGRA video streams. For each of the requested
+<p>Videomixer can accept AYUV, ARGB and BGRA video streams. For each of the requested
 sink pads it will compare the incoming geometry and framerate to define the
 output parameters. Indeed output video frames will have the geometry of the
 biggest incoming video stream and the framerate of the fastest incoming one.</p>
@@ -41,7 +93,7 @@
 <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.179.3.5"></a><h3>Sample pipelines</h3>
+<a name="id-1.2.256.8.5"></a><h3>Sample pipelines</h3>
 <div class="informalexample">
   <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
     <tbody>
@@ -69,7 +121,7 @@
  A pipeline to demonstrate videomixer used together with videobox.
 This should show a 320x240 pixels video test source with some transparency
 showing the background checker pattern. Another video test source with just
-the snow pattern of 100x100 pixels is overlayed on top of the first one on
+the snow pattern of 100x100 pixels is overlaid on top of the first one on
 the left vertically centered with a small transparency showing the first
 video test source behind and the checker pattern under it. Note that the
 framerate of the output video is 10 frames per second.
@@ -140,7 +192,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.179.3.6.1"></a><h3>Element Information</h3>
+<a name="id-1.2.256.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -166,7 +218,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.179.3.6.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.256.8.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -224,6 +276,66 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-videomixer.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVideoMixer2-struct"></a><h3>struct GstVideoMixer2</h3>
+<pre class="programlisting">struct GstVideoMixer2;</pre>
+<p>The opaque <a class="link" href="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2"><span class="type">GstVideoMixer2</span></a> structure.</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVideoMixer2Background"></a><h3>enum GstVideoMixer2Background</h3>
+<p>The different backgrounds videomixer can blend over.</p>
+<div class="refsect3">
+<a name="GstVideoMixer2Background.members"></a><h4>Members</h4>
+<div class="informaltable"><table class="informaltable" width="100%" border="0">
+<colgroup>
+<col width="300px" class="enum_members_name">
+<col class="enum_members_description">
+<col width="200px" class="enum_members_annotations">
+</colgroup>
+<tbody>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-MIXER2-BACKGROUND-CHECKER:CAPS"></a>VIDEO_MIXER2_BACKGROUND_CHECKER</p></td>
+<td class="enum_member_description">
+<p>checker pattern background</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-MIXER2-BACKGROUND-BLACK:CAPS"></a>VIDEO_MIXER2_BACKGROUND_BLACK</p></td>
+<td class="enum_member_description">
+<p>solid color black background</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-MIXER2-BACKGROUND-WHITE:CAPS"></a>VIDEO_MIXER2_BACKGROUND_WHITE</p></td>
+<td class="enum_member_description">
+<p>solid color white background</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+<tr>
+<td class="enum_member_name"><p><a name="VIDEO-MIXER2-BACKGROUND-TRANSPARENT:CAPS"></a>VIDEO_MIXER2_BACKGROUND_TRANSPARENT</p></td>
+<td class="enum_member_description">
+<p>background is left transparent and layers are composited using "A OVER B" composition rules. This is only applicable to AYUV and ARGB (and variants) as it preserves the alpha channel and allows for further mixing.</p>
+</td>
+<td class="enum_member_annotations"> </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-videomixer.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstVideoMixer2--background"></a><h3>The <code class="literal">“background”</code> property</h3>
+<pre class="programlisting">  “background”               <a class="link" href="gst-plugins-good-plugins-videomixer.html#GstVideoMixer2Background" title="enum GstVideoMixer2Background"><span class="type">GstVideoMixer2Background</span></a></pre>
+<p>Background type.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Checker pattern</p>
+</div>
 </div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
index cd1430f..7754e40 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8dec.html
@@ -96,10 +96,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-vp8dec.description"></a><h2>Description</h2>
+<p>This element decodes VP8 streams into raw video.</p>
+<a class="ulink" href="http://www.webmproject.org" target="_top">VP8</a> is a royalty-free
+<p>video codec maintained by <a class="ulink" href="http://www.google.com/" target="_top">Google
+</a>. It's the successor of On2 VP3, which was the base of the
+Theora video codec.</p>
+<div class="refsect2">
+<a name="id-1.2.257.7.5"></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> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>webm <span class="gtkdoc opt">!</span> matroskademux <span class="gtkdoc opt">!</span> vp8dec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will decode a WebM stream and decodes the VP8 video.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.180.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.257.7.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -125,7 +144,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.180.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.257.7.6.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -233,6 +252,10 @@
 <p>Default value: 1</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp8dec.see-also"></a><h2>See Also</h2>
+<p>vp8enc, matroskademux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
index 1026ef4..846be09 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-vp8enc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp8enc.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-vp8dec.html" title="vp8dec">
-<link rel="next" href="gst-plugins-good-plugins-warptv.html" title="warptv">
+<link rel="next" href="gst-plugins-good-plugins-vp9dec.html" title="vp9dec">
 <meta name="generator" content="GTK-Doc V1.25 (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-vp8dec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
-<td><a accesskey="n" href="gst-plugins-good-plugins-warptv.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-vp9dec.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-vp8enc"></a><div class="titlepage"></div>
@@ -302,10 +302,37 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-vp8enc.description"></a><h2>Description</h2>
+<p>This element encodes raw video into a VP8 stream.</p>
+<a class="ulink" href="http://www.webmproject.org" target="_top">VP8</a> is a royalty-free
+<p>video codec maintained by <a class="ulink" href="http://www.google.com/" target="_top">Google
+</a>. It's the successor of On2 VP3, which was the base of the
+Theora video codec.</p>
+<p>To control the quality of the encoding, the <span class="type">“target-bitrate”</span>,
+<span class="type">“min-quantizer”</span>, <span class="type">“max-quantizer”</span> or <span class="type">“cq-level”</span>
+properties can be used. Which one is used depends on the mode selected by
+the <span class="type">“end-usage”</span> property.
+See <a class="ulink" href="http://www.webmproject.org/docs/encoder-parameters/" target="_top">Encoder Parameters</a>
+for explanation, examples for useful encoding parameters and more details
+on the encoding parameters.</p>
+<div class="refsect2">
+<a name="id-1.2.258.8.6"></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> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> vp8enc <span class="gtkdoc opt">!</span> webmmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>webm</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to VP8 muxed in an
+WebM container.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.181.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.258.8.7.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -331,7 +358,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.181.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.258.8.7.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -772,6 +799,10 @@
 <p>Flags: Read / Write</p>
 </div>
 </div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp8enc.see-also"></a><h2>See Also</h2>
+<p>vp8dec, webmmux, oggmux</p>
+</div>
 </div>
 <div class="footer">
 <hr>Generated by GTK-Doc V1.25</div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html b/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html
new file mode 100644
index 0000000..ad2f84a
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp9dec.html
@@ -0,0 +1,263 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>vp9dec: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-vp8enc.html" title="vp8enc">
+<link rel="next" href="gst-plugins-good-plugins-vp9enc.html" title="vp9enc">
+<meta name="generator" content="GTK-Doc V1.25 (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-vp9dec.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-vp9dec.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-vp9dec.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-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-vp9enc.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-vp9dec"></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-vp9dec.top_of_page"></a>vp9dec</span></h2>
+<p>vp9dec</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--deblocking-level" title="The “deblocking-level” property">deblocking-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--noise-level" title="The “noise-level” property">noise-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--post-processing" title="The “post-processing” property">post-processing</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9DecPostProcessingFlags</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--post-processing-flags" title="The “post-processing-flags” property">post-processing-flags</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9dec.html#GstVP9Dec--threads" title="The “threads” property">threads</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstVP9Dec"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-vp9dec.html#GstVP9Dec-struct" title="struct GstVP9Dec">GstVP9Dec</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-GstVideoDecoder.html#GstVideoDecoder">GstVideoDecoder</a>
+                    <span class="lineart">╰──</span> GstVPXDec
+                        <span class="lineart">╰──</span> GstVP9Dec
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.description"></a><h2>Description</h2>
+<p>This element decodes VP9 streams into raw video.</p>
+<a class="ulink" href="http://www.webmproject.org" target="_top">VP9</a> is a royalty-free
+<p>video codec maintained by <a class="ulink" href="http://www.google.com/" target="_top">Google
+</a>. It's the successor of On2 VP3, which was the base of the
+Theora video codec.</p>
+<div class="refsect2">
+<a name="id-1.2.259.7.5"></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> <span class="gtkdoc opt">-</span>v filesrc location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>webm <span class="gtkdoc opt">!</span> matroskademux <span class="gtkdoc opt">!</span> vp9dec <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> videoscale <span class="gtkdoc opt">!</span> autovideosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will decode a WebM stream and decodes the VP9 video.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.259.7.6.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-vpx.html#plugin-vpx">vpx</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>David Schleef &lt;ds@entropywave.com&gt;, Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Decoder/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.259.7.6.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-vp9</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-raw, format=(string){ I420, YV12, Y42B, Y444 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVP9Dec-struct"></a><h3>struct GstVP9Dec</h3>
+<pre class="programlisting">struct GstVP9Dec;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstVP9Dec--deblocking-level"></a><h3>The <code class="literal">“deblocking-level”</code> property</h3>
+<pre class="programlisting">  “deblocking-level”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Deblocking level.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 16</p>
+<p>Default value: 4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Dec--noise-level"></a><h3>The <code class="literal">“noise-level”</code> property</h3>
+<pre class="programlisting">  “noise-level”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Noise level.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &lt;= 16</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Dec--post-processing"></a><h3>The <code class="literal">“post-processing”</code> property</h3>
+<pre class="programlisting">  “post-processing”          <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Enable post processing.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Dec--post-processing-flags"></a><h3>The <code class="literal">“post-processing-flags”</code> property</h3>
+<pre class="programlisting">  “post-processing-flags”    <span class="type">GstVP9DecPostProcessingFlags</span></pre>
+<p>Flags to control post processing.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Deblock|Demacroblock</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Dec--threads"></a><h3>The <code class="literal">“threads”</code> property</h3>
+<pre class="programlisting">  “threads”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
+<p>Maximum number of decoding threads.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [1,16]</p>
+<p>Default value: 1</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9dec.see-also"></a><h2>See Also</h2>
+<p>vp9enc, matroskademux</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html b/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html
new file mode 100644
index 0000000..ec7bea3
--- /dev/null
+++ b/docs/plugins/html/gst-plugins-good-plugins-vp9enc.html
@@ -0,0 +1,810 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>vp9enc: GStreamer Good Plugins 1.0 Plugins Reference Manual</title>
+<meta name="generator" content="DocBook XSL Stylesheets V1.79.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-vp9dec.html" title="vp9dec">
+<link rel="next" href="gst-plugins-good-plugins-warptv.html" title="warptv">
+<meta name="generator" content="GTK-Doc V1.25 (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-vp9enc.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-vp9enc.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_interfaces">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-vp9enc.implemented-interfaces" class="shortcut">Implemented Interfaces</a></span><span id="nav_properties">  <span class="dim">|</span> 
+                  <a href="#gst-plugins-good-plugins-vp9enc.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-vp9dec.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="n" href="gst-plugins-good-plugins-warptv.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-vp9enc"></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-vp9enc.top_of_page"></a>vp9enc</span></h2>
+<p>vp9enc</p>
+</td>
+<td class="gallery_image" valign="top" align="right"></td>
+</tr></table></div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.properties"></a><h2>Properties</h2>
+<div class="informaltable"><table class="informaltable" 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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-maxframes" title="The “arnr-maxframes” property">arnr-maxframes</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-strength" title="The “arnr-strength” property">arnr-strength</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--arnr-type" title="The “arnr-type” property">arnr-type</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--auto-alt-ref" title="The “auto-alt-ref” property">auto-alt-ref</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-initial-size" title="The “buffer-initial-size” property">buffer-initial-size</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-optimal-size" title="The “buffer-optimal-size” property">buffer-optimal-size</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--buffer-size" title="The “buffer-size” property">buffer-size</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--cpu-used" title="The “cpu-used” property">cpu-used</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--cq-level" title="The “cq-level” property">cq-level</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--deadline" title="The “deadline” property">deadline</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--dropframe-threshold" title="The “dropframe-threshold” property">dropframe-threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncEndUsage</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--end-usage" title="The “end-usage” property">end-usage</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncErFlags</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--error-resilient" title="The “error-resilient” property">error-resilient</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncScalingMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--horizontal-scaling-mode" title="The “horizontal-scaling-mode” property">horizontal-scaling-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--keyframe-max-dist" title="The “keyframe-max-dist” property">keyframe-max-dist</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncKfMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--keyframe-mode" title="The “keyframe-mode” property">keyframe-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--lag-in-frames" title="The “lag-in-frames” property">lag-in-frames</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--max-intra-bitrate" title="The “max-intra-bitrate” property">max-intra-bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--max-quantizer" title="The “max-quantizer” property">max-quantizer</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--min-quantizer" title="The “min-quantizer” property">min-quantizer</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--multipass-cache-file" title="The “multipass-cache-file” property">multipass-cache-file</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncMultipassMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--multipass-mode" title="The “multipass-mode” property">multipass-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--noise-sensitivity" title="The “noise-sensitivity” property">noise-sensitivity</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--overshoot" title="The “overshoot” property">overshoot</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-allowed" title="The “resize-allowed” property">resize-allowed</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-down-threshold" title="The “resize-down-threshold” property">resize-down-threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--resize-up-threshold" title="The “resize-up-threshold” property">resize-up-threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--sharpness" title="The “sharpness” property">sharpness</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--static-threshold" title="The “static-threshold” property">static-threshold</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--target-bitrate" title="The “target-bitrate” property">target-bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-layer-id" title="The “temporal-scalability-layer-id” property">temporal-scalability-layer-id</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-number-layers" title="The “temporal-scalability-number-layers” property">temporal-scalability-number-layers</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-periodicity" title="The “temporal-scalability-periodicity” property">temporal-scalability-periodicity</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-rate-decimator" title="The “temporal-scalability-rate-decimator” property">temporal-scalability-rate-decimator</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type">
+<a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--temporal-scalability-target-bitrate" title="The “temporal-scalability-target-bitrate” property">temporal-scalability-target-bitrate</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--threads" title="The “threads” property">threads</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstFraction</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--timebase" title="The “timebase” property">timebase</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncTokenPartitions</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--token-partitions" title="The “token-partitions” property">token-partitions</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncTuning</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--tuning" title="The “tuning” property">tuning</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-bias" title="The “twopass-vbr-bias” property">twopass-vbr-bias</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-maxsection" title="The “twopass-vbr-maxsection” property">twopass-vbr-maxsection</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--twopass-vbr-minsection" title="The “twopass-vbr-minsection” property">twopass-vbr-minsection</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--undershoot" title="The “undershoot” property">undershoot</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+<tr>
+<td class="property_type"><span class="type">GstVP9EncScalingMode</span></td>
+<td class="property_name"><a class="link" href="gst-plugins-good-plugins-vp9enc.html#GstVP9Enc--vertical-scaling-mode" title="The “vertical-scaling-mode” property">vertical-scaling-mode</a></td>
+<td class="property_flags">Read / Write</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<a name="GstVP9Enc"></a><div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.other"></a><h2>Types and Values</h2>
+<div class="informaltable"><table class="informaltable" 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-vp9enc.html#GstVP9Enc-struct" title="struct GstVP9Enc">GstVP9Enc</a></td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.object-hierarchy"></a><h2>Object Hierarchy</h2>
+<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
+    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
+        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
+            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
+                <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-GstVideoEncoder.html#GstVideoEncoder">GstVideoEncoder</a>
+                    <span class="lineart">╰──</span> GstVPXEnc
+                        <span class="lineart">╰──</span> GstVP9Enc
+</pre>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
+<p>
+GstVP9Enc implements
+ <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstPreset.html#GstPreset-struct">GstPreset</a> and  <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstTagSetter.html#GstTagSetter-struct">GstTagSetter</a>.</p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.description"></a><h2>Description</h2>
+<p>This element encodes raw video into a VP9 stream.</p>
+<a class="ulink" href="http://www.webmproject.org" target="_top">VP9</a> is a royalty-free
+<p>video codec maintained by <a class="ulink" href="http://www.google.com/" target="_top">Google
+</a>. It's the successor of On2 VP3, which was the base of the
+Theora video codec.</p>
+<p>To control the quality of the encoding, the <span class="type">“target-bitrate”</span>,
+<span class="type">“min-quantizer”</span>, <span class="type">“max-quantizer”</span> or <span class="type">“cq-level”</span>
+properties can be used. Which one is used depends on the mode selected by
+the <span class="type">“end-usage”</span> property.
+See <a class="ulink" href="http://www.webmproject.org/docs/encoder-parameters/" target="_top">Encoder Parameters</a>
+for explanation, examples for useful encoding parameters and more details
+on the encoding parameters.</p>
+<div class="refsect2">
+<a name="id-1.2.260.8.6"></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> <span class="gtkdoc opt">-</span>v videotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">1000</span> <span class="gtkdoc opt">!</span> vp9enc <span class="gtkdoc opt">!</span> webmmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>videotestsrc<span class="gtkdoc opt">.</span>webm</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This example pipeline will encode a test video source to VP9 muxed in an
+WebM container.
+</div>
+<div class="refsynopsisdiv">
+<h2>Synopsis</h2>
+<div class="refsect2">
+<a name="id-1.2.260.8.7.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-vpx.html#plugin-vpx">vpx</a>
+          </td>
+</tr>
+<tr>
+<td><p><span class="term">author</span></p></td>
+<td>David Schleef &lt;ds@entropywave.com&gt;, Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</td>
+</tr>
+<tr>
+<td><p><span class="term">class</span></p></td>
+<td>Codec/Encoder/Video</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<hr>
+<div class="refsect2">
+<a name="id-1.2.260.8.7.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-raw, format=(string){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</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-vp9, profile=(string){ 0, 1, 2, 3 }</td>
+</tr>
+</tbody>
+</table></div>
+</div>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.functions_details"></a><h2>Functions</h2>
+<p></p>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.other_details"></a><h2>Types and Values</h2>
+<div class="refsect2">
+<a name="GstVP9Enc-struct"></a><h3>struct GstVP9Enc</h3>
+<pre class="programlisting">struct GstVP9Enc;</pre>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.property-details"></a><h2>Property Details</h2>
+<div class="refsect2">
+<a name="GstVP9Enc--arnr-maxframes"></a><h3>The <code class="literal">“arnr-maxframes”</code> property</h3>
+<pre class="programlisting">  “arnr-maxframes”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>AltRef maximum number of frames.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,15]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--arnr-strength"></a><h3>The <code class="literal">“arnr-strength”</code> property</h3>
+<pre class="programlisting">  “arnr-strength”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>AltRef strength.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,6]</p>
+<p>Default value: 3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--arnr-type"></a><h3>The <code class="literal">“arnr-type”</code> property</h3>
+<pre class="programlisting">  “arnr-type”                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>AltRef type.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [1,3]</p>
+<p>Default value: 3</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--auto-alt-ref"></a><h3>The <code class="literal">“auto-alt-ref”</code> property</h3>
+<pre class="programlisting">  “auto-alt-ref”             <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Automatically generate AltRef frames.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--buffer-initial-size"></a><h3>The <code class="literal">“buffer-initial-size”</code> property</h3>
+<pre class="programlisting">  “buffer-initial-size”      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Initial client buffer size (ms).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 4000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--buffer-optimal-size"></a><h3>The <code class="literal">“buffer-optimal-size”</code> property</h3>
+<pre class="programlisting">  “buffer-optimal-size”      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Optimal client buffer size (ms).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 5000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--buffer-size"></a><h3>The <code class="literal">“buffer-size”</code> property</h3>
+<pre class="programlisting">  “buffer-size”              <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Client buffer size (ms).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 6000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--cpu-used"></a><h3>The <code class="literal">“cpu-used”</code> property</h3>
+<pre class="programlisting">  “cpu-used”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>CPU used.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [-16,16]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--cq-level"></a><h3>The <code class="literal">“cq-level”</code> property</h3>
+<pre class="programlisting">  “cq-level”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Constrained quality level.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,63]</p>
+<p>Default value: 10</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--deadline"></a><h3>The <code class="literal">“deadline”</code> property</h3>
+<pre class="programlisting">  “deadline”                 <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
+<p>Deadline per frame (usec, 0=disabled).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--dropframe-threshold"></a><h3>The <code class="literal">“dropframe-threshold”</code> property</h3>
+<pre class="programlisting">  “dropframe-threshold”      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Temporal resampling threshold (buf %).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--end-usage"></a><h3>The <code class="literal">“end-usage”</code> property</h3>
+<pre class="programlisting">  “end-usage”                <span class="type">GstVP9EncEndUsage</span></pre>
+<p>Rate control mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Variable Bit Rate (VBR) mode</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--error-resilient"></a><h3>The <code class="literal">“error-resilient”</code> property</h3>
+<pre class="programlisting">  “error-resilient”          <span class="type">GstVP9EncErFlags</span></pre>
+<p>Error resilience flags.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--horizontal-scaling-mode"></a><h3>The <code class="literal">“horizontal-scaling-mode”</code> property</h3>
+<pre class="programlisting">  “horizontal-scaling-mode”  <span class="type">GstVP9EncScalingMode</span></pre>
+<p>Horizontal scaling mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Normal</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--keyframe-max-dist"></a><h3>The <code class="literal">“keyframe-max-dist”</code> property</h3>
+<pre class="programlisting">  “keyframe-max-dist”        <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum distance between keyframes (number of frames).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 128</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--keyframe-mode"></a><h3>The <code class="literal">“keyframe-mode”</code> property</h3>
+<pre class="programlisting">  “keyframe-mode”            <span class="type">GstVP9EncKfMode</span></pre>
+<p>Keyframe placement.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Determine optimal placement automatically</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--lag-in-frames"></a><h3>The <code class="literal">“lag-in-frames”</code> property</h3>
+<pre class="programlisting">  “lag-in-frames”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum number of frames to lag.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,25]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--max-intra-bitrate"></a><h3>The <code class="literal">“max-intra-bitrate”</code> property</h3>
+<pre class="programlisting">  “max-intra-bitrate”        <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum Intra frame bitrate.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--max-quantizer"></a><h3>The <code class="literal">“max-quantizer”</code> property</h3>
+<pre class="programlisting">  “max-quantizer”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Maximum Quantizer (worst).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,63]</p>
+<p>Default value: 63</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--min-quantizer"></a><h3>The <code class="literal">“min-quantizer”</code> property</h3>
+<pre class="programlisting">  “min-quantizer”            <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Minimum Quantizer (best).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,63]</p>
+<p>Default value: 4</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--multipass-cache-file"></a><h3>The <code class="literal">“multipass-cache-file”</code> property</h3>
+<pre class="programlisting">  “multipass-cache-file”     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
+<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>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--multipass-mode"></a><h3>The <code class="literal">“multipass-mode”</code> property</h3>
+<pre class="programlisting">  “multipass-mode”           <span class="type">GstVP9EncMultipassMode</span></pre>
+<p>Multipass encode mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: One pass encoding (default)</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--noise-sensitivity"></a><h3>The <code class="literal">“noise-sensitivity”</code> property</h3>
+<pre class="programlisting">  “noise-sensitivity”        <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Noise sensisivity (frames to blur).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,6]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--overshoot"></a><h3>The <code class="literal">“overshoot”</code> property</h3>
+<pre class="programlisting">  “overshoot”                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Datarate overshoot (max) target (%).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,1000]</p>
+<p>Default value: 100</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--resize-allowed"></a><h3>The <code class="literal">“resize-allowed”</code> property</h3>
+<pre class="programlisting">  “resize-allowed”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
+<p>Allow spatial resampling.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: FALSE</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--resize-down-threshold"></a><h3>The <code class="literal">“resize-down-threshold”</code> property</h3>
+<pre class="programlisting">  “resize-down-threshold”    <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Downscale threshold (buf %).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 60</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--resize-up-threshold"></a><h3>The <code class="literal">“resize-up-threshold”</code> property</h3>
+<pre class="programlisting">  “resize-up-threshold”      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Upscale threshold (buf %).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 30</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--sharpness"></a><h3>The <code class="literal">“sharpness”</code> property</h3>
+<pre class="programlisting">  “sharpness”                <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Filter sharpness.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,7]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--static-threshold"></a><h3>The <code class="literal">“static-threshold”</code> property</h3>
+<pre class="programlisting">  “static-threshold”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Motion detection threshold.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--target-bitrate"></a><h3>The <code class="literal">“target-bitrate”</code> property</h3>
+<pre class="programlisting">  “target-bitrate”           <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Target bitrate (in bits/sec).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 256000</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--temporal-scalability-layer-id"></a><h3>The <code class="literal">“temporal-scalability-layer-id”</code> property</h3>
+<pre class="programlisting">  “temporal-scalability-layer-id” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
+<p>Sequence defining coding layer membership.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--temporal-scalability-number-layers"></a><h3>The <code class="literal">“temporal-scalability-number-layers”</code> property</h3>
+<pre class="programlisting">  “temporal-scalability-number-layers” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Number of coding layers to use.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [1,5]</p>
+<p>Default value: 1</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--temporal-scalability-periodicity"></a><h3>The <code class="literal">“temporal-scalability-periodicity”</code> property</h3>
+<pre class="programlisting">  “temporal-scalability-periodicity” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Length of sequence that defines layer membership periodicity.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,16]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--temporal-scalability-rate-decimator"></a><h3>The <code class="literal">“temporal-scalability-rate-decimator”</code> property</h3>
+<pre class="programlisting">  “temporal-scalability-rate-decimator” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
+<p>Rate decimation factors for each layer.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--temporal-scalability-target-bitrate"></a><h3>The <code class="literal">“temporal-scalability-target-bitrate”</code> property</h3>
+<pre class="programlisting">  “temporal-scalability-target-bitrate” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
+<p>Target bitrates for coding layers (one per layer, decreasing).</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--threads"></a><h3>The <code class="literal">“threads”</code> property</h3>
+<pre class="programlisting">  “threads”                  <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Number of threads to use.</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,64]</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--timebase"></a><h3>The <code class="literal">“timebase”</code> property</h3>
+<pre class="programlisting">  “timebase”                 <span class="type">GstFraction</span></pre>
+<p>Fraction of one second that is the shortest interframe time - normally left as zero which will default to the framerate.</p>
+<p>Flags: Read / Write</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--token-partitions"></a><h3>The <code class="literal">“token-partitions”</code> property</h3>
+<pre class="programlisting">  “token-partitions”         <span class="type">GstVP9EncTokenPartitions</span></pre>
+<p>Number of token partitions.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: One token partition</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--tuning"></a><h3>The <code class="literal">“tuning”</code> property</h3>
+<pre class="programlisting">  “tuning”                   <span class="type">GstVP9EncTuning</span></pre>
+<p>Tuning.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Tune for PSNR</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--twopass-vbr-bias"></a><h3>The <code class="literal">“twopass-vbr-bias”</code> property</h3>
+<pre class="programlisting">  “twopass-vbr-bias”         <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>CBR/VBR bias (0=CBR, 100=VBR).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,100]</p>
+<p>Default value: 50</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--twopass-vbr-maxsection"></a><h3>The <code class="literal">“twopass-vbr-maxsection”</code> property</h3>
+<pre class="programlisting">  “twopass-vbr-maxsection”   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>GOP maximum bitrate (% target).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--twopass-vbr-minsection"></a><h3>The <code class="literal">“twopass-vbr-minsection”</code> property</h3>
+<pre class="programlisting">  “twopass-vbr-minsection”   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>GOP minimum bitrate (% target).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: &gt;= 0</p>
+<p>Default value: 0</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--undershoot"></a><h3>The <code class="literal">“undershoot”</code> property</h3>
+<pre class="programlisting">  “undershoot”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
+<p>Datarate undershoot (min) target (%).</p>
+<p>Flags: Read / Write</p>
+<p>Allowed values: [0,1000]</p>
+<p>Default value: 100</p>
+</div>
+<hr>
+<div class="refsect2">
+<a name="GstVP9Enc--vertical-scaling-mode"></a><h3>The <code class="literal">“vertical-scaling-mode”</code> property</h3>
+<pre class="programlisting">  “vertical-scaling-mode”    <span class="type">GstVP9EncScalingMode</span></pre>
+<p>Vertical scaling mode.</p>
+<p>Flags: Read / Write</p>
+<p>Default value: Normal</p>
+</div>
+</div>
+<div class="refsect1">
+<a name="gst-plugins-good-plugins-vp9enc.see-also"></a><h2>See Also</h2>
+<p>vp9dec, webmmux, oggmux</p>
+</div>
+</div>
+<div class="footer">
+<hr>Generated by GTK-Doc V1.25</div>
+</body>
+</html>
\ No newline at end of file
diff --git a/docs/plugins/html/gst-plugins-good-plugins-warptv.html b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
index e4739af..de0a492 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-warptv.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-warptv.html
@@ -6,7 +6,7 @@
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.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-vp8enc.html" title="vp8enc">
+<link rel="prev" href="gst-plugins-good-plugins-vp9enc.html" title="vp9enc">
 <link rel="next" href="gst-plugins-good-plugins-waveformsink.html" title="waveformsink">
 <meta name="generator" content="GTK-Doc V1.25 (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-vp8enc.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
+<td><a accesskey="p" href="gst-plugins-good-plugins-vp9enc.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>
 </tr></table>
 <div class="refentry">
@@ -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.182.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.261.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.182.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.261.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.182.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.261.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 96f2a4d..6dbf0d3 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-waveformsink.html
@@ -46,10 +46,41 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-waveformsink.description"></a><h2>Description</h2>
+<p>This element lets you output sound using the Windows WaveForm API.</p>
+<p>Note that you should almost always use generic audio conversion elements
+like audioconvert and audioresample in front of an audiosink to make sure
+your pipeline works under all circumstances (those conversion elements will
+act in passthrough-mode if no conversion is necessary).</p>
+<div class="refsect2">
+<a name="id-1.2.262.4.4"></a><h3>Example pipelines</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 audiotestsrc <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> volume volume<span class="gtkdoc opt">=</span><span class="number">0.1</span> <span class="gtkdoc opt">!</span> waveformsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will output a sine wave (continuous beep sound) to your sound card (with
+a very low volume as precaution).
+<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>music<span class="gtkdoc opt">.</span>ogg <span class="gtkdoc opt">!</span> decodebin <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> waveformsink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ will play an Ogg/Vorbis audio file and output it.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.183.4.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.262.4.5.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -75,7 +106,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.183.4.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.262.4.5.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 1bf47be..ab5c5e8 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavenc.html
@@ -65,7 +65,7 @@
 <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.184.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.263.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.184.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.263.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.184.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.263.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 202f62d..5459eff 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackdec.html
@@ -57,10 +57,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-wavpackdec.description"></a><h2>Description</h2>
+<p>WavpackDec decodes framed (for example by the WavpackParse element)
+Wavpack streams and decodes them to raw audio.</p>
+<a class="ulink" href="http://www.wavpack.com/" target="_top">Wavpack</a> is an open-source
+<p>audio codec that features both lossless and lossy encoding.</p>
+<div class="refsect2">
+<a name="id-1.2.264.6.5"></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> filesrc location<span class="gtkdoc opt">=</span>test<span class="gtkdoc opt">.</span>wv <span class="gtkdoc opt">!</span> wavpackparse <span class="gtkdoc opt">!</span> wavpackdec <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline decodes the Wavpack file test.wv into raw audio buffers and
+tries to play it back using an automatically found audio sink.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.185.6.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.264.6.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -86,7 +105,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.185.6.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.264.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-wavpackenc.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
index 95fb885..cf93afe 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-wavpackenc.html
@@ -112,10 +112,52 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-wavpackenc.description"></a><h2>Description</h2>
+<p>WavpackEnc encodes raw audio into a framed Wavpack stream.</p>
+<a class="ulink" href="http://www.wavpack.com/" target="_top">Wavpack</a> is an open-source
+<p>audio codec that features both lossless and lossy encoding.</p>
+<div class="refsect2">
+<a name="id-1.2.265.8.5"></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> audiotestsrc num<span class="gtkdoc opt">-</span>buffers<span class="gtkdoc opt">=</span><span class="number">500</span> <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> wavpackenc <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>sinewave<span class="gtkdoc opt">.</span>wv</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline encodes audio from audiotestsrc into a Wavpack file. The audioconvert element is needed
+as the Wavpack encoder only accepts input with 32 bit width.
+<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> cdda<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//1 ! audioconvert ! wavpackenc ! filesink location=track1.wv</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline encodes audio from an audio CD into a Wavpack file using
+lossless encoding (the file output will be fairly large).
+<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> cdda<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//1 ! audioconvert ! wavpackenc bitrate=128000 ! filesink location=track1.wv</span></pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ This pipeline encodes audio from an audio CD into a Wavpack file using
+lossy encoding at a certain bitrate (the file will be fairly small).
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.186.8.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.265.8.6.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -141,7 +183,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.186.8.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.265.8.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-wavpackparse.html b/docs/plugins/html/gst-plugins-good-plugins-wavpackparse.html
index 1f26b96..8e8ffd9 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.187.6.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.266.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.187.6.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.266.6.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -101,7 +101,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.187.6.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.266.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 c079902..85f71c3 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.188.7.4"></a><h3>Example launch line</h3>
+<a name="id-1.2.267.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 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.188.7.5.1"></a><h3>Element Information</h3>
+<a name="id-1.2.267.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.188.7.5.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.267.7.5.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -175,27 +175,27 @@
 </tr>
 <tr>
 <td><p><span class="term">details</span></p></td>
-<td>audio/ms-gsm, rate=(int)[ 1, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td>audio/ms-gsm</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/mpeg, mpegversion=(int)1, layer=(int)3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int)[ 16000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/mpeg, mpegversion=(int)1, layer=(int)2</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-vorbis, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-vorbis</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-ac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 6 ]</td>
+<td> audio/x-ac3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
@@ -203,75 +203,75 @@
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/mpeg, mpegversion=(int)4, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/mpeg, mpegversion=(int)4</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-alaw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-mulaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-mulaw</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wms, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wms, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)microsoft, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-adpcm, layout=(string)microsoft, block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dvi, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-truespeech, rate=(int)8000, channels=(int)[ 1, 2 ]</td>
+<td> audio/x-truespeech</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]</td>
+<td> audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-vnd.sony.atrac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-vnd.sony.atrac3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]</td>
+<td> audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-voxware, voxwaretype=(int)117, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-voxware, voxwaretype=(int)117</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dk4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dk4</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dk3, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dk3</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/x-adpcm, layout=(string)dvi, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]</td>
+<td> audio/x-adpcm, layout=(string)dvi</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/AMR, rate=(int)8000, channels=(int)1</td>
+<td> audio/AMR</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
-<td> audio/AMR-WB, rate=(int)16000, channels=(int)1</td>
+<td> audio/AMR-WB</td>
 </tr>
 <tr>
 <td><p><span class="term"></span></p></td>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-webmmux.html b/docs/plugins/html/gst-plugins-good-plugins-webmmux.html
index 8f05531..92edbaf 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 @@
 <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.189.7.3"></a><h3>Example launch line</h3>
+<a name="id-1.2.268.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.189.7.4.1"></a><h3>Element Information</h3>
+<a name="id-1.2.268.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.189.7.4.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.268.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 7c8b1a1..7f6bfd0 100644
--- a/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
+++ b/docs/plugins/html/gst-plugins-good-plugins-ximagesrc.html
@@ -123,10 +123,29 @@
 </div>
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-ximagesrc.description"></a><h2>Description</h2>
+<p>This element captures your X Display and creates raw RGB video.  It uses
+the XDamage extension if available to only capture areas of the screen that
+have changed since the last frame.  It uses the XFixes extension if
+available to also capture your mouse pointer.  By default it will fixate to
+25 frames per second.</p>
+<div class="refsect2">
+<a name="id-1.2.269.7.3"></a><h3>Example pipelines</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> ximagesrc <span class="gtkdoc opt">!</span> video<span class="gtkdoc opt">/</span>x<span class="gtkdoc opt">-</span>raw<span class="gtkdoc opt">,</span>framerate<span class="gtkdoc opt">=</span><span class="number">5</span><span class="gtkdoc opt">/</span><span class="number">1</span> <span class="gtkdoc opt">!</span> videoconvert <span class="gtkdoc opt">!</span> theoraenc <span class="gtkdoc opt">!</span> oggmux <span class="gtkdoc opt">!</span> filesink location<span class="gtkdoc opt">=</span>desktop<span class="gtkdoc opt">.</span>ogg</pre></td>
+      </tr>
+    </tbody>
+  </table>
+</div>
+ Encodes your X display to an Ogg theora video at 5 frames per second.
+</div>
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.190.7.2.1"></a><h3>Element Information</h3>
+<a name="id-1.2.269.7.4.1"></a><h3>Element Information</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -152,7 +171,7 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.190.7.2.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.269.7.4.2"></a><h3>Element Pads</h3>
 <div class="variablelist"><table border="0" class="variablelist">
 <colgroup>
 <col align="left" valign="top">
@@ -212,7 +231,8 @@
 <div class="refsect2">
 <a name="GstXImageSrc--endx"></a><h3>The <code class="literal">“endx”</code> property</h3>
 <pre class="programlisting">  “endx”                     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>X coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).</p>
+<p>X coordinate of bottom right corner of area to be recorded
+(0 for bottom right of screen)</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= G_MAXINT</p>
 <p>Default value: 0</p>
@@ -221,7 +241,8 @@
 <div class="refsect2">
 <a name="GstXImageSrc--endy"></a><h3>The <code class="literal">“endy”</code> property</h3>
 <pre class="programlisting">  “endy”                     <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>Y coordinate of bottom right corner of area to be recorded (0 for bottom right of screen).</p>
+<p>Y coordinate of bottom right corner of area to be recorded
+(0 for bottom right of screen)</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= G_MAXINT</p>
 <p>Default value: 0</p>
@@ -230,7 +251,8 @@
 <div class="refsect2">
 <a name="GstXImageSrc--startx"></a><h3>The <code class="literal">“startx”</code> property</h3>
 <pre class="programlisting">  “startx”                   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>X coordinate of top left corner of area to be recorded (0 for top left of screen).</p>
+<p>X coordinate of top left corner of area to be recorded
+(0 for top left of screen)</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= G_MAXINT</p>
 <p>Default value: 0</p>
@@ -239,7 +261,8 @@
 <div class="refsect2">
 <a name="GstXImageSrc--starty"></a><h3>The <code class="literal">“starty”</code> property</h3>
 <pre class="programlisting">  “starty”                   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
-<p>Y coordinate of top left corner of area to be recorded (0 for top left of screen).</p>
+<p>Y coordinate of top left corner of area to be recorded
+(0 for top left of screen)</p>
 <p>Flags: Read / Write</p>
 <p>Allowed values: &lt;= G_MAXINT</p>
 <p>Default value: 0</p>
@@ -248,7 +271,7 @@
 <div class="refsect2">
 <a name="GstXImageSrc--use-damage"></a><h3>The <code class="literal">“use-damage”</code> property</h3>
 <pre class="programlisting">  “use-damage”               <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Use XDamage (if XDamage extension enabled).</p>
+<p>Use XDamage (if the XDamage extension is enabled)</p>
 <p>Flags: Read / Write</p>
 <p>Default value: TRUE</p>
 </div>
@@ -256,7 +279,8 @@
 <div class="refsect2">
 <a name="GstXImageSrc--remote"></a><h3>The <code class="literal">“remote”</code> property</h3>
 <pre class="programlisting">  “remote”                   <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
-<p>Whether the display is remote.</p>
+<p>Whether the X display is remote. The element will try to use alternate calls
+known to work better with remote displays.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: FALSE</p>
 </div>
@@ -264,7 +288,7 @@
 <div class="refsect2">
 <a name="GstXImageSrc--xid"></a><h3>The <code class="literal">“xid”</code> property</h3>
 <pre class="programlisting">  “xid”                      <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
-<p>Window XID to capture from.</p>
+<p>The XID of the window to capture. 0 for the root window (default).</p>
 <p>Flags: Read / Write</p>
 <p>Default value: 0</p>
 </div>
@@ -272,7 +296,7 @@
 <div class="refsect2">
 <a name="GstXImageSrc--xname"></a><h3>The <code class="literal">“xname”</code> property</h3>
 <pre class="programlisting">  “xname”                    <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
-<p>Window name to capture from.</p>
+<p>The name of the window to capture, if any.</p>
 <p>Flags: Read / Write</p>
 <p>Default value: NULL</p>
 </div>
diff --git a/docs/plugins/html/gst-plugins-good-plugins-y4menc.html b/docs/plugins/html/gst-plugins-good-plugins-y4menc.html
index f358225..4f08b73 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 @@
 <div class="refsect1">
 <a name="gst-plugins-good-plugins-y4menc.description"></a><h2>Description</h2>
 <div class="refsect2">
-<a name="id-1.2.191.7.2"></a><h3>Example launch line</h3>
+<a name="id-1.2.270.7.2"></a><h3>Example launch line</h3>
 <p>
 Creates a YU4MPEG2 raw video stream as defined by the mjpegtools project.
 </p>
@@ -83,7 +83,7 @@
 <div class="refsynopsisdiv">
 <h2>Synopsis</h2>
 <div class="refsect2">
-<a name="id-1.2.191.7.3.1"></a><h3>Element Information</h3>
+<a name="id-1.2.270.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 @@
 </div>
 <hr>
 <div class="refsect2">
-<a name="id-1.2.191.7.3.2"></a><h3>Element Pads</h3>
+<a name="id-1.2.270.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 c4ca947..768fffc 100644
--- a/docs/plugins/html/index.html
+++ b/docs/plugins/html/index.html
@@ -15,7 +15,7 @@
 <div>
 <div><table class="navigation" id="top" width="100%" cellpadding="2" cellspacing="0"><tr><th valign="middle"><p class="title">GStreamer Good Plugins 1.0 Plugins Reference Manual</p></th></tr></table></div>
 <div><p class="releaseinfo">
-      for GStreamer Good Plugins 1.0 (1.8.3)
+      for GStreamer Good Plugins 1.0 (1.9.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>
@@ -65,6 +65,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-aspectratiocrop.html">aspectratiocrop</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-asteriskh263.html">asteriskh263</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-audioamplify.html">audioamplify</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -125,6 +128,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-avisubtitle.html">avisubtitle</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-breakmydata.html">breakmydata</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-cacasink.html">cacasink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -134,6 +140,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-capssetter.html">capssetter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-cpureport.html">cpureport</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-cutter.html">cutter</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -164,6 +173,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-dvdemux.html">dvdemux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-dynudpsink.html">dynudpsink</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-edgetv.html">edgetv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -200,6 +212,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gamma.html">gamma</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufdec.html">gdkpixbufdec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufoverlay.html">gdkpixbufoverlay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-gdkpixbufsink.html">gdkpixbufsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -221,6 +239,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-id3v2mux.html">id3v2mux</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-iirequalizer.html">iirequalizer</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-imagefreeze.html">imagefreeze</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -251,6 +272,9 @@
 <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-matroskaparse.html">matroskaparse</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>
 </dt>
 <dt>
@@ -284,6 +308,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-multiudpsink.html">multiudpsink</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-navigationtest.html">navigationtest</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-navseek.html">navseek</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-optv.html">optv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -323,6 +353,9 @@
 <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-pushfilesrc.html">pushfilesrc</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>
 </dt>
 <dt>
@@ -353,6 +386,9 @@
 <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-rndbuffersize.html">rndbuffersize</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>
@@ -374,28 +410,10 @@
 <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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpceltdepay.html">rtpceltdepay</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>
-<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-rtpj2kpay.html">rtpj2kpay</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-rtpsbcpay.html">rtpsbcpay</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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpceltpay.html">rtpceltpay</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>
@@ -410,12 +428,96 @@
 <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-rtpdvdepay.html">rtpdvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpdvpay.html">rtpdvpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg722depay.html">rtpg722depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg722pay.html">rtpg722pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg723depay.html">rtpg723depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg723pay.html">rtpg723pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg726depay.html">rtpg726depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg726pay.html">rtpg726pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg729depay.html">rtpg729depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpg729pay.html">rtpg729pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgsmdepay.html">rtpgsmdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgsmpay.html">rtpgsmpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgstdepay.html">rtpgstdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpgstpay.html">rtpgstpay</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-rtph263depay.html">rtph263depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263pay.html">rtph263pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263pdepay.html">rtph263pdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph263ppay.html">rtph263ppay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph264depay.html">rtph264depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph264pay.html">rtph264pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph265depay.html">rtph265depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtph265pay.html">rtph265pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpilbcdepay.html">rtpilbcdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpilbcpay.html">rtpilbcpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpj2kdepay.html">rtpj2kdepay</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-rtpjpegdepay.html">rtpjpegdepay</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>
@@ -431,33 +533,159 @@
 <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>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL24depay.html">rtpL24depay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpopuspay.html">rtpopuspay</a></span><span class="refpurpose"></span>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpL24pay.html">rtpL24pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp1sdepay.html">rtpmp1sdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp2tdepay.html">rtpmp2tdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp2tpay.html">rtpmp2tpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4adepay.html">rtpmp4adepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4apay.html">rtpmp4apay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4gdepay.html">rtpmp4gdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4gpay.html">rtpmp4gpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4vdepay.html">rtpmp4vdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmp4vpay.html">rtpmp4vpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpadepay.html">rtpmpadepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpapay.html">rtpmpapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmparobustdepay.html">rtpmparobustdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpvdepay.html">rtpmpvdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpmpvpay.html">rtpmpvpay</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-rtpopusdepay.html">rtpopusdepay</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpopuspay.html">rtpopuspay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmadepay.html">rtppcmadepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmapay.html">rtppcmapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmudepay.html">rtppcmudepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtppcmupay.html">rtppcmupay</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-rtpqcelpdepay.html">rtpqcelpdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpqdm2depay.html">rtpqdm2depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtprtxqueue.html">rtprtxqueue</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>
 </dt>
 <dt>
 <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-rtpsbcdepay.html">rtpsbcdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <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-rtpsession.html">rtpsession</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsirendepay.html">rtpsirendepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsirenpay.html">rtpsirenpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpspeexdepay.html">rtpspeexdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpspeexpay.html">rtpspeexpay</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-rtpstreamdepay.html">rtpstreamdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpstreampay.html">rtpstreampay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpsv3vdepay.html">rtpsv3vdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtptheoradepay.html">rtptheoradepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtptheorapay.html">rtptheorapay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvorbisdepay.html">rtpvorbisdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvorbispay.html">rtpvorbispay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp8depay.html">rtpvp8depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp8pay.html">rtpvp8pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp9depay.html">rtpvp9depay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvp9pay.html">rtpvp9pay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvrawdepay.html">rtpvrawdepay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpvrawpay.html">rtpvrawpay</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-rtpxqtdepay.html">rtpxqtdepay</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>
@@ -476,18 +704,15 @@
 <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-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-souphttpclientsink.html">souphttpclientsink</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>
@@ -516,6 +741,9 @@
 <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-testsink.html">testsink</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>
 </dt>
 <dt>
@@ -546,6 +774,9 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-videoflip.html">videoflip</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-videomedian.html">videomedian</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-videomixer.html">videomixer</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -555,6 +786,12 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-vp8enc.html">vp8enc</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-vp9dec.html">vp9dec</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
+<span class="refentrytitle"><a href="gst-plugins-good-plugins-vp9enc.html">vp9enc</a></span><span class="refpurpose"></span>
+</dt>
+<dt>
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-warptv.html">warptv</a></span><span class="refpurpose"></span>
 </dt>
 <dt>
@@ -801,15 +1038,6 @@
 <span class="refentrytitle"><a href="gst-plugins-good-plugins-plugin-y4menc.html">y4menc</a></span><span class="refpurpose"> — Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</span>
 </dt>
 </dl></dd>
-<dt><span class="chapter"><a href="ch03.html">gst-plugins-good Base Classes</a></span></dt>
-<dd><dl>
-<dt>
-<span class="refentrytitle"><a href="GstIirEqualizer.html">GstIirEqualizer</a></span><span class="refpurpose"></span>
-</dt>
-<dt>
-<span class="refentrytitle"><a href="gst-plugins-good-plugins-GstVideoMixerPad.html">GstVideoMixerPad</a></span><span class="refpurpose"></span>
-</dt>
-</dl></dd>
 </dl></div>
 </div>
 <div class="footer">
diff --git a/docs/plugins/inspect/plugin-1394.xml b/docs/plugins/inspect/plugin-1394.xml
index a3f1e1d..a38faa6 100644
--- a/docs/plugins/inspect/plugin-1394.xml
+++ b/docs/plugins/inspect/plugin-1394.xml
@@ -3,7 +3,7 @@
   <description>Source for video data via IEEE1394 interface</description>
   <filename>../../ext/raw1394/.libs/libgst1394.so</filename>
   <basename>libgst1394.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 4dc653d..61d8f92 100644
--- a/docs/plugins/inspect/plugin-aasink.xml
+++ b/docs/plugins/inspect/plugin-aasink.xml
@@ -3,7 +3,7 @@
   <description>ASCII Art video sink</description>
   <filename>../../ext/aalib/.libs/libgstaasink.so</filename>
   <basename>libgstaasink.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 635c070..5ec03d2 100644
--- a/docs/plugins/inspect/plugin-alaw.xml
+++ b/docs/plugins/inspect/plugin-alaw.xml
@@ -3,7 +3,7 @@
   <description>ALaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstalaw.so</filename>
   <basename>libgstalaw.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 99fadd1..c87b6c1 100644
--- a/docs/plugins/inspect/plugin-alpha.xml
+++ b/docs/plugins/inspect/plugin-alpha.xml
@@ -3,7 +3,7 @@
   <description>adds an alpha channel to video - constant or via chroma-keying</description>
   <filename>../../gst/alpha/.libs/libgstalpha.so</filename>
   <basename>libgstalpha.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 e17632a..9ef2c4d 100644
--- a/docs/plugins/inspect/plugin-alphacolor.xml
+++ b/docs/plugins/inspect/plugin-alphacolor.xml
@@ -3,7 +3,7 @@
   <description>RGBA from/to AYUV colorspace conversion preserving the alpha channel</description>
   <filename>../../gst/alpha/.libs/libgstalphacolor.so</filename>
   <basename>libgstalphacolor.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 70c25d9..8d8e548 100644
--- a/docs/plugins/inspect/plugin-apetag.xml
+++ b/docs/plugins/inspect/plugin-apetag.xml
@@ -3,7 +3,7 @@
   <description>APEv1/2 tag reader</description>
   <filename>../../gst/apetag/.libs/libgstapetag.so</filename>
   <basename>libgstapetag.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 4c10bff..8781087 100644
--- a/docs/plugins/inspect/plugin-audiofx.xml
+++ b/docs/plugins/inspect/plugin-audiofx.xml
@@ -3,7 +3,7 @@
   <description>Audio effects plugin</description>
   <filename>../../gst/audiofx/.libs/libgstaudiofx.so</filename>
   <basename>libgstaudiofx.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 93ba30f..76c14c7 100644
--- a/docs/plugins/inspect/plugin-audioparsers.xml
+++ b/docs/plugins/inspect/plugin-audioparsers.xml
@@ -3,7 +3,7 @@
   <description>Parsers for various audio formats</description>
   <filename>../../gst/audioparsers/.libs/libgstaudioparsers.so</filename>
   <basename>libgstaudioparsers.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 1825350..e6cd5fc 100644
--- a/docs/plugins/inspect/plugin-auparse.xml
+++ b/docs/plugins/inspect/plugin-auparse.xml
@@ -3,7 +3,7 @@
   <description>parses au streams</description>
   <filename>../../gst/auparse/.libs/libgstauparse.so</filename>
   <basename>libgstauparse.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 24d78df..79b1a68 100644
--- a/docs/plugins/inspect/plugin-autodetect.xml
+++ b/docs/plugins/inspect/plugin-autodetect.xml
@@ -3,7 +3,7 @@
   <description>Plugin contains auto-detection plugins for video/audio in- and outputs</description>
   <filename>../../gst/autodetect/.libs/libgstautodetect.so</filename>
   <basename>libgstautodetect.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 b3c6ab9..56b1906 100644
--- a/docs/plugins/inspect/plugin-avi.xml
+++ b/docs/plugins/inspect/plugin-avi.xml
@@ -3,7 +3,7 @@
   <description>AVI stream handling</description>
   <filename>../../gst/avi/.libs/libgstavi.so</filename>
   <basename>libgstavi.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -26,7 +26,7 @@
           <name>audio_%u</name>
           <direction>source</direction>
           <presence>sometimes</presence>
-          <details>audio/ms-gsm, rate=(int)[ 1, 96000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int)[ 16000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-vorbis, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 2 ]; audio/x-ac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 6 ]; audio/x-dts; audio/mpeg, mpegversion=(int)4, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ]; audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-mulaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-wms, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)microsoft, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-truespeech, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-vnd.sony.atrac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-voxware, voxwaretype=(int)117, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk3, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/AMR, rate=(int)8000, channels=(int)1; audio/AMR-WB, rate=(int)16000, channels=(int)1; audio/x-siren; application/x-ogg-avi; audio/x-avi-unknown</details>
+          <details>audio/ms-gsm; audio/mpeg, mpegversion=(int)1, layer=(int)3; audio/mpeg, mpegversion=(int)1, layer=(int)2; audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved; audio/x-vorbis; audio/x-ac3; audio/x-dts; audio/mpeg, mpegversion=(int)4; audio/x-alaw; audio/x-mulaw; audio/x-wms, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)microsoft, block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 1, 2147483647 ]; audio/x-truespeech; audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-vnd.sony.atrac3; audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved; audio/x-voxware, voxwaretype=(int)117; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dvi; audio/AMR; audio/AMR-WB; audio/x-siren; application/x-ogg-avi; audio/x-avi-unknown</details>
         </caps>
         <caps>
           <name>subpicture_%u</name>
@@ -65,7 +65,7 @@
           <name>video_%u</name>
           <direction>sink</direction>
           <presence>request</presence>
-          <details>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ YUY2, I420, BGR, BGRx, BGRA, GRAY8, UYVY }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/jpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-divx, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], divxversion=(int)[ 3, 5 ]; video/x-msmpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], msmpegversion=(int)[ 41, 43 ]; video/mpeg, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h263, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-dv, width=(int)720, height=(int){ 576, 480 }, framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)false; video/x-huffyuv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-wmv, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ], wmvversion=(int)[ 1, 3 ]; image/x-jpc, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-vp8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; image/png, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
diff --git a/docs/plugins/inspect/plugin-cacasink.xml b/docs/plugins/inspect/plugin-cacasink.xml
index 563cfb8..1a0f4b1 100644
--- a/docs/plugins/inspect/plugin-cacasink.xml
+++ b/docs/plugins/inspect/plugin-cacasink.xml
@@ -3,7 +3,7 @@
   <description>Colored ASCII Art video sink</description>
   <filename>../../ext/libcaca/.libs/libgstcacasink.so</filename>
   <basename>libgstcacasink.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 53b1c76..82a0457 100644
--- a/docs/plugins/inspect/plugin-cairo.xml
+++ b/docs/plugins/inspect/plugin-cairo.xml
@@ -3,7 +3,7 @@
   <description>Cairo-based elements</description>
   <filename>../../ext/cairo/.libs/libgstcairo.so</filename>
   <basename>libgstcairo.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 637ebb9..009b669 100644
--- a/docs/plugins/inspect/plugin-cutter.xml
+++ b/docs/plugins/inspect/plugin-cutter.xml
@@ -3,7 +3,7 @@
   <description>Audio Cutter to split audio into non-silent bits</description>
   <filename>../../gst/cutter/.libs/libgstcutter.so</filename>
   <basename>libgstcutter.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 8fcf219..a2a7949 100644
--- a/docs/plugins/inspect/plugin-debug.xml
+++ b/docs/plugins/inspect/plugin-debug.xml
@@ -3,7 +3,7 @@
   <description>elements for testing and debugging</description>
   <filename>../../gst/debugutils/.libs/libgstdebug.so</filename>
   <basename>libgstdebug.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 4c7f0b0..994233c 100644
--- a/docs/plugins/inspect/plugin-deinterlace.xml
+++ b/docs/plugins/inspect/plugin-deinterlace.xml
@@ -3,7 +3,7 @@
   <description>Deinterlacer</description>
   <filename>../../gst/deinterlace/.libs/libgstdeinterlace.so</filename>
   <basename>libgstdeinterlace.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -20,13 +20,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
+          <details>video/x-raw, format=(string){ AYUV, ARGB, ABGR, RGBA, BGRA, Y444, xRGB, xBGR, RGBx, BGRx, RGB, BGR, YUY2, YVYU, UYVY, Y42B, I420, YV12, Y41B, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw(ANY), format=(string){ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, IYU2, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE, P010_10LE, P010_10BE }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml
index 0b26584..0c06891 100644
--- a/docs/plugins/inspect/plugin-dtmf.xml
+++ b/docs/plugins/inspect/plugin-dtmf.xml
@@ -3,7 +3,7 @@
   <description>DTMF plugins</description>
   <filename>../../gst/dtmf/.libs/libgstdtmf.so</filename>
   <basename>libgstdtmf.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 7abdd2a..bea3572 100644
--- a/docs/plugins/inspect/plugin-dv.xml
+++ b/docs/plugins/inspect/plugin-dv.xml
@@ -3,7 +3,7 @@
   <description>DV demuxer and decoder based on libdv (libdv.sf.net)</description>
   <filename>../../ext/dv/.libs/libgstdv.so</filename>
   <basename>libgstdv.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 21f5b83..bb6b4ac 100644
--- a/docs/plugins/inspect/plugin-effectv.xml
+++ b/docs/plugins/inspect/plugin-effectv.xml
@@ -3,7 +3,7 @@
   <description>effect plugins from the effectv project</description>
   <filename>../../gst/effectv/.libs/libgsteffectv.so</filename>
   <basename>libgsteffectv.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 e0b981b..eae17d6 100644
--- a/docs/plugins/inspect/plugin-equalizer.xml
+++ b/docs/plugins/inspect/plugin-equalizer.xml
@@ -3,7 +3,7 @@
   <description>GStreamer audio equalizers</description>
   <filename>../../gst/equalizer/.libs/libgstequalizer.so</filename>
   <basename>libgstequalizer.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 51926aa..29c96e7 100644
--- a/docs/plugins/inspect/plugin-flac.xml
+++ b/docs/plugins/inspect/plugin-flac.xml
@@ -3,7 +3,7 @@
   <description>The FLAC Lossless compressor Codec</description>
   <filename>../../ext/flac/.libs/libgstflac.so</filename>
   <basename>libgstflac.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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-flv.xml b/docs/plugins/inspect/plugin-flv.xml
index 8685065..f7c51b1 100644
--- a/docs/plugins/inspect/plugin-flv.xml
+++ b/docs/plugins/inspect/plugin-flv.xml
@@ -3,7 +3,7 @@
   <description>FLV muxing and demuxing plugin</description>
   <filename>../../gst/flv/.libs/libgstflv.so</filename>
   <basename>libgstflv.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 c7fbff2..30dade7 100644
--- a/docs/plugins/inspect/plugin-flxdec.xml
+++ b/docs/plugins/inspect/plugin-flxdec.xml
@@ -3,7 +3,7 @@
   <description>FLC/FLI/FLX video decoder</description>
   <filename>../../gst/flx/.libs/libgstflxdec.so</filename>
   <basename>libgstflxdec.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 f1a1151..aa42b71 100644
--- a/docs/plugins/inspect/plugin-gdkpixbuf.xml
+++ b/docs/plugins/inspect/plugin-gdkpixbuf.xml
@@ -3,7 +3,7 @@
   <description>GdkPixbuf-based image decoder, overlay and sink</description>
   <filename>../../ext/gdk_pixbuf/.libs/libgstgdkpixbuf.so</filename>
   <basename>libgstgdkpixbuf.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 750e998..c1e16df 100644
--- a/docs/plugins/inspect/plugin-goom.xml
+++ b/docs/plugins/inspect/plugin-goom.xml
@@ -3,7 +3,7 @@
   <description>GOOM visualization filter</description>
   <filename>../../gst/goom/.libs/libgstgoom.so</filename>
   <basename>libgstgoom.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 7339f34..fce07e1 100644
--- a/docs/plugins/inspect/plugin-goom2k1.xml
+++ b/docs/plugins/inspect/plugin-goom2k1.xml
@@ -3,7 +3,7 @@
   <description>GOOM 2k1 visualization filter</description>
   <filename>../../gst/goom2k1/.libs/libgstgoom2k1.so</filename>
   <basename>libgstgoom2k1.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 b75dcf3..83a2913 100644
--- a/docs/plugins/inspect/plugin-icydemux.xml
+++ b/docs/plugins/inspect/plugin-icydemux.xml
@@ -3,7 +3,7 @@
   <description>Demux ICY tags from a stream</description>
   <filename>../../gst/icydemux/.libs/libgsticydemux.so</filename>
   <basename>libgsticydemux.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 3eb8099..eac3219 100644
--- a/docs/plugins/inspect/plugin-id3demux.xml
+++ b/docs/plugins/inspect/plugin-id3demux.xml
@@ -3,7 +3,7 @@
   <description>Demux ID3v1 and ID3v2 tags from a file</description>
   <filename>../../gst/id3demux/.libs/libgstid3demux.so</filename>
   <basename>libgstid3demux.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 f2359fe..df78953 100644
--- a/docs/plugins/inspect/plugin-imagefreeze.xml
+++ b/docs/plugins/inspect/plugin-imagefreeze.xml
@@ -3,7 +3,7 @@
   <description>Still frame stream generator</description>
   <filename>../../gst/imagefreeze/.libs/libgstimagefreeze.so</filename>
   <basename>libgstimagefreeze.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 bd0e1ff..5b22c3c 100644
--- a/docs/plugins/inspect/plugin-interleave.xml
+++ b/docs/plugins/inspect/plugin-interleave.xml
@@ -3,7 +3,7 @@
   <description>Audio interleaver/deinterleaver</description>
   <filename>../../gst/interleave/.libs/libgstinterleave.so</filename>
   <basename>libgstinterleave.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 00f98da..98514e0 100644
--- a/docs/plugins/inspect/plugin-isomp4.xml
+++ b/docs/plugins/inspect/plugin-isomp4.xml
@@ -3,7 +3,7 @@
   <description>ISO base media file format support (mp4, 3gpp, qt, mj2)</description>
   <filename>../../gst/isomp4/.libs/libgstisomp4.so</filename>
   <basename>libgstisomp4.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 113bad2..0a53c5c 100644
--- a/docs/plugins/inspect/plugin-jack.xml
+++ b/docs/plugins/inspect/plugin-jack.xml
@@ -3,7 +3,7 @@
   <description>JACK audio elements</description>
   <filename>../../ext/jack/.libs/libgstjack.so</filename>
   <basename>libgstjack.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 878004a..bd14077 100644
--- a/docs/plugins/inspect/plugin-jpeg.xml
+++ b/docs/plugins/inspect/plugin-jpeg.xml
@@ -3,7 +3,7 @@
   <description>JPeg plugin library</description>
   <filename>../../ext/jpeg/.libs/libgstjpeg.so</filename>
   <basename>libgstjpeg.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 cc4059d..98b93ef 100644
--- a/docs/plugins/inspect/plugin-level.xml
+++ b/docs/plugins/inspect/plugin-level.xml
@@ -3,7 +3,7 @@
   <description>Audio level plugin</description>
   <filename>../../gst/level/.libs/libgstlevel.so</filename>
   <basename>libgstlevel.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 dae62cc..dacc7c3 100644
--- a/docs/plugins/inspect/plugin-matroska.xml
+++ b/docs/plugins/inspect/plugin-matroska.xml
@@ -3,7 +3,7 @@
   <description>Matroska and WebM stream handling</description>
   <filename>../../gst/matroska/.libs/libgstmatroska.so</filename>
   <basename>libgstmatroska.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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-mulaw.xml b/docs/plugins/inspect/plugin-mulaw.xml
index 0301a91..3061052 100644
--- a/docs/plugins/inspect/plugin-mulaw.xml
+++ b/docs/plugins/inspect/plugin-mulaw.xml
@@ -3,7 +3,7 @@
   <description>MuLaw audio conversion routines</description>
   <filename>../../gst/law/.libs/libgstmulaw.so</filename>
   <basename>libgstmulaw.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 a1f46bb..b9300d0 100644
--- a/docs/plugins/inspect/plugin-multifile.xml
+++ b/docs/plugins/inspect/plugin-multifile.xml
@@ -3,7 +3,7 @@
   <description>Reads/Writes buffers from/to sequentially named files</description>
   <filename>../../gst/multifile/.libs/libgstmultifile.so</filename>
   <basename>libgstmultifile.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 dc77899..c20ecb6 100644
--- a/docs/plugins/inspect/plugin-multipart.xml
+++ b/docs/plugins/inspect/plugin-multipart.xml
@@ -3,7 +3,7 @@
   <description>multipart stream manipulation</description>
   <filename>../../gst/multipart/.libs/libgstmultipart.so</filename>
   <basename>libgstmultipart.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 acf3bbd..e913106 100644
--- a/docs/plugins/inspect/plugin-navigationtest.xml
+++ b/docs/plugins/inspect/plugin-navigationtest.xml
@@ -3,7 +3,7 @@
   <description>Template for a video filter</description>
   <filename>../../gst/debugutils/.libs/libgstnavigationtest.so</filename>
   <basename>libgstnavigationtest.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 1516326..095ab09 100644
--- a/docs/plugins/inspect/plugin-oss4.xml
+++ b/docs/plugins/inspect/plugin-oss4.xml
@@ -3,7 +3,7 @@
   <description>Open Sound System (OSS) version 4 support for GStreamer</description>
   <filename>../../sys/oss4/.libs/libgstoss4audio.so</filename>
   <basename>libgstoss4audio.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 cb00088..72ed2eb 100644
--- a/docs/plugins/inspect/plugin-ossaudio.xml
+++ b/docs/plugins/inspect/plugin-ossaudio.xml
@@ -3,7 +3,7 @@
   <description>OSS (Open Sound System) support for GStreamer</description>
   <filename>../../sys/oss/.libs/libgstossaudio.so</filename>
   <basename>libgstossaudio.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 eb49f93..43eb33a 100644
--- a/docs/plugins/inspect/plugin-png.xml
+++ b/docs/plugins/inspect/plugin-png.xml
@@ -3,7 +3,7 @@
   <description>PNG plugin library</description>
   <filename>../../ext/libpng/.libs/libgstpng.so</filename>
   <basename>libgstpng.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 7332158..bf4e6c6 100644
--- a/docs/plugins/inspect/plugin-pulseaudio.xml
+++ b/docs/plugins/inspect/plugin-pulseaudio.xml
@@ -3,7 +3,7 @@
   <description>PulseAudio plugin library</description>
   <filename>../../ext/pulse/.libs/libgstpulse.so</filename>
   <basename>libgstpulse.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 7f7fa1b..3132a51 100644
--- a/docs/plugins/inspect/plugin-replaygain.xml
+++ b/docs/plugins/inspect/plugin-replaygain.xml
@@ -3,7 +3,7 @@
   <description>ReplayGain volume normalization</description>
   <filename>../../gst/replaygain/.libs/libgstreplaygain.so</filename>
   <basename>libgstreplaygain.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 b72920e..5d927de 100644
--- a/docs/plugins/inspect/plugin-rtp.xml
+++ b/docs/plugins/inspect/plugin-rtp.xml
@@ -3,7 +3,7 @@
   <description>Real-time protocol plugins</description>
   <filename>../../gst/rtp/.libs/libgstrtp.so</filename>
   <basename>libgstrtp.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -748,7 +748,7 @@
       <name>rtph265depay</name>
       <longname>RTP H265 depayloader</longname>
       <class>Codec/Depayloader/Network/RTP</class>
-      <description>Extracts H265 video from RTP packets (draft-ietf-payload-rtp-h265-03.txt)</description>
+      <description>Extracts H265 video from RTP packets (RFC 7798)</description>
       <author>Jurgen Slowack &lt;jurgenslowack@gmail.com&gt;</author>
       <pads>
         <caps>
@@ -769,14 +769,14 @@
       <name>rtph265pay</name>
       <longname>RTP H265 payloader</longname>
       <class>Codec/Payloader/Network/RTP</class>
-      <description>Payload-encode H265 video into RTP packets (based on draft-ietf-payload-rtp-h265-03.txt)</description>
+      <description>Payload-encode H265 video into RTP packets (RFC 7798)</description>
       <author>Jurgen Slowack &lt;jurgenslowack@gmail.com&gt;</author>
       <pads>
         <caps>
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</details>
+          <details>video/x-h265, stream-format=(string)hvc1, alignment=(string)au; video/x-h265, stream-format=(string)byte-stream, alignment=(string){ nal, au }</details>
         </caps>
         <caps>
           <name>src</name>
@@ -839,13 +839,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
+          <details>application/x-rtp, media=(string)video, clock-rate=(int)90000, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }, encoding-name=(string)JPEG2000; application/x-rtp, media=(string)video, clock-rate=(int)90000, colorspace=(string){ sRGB, sYUV, GRAY }, encoding-name=(string)JPEG2000</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>image/x-jpc</details>
+          <details>image/x-jpc, colorspace=(string){ sRGB, sYUV, GRAY }</details>
         </caps>
       </pads>
     </element>
@@ -860,13 +860,13 @@
           <name>sink</name>
           <direction>sink</direction>
           <presence>always</presence>
-          <details>image/x-jpc</details>
+          <details>image/x-jpc, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }</details>
         </caps>
         <caps>
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)JPEG2000</details>
+          <details>application/x-rtp, media=(string)video, payload=(int)[ 96, 127 ], clock-rate=(int)90000, sampling=(string){ RGB, BGR, RGBA, BGRA, YCbCrA, YCbCr-4:4:4, YCbCr-4:2:2, YCbCr-4:2:0, YCbCr-4:1:1, GRAYSCALE }, encoding-name=(string)JPEG2000</details>
         </caps>
       </pads>
     </element>
@@ -1034,7 +1034,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw</details>
+          <details>audio/mpeg, mpegversion=(int)4, framed=(boolean){ false, true }, stream-format=(string)raw</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-rtpmanager.xml b/docs/plugins/inspect/plugin-rtpmanager.xml
index 58af964..2e5ebdc 100644
--- a/docs/plugins/inspect/plugin-rtpmanager.xml
+++ b/docs/plugins/inspect/plugin-rtpmanager.xml
@@ -3,7 +3,7 @@
   <description>RTP session management plugin library</description>
   <filename>../../gst/rtpmanager/.libs/libgstrtpmanager.so</filename>
   <basename>libgstrtpmanager.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 c6b6a06..36a579e 100644
--- a/docs/plugins/inspect/plugin-rtsp.xml
+++ b/docs/plugins/inspect/plugin-rtsp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via RTSP</description>
   <filename>../../gst/rtsp/.libs/libgstrtsp.so</filename>
   <basename>libgstrtsp.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 5499f67..aa1da72 100644
--- a/docs/plugins/inspect/plugin-shapewipe.xml
+++ b/docs/plugins/inspect/plugin-shapewipe.xml
@@ -3,7 +3,7 @@
   <description>Shape Wipe transition filter</description>
   <filename>../../gst/shapewipe/.libs/libgstshapewipe.so</filename>
   <basename>libgstshapewipe.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 e829ed5..fd9d379 100644
--- a/docs/plugins/inspect/plugin-shout2send.xml
+++ b/docs/plugins/inspect/plugin-shout2send.xml
@@ -3,7 +3,7 @@
   <description>Sends data to an icecast server using libshout2</description>
   <filename>../../ext/shout2/.libs/libgstshout2.so</filename>
   <basename>libgstshout2.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 b67b2ed..4deda2b 100644
--- a/docs/plugins/inspect/plugin-smpte.xml
+++ b/docs/plugins/inspect/plugin-smpte.xml
@@ -3,7 +3,7 @@
   <description>Apply the standard SMPTE transitions on video images</description>
   <filename>../../gst/smpte/.libs/libgstsmpte.so</filename>
   <basename>libgstsmpte.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 3b6ac18..04e5b2e 100644
--- a/docs/plugins/inspect/plugin-soup.xml
+++ b/docs/plugins/inspect/plugin-soup.xml
@@ -3,7 +3,7 @@
   <description>libsoup HTTP client src/sink</description>
   <filename>../../ext/soup/.libs/libgstsouphttpsrc.so</filename>
   <basename>libgstsouphttpsrc.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 5e233da..c6cf452 100644
--- a/docs/plugins/inspect/plugin-spectrum.xml
+++ b/docs/plugins/inspect/plugin-spectrum.xml
@@ -3,7 +3,7 @@
   <description>Run an FFT on the audio signal, output spectrum data</description>
   <filename>../../gst/spectrum/.libs/libgstspectrum.so</filename>
   <basename>libgstspectrum.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 161c2dd..d3d2351 100644
--- a/docs/plugins/inspect/plugin-speex.xml
+++ b/docs/plugins/inspect/plugin-speex.xml
@@ -3,7 +3,7 @@
   <description>Speex plugin library</description>
   <filename>../../ext/speex/.libs/libgstspeex.so</filename>
   <basename>libgstspeex.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 363545c..3182912 100644
--- a/docs/plugins/inspect/plugin-taglib.xml
+++ b/docs/plugins/inspect/plugin-taglib.xml
@@ -3,7 +3,7 @@
   <description>Tag writing plug-in based on taglib</description>
   <filename>../../ext/taglib/.libs/libgsttaglib.so</filename>
   <basename>libgsttaglib.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 ab7754a..8294a2a 100644
--- a/docs/plugins/inspect/plugin-udp.xml
+++ b/docs/plugins/inspect/plugin-udp.xml
@@ -3,7 +3,7 @@
   <description>transfer data via UDP</description>
   <filename>../../gst/udp/.libs/libgstudp.so</filename>
   <basename>libgstudp.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 315f26b..2c3af4d 100644
--- a/docs/plugins/inspect/plugin-video4linux2.xml
+++ b/docs/plugins/inspect/plugin-video4linux2.xml
@@ -3,7 +3,7 @@
   <description>elements for Video 4 Linux</description>
   <filename>../../sys/v4l2/.libs/libgstvideo4linux2.so</filename>
   <basename>libgstvideo4linux2.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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-videobox.xml b/docs/plugins/inspect/plugin-videobox.xml
index b973387..9513d24 100644
--- a/docs/plugins/inspect/plugin-videobox.xml
+++ b/docs/plugins/inspect/plugin-videobox.xml
@@ -3,7 +3,7 @@
   <description>resizes a video by adding borders or cropping</description>
   <filename>../../gst/videobox/.libs/libgstvideobox.so</filename>
   <basename>libgstvideobox.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 a045afe..35d6f4f 100644
--- a/docs/plugins/inspect/plugin-videocrop.xml
+++ b/docs/plugins/inspect/plugin-videocrop.xml
@@ -3,7 +3,7 @@
   <description>Crops video into a user-defined region</description>
   <filename>../../gst/videocrop/.libs/libgstvideocrop.so</filename>
   <basename>libgstvideocrop.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 42f5b7d..d0fb64d 100644
--- a/docs/plugins/inspect/plugin-videofilter.xml
+++ b/docs/plugins/inspect/plugin-videofilter.xml
@@ -3,7 +3,7 @@
   <description>Video filters plugin</description>
   <filename>../../gst/videofilter/.libs/libgstvideofilter.so</filename>
   <basename>libgstvideofilter.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 be88be7..937eca6 100644
--- a/docs/plugins/inspect/plugin-videomixer.xml
+++ b/docs/plugins/inspect/plugin-videomixer.xml
@@ -3,7 +3,7 @@
   <description>Video mixer</description>
   <filename>../../gst/videomixer/.libs/libgstvideomixer.so</filename>
   <basename>libgstvideomixer.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 29f8af1..d1e4b0e 100644
--- a/docs/plugins/inspect/plugin-vpx.xml
+++ b/docs/plugins/inspect/plugin-vpx.xml
@@ -3,7 +3,7 @@
   <description>VP8 plugin</description>
   <filename>../../ext/vpx/.libs/libgstvpx.so</filename>
   <basename>libgstvpx.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 64f9454..83941e0 100644
--- a/docs/plugins/inspect/plugin-wavenc.xml
+++ b/docs/plugins/inspect/plugin-wavenc.xml
@@ -3,7 +3,7 @@
   <description>Encode raw audio into WAV</description>
   <filename>../../gst/wavenc/.libs/libgstwavenc.so</filename>
   <basename>libgstwavenc.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 7a400d3..28f3ce3 100644
--- a/docs/plugins/inspect/plugin-wavpack.xml
+++ b/docs/plugins/inspect/plugin-wavpack.xml
@@ -3,7 +3,7 @@
   <description>Wavpack lossless/lossy audio format handling</description>
   <filename>../../ext/wavpack/.libs/libgstwavpack.so</filename>
   <basename>libgstwavpack.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 3cce7c4..54e03e5 100644
--- a/docs/plugins/inspect/plugin-wavparse.xml
+++ b/docs/plugins/inspect/plugin-wavparse.xml
@@ -3,7 +3,7 @@
   <description>Parse a .wav file into raw audio</description>
   <filename>../../gst/wavparse/.libs/libgstwavparse.so</filename>
   <basename>libgstwavparse.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
@@ -26,7 +26,7 @@
           <name>src</name>
           <direction>source</direction>
           <presence>always</presence>
-          <details>audio/ms-gsm, rate=(int)[ 1, 96000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)3, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]; audio/mpeg, mpegversion=(int)1, layer=(int)2, rate=(int)[ 16000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-vorbis, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 2 ]; audio/x-ac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 6 ]; audio/x-dts; audio/mpeg, mpegversion=(int)4, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ]; audio/x-alaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-mulaw, rate=(int)[ 1000, 48000 ], channels=(int)[ 1, 2 ]; audio/x-wms, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)microsoft, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ], block_align=(int)[ 1, 2147483647 ]; audio/x-truespeech, rate=(int)8000, channels=(int)[ 1, 2 ]; audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 8 ], block_align=(int)[ 1, 2147483647 ]; audio/x-vnd.sony.atrac3, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved, rate=(int)[ 1000, 192000 ], channels=(int)[ 1, 8 ]; audio/x-voxware, voxwaretype=(int)117, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk4, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dk3, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-adpcm, layout=(string)dvi, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]; audio/AMR, rate=(int)8000, channels=(int)1; audio/AMR-WB, rate=(int)16000, channels=(int)1; audio/x-siren; application/x-ogg-avi</details>
+          <details>audio/ms-gsm; audio/mpeg, mpegversion=(int)1, layer=(int)3; audio/mpeg, mpegversion=(int)1, layer=(int)2; audio/x-raw, format=(string){ S8, U8, S16LE, U16LE, S24LE, U24LE, S32LE, U32LE }, layout=(string)interleaved; audio/x-vorbis; audio/x-ac3; audio/x-dts; audio/mpeg, mpegversion=(int)4; audio/x-alaw; audio/x-mulaw; audio/x-wms, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)microsoft, block_align=(int)[ 1, 2147483647 ]; audio/x-adpcm, layout=(string)dvi, block_align=(int)[ 1, 2147483647 ]; audio/x-truespeech; audio/x-wma, wmaversion=(int)1, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)2, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-wma, wmaversion=(int)3, bitrate=(int)[ 0, 2147483647 ], block_align=(int)[ 1, 2147483647 ]; audio/x-vnd.sony.atrac3; audio/x-raw, format=(string){ F32LE, F64LE }, layout=(string)interleaved; audio/x-voxware, voxwaretype=(int)117; audio/x-adpcm, layout=(string)dk4; audio/x-adpcm, layout=(string)dk3; audio/x-adpcm, layout=(string)dvi; audio/AMR; audio/AMR-WB; audio/x-siren; application/x-ogg-avi</details>
         </caps>
       </pads>
     </element>
diff --git a/docs/plugins/inspect/plugin-ximagesrc.xml b/docs/plugins/inspect/plugin-ximagesrc.xml
index 17e4953..dd1f1fc 100644
--- a/docs/plugins/inspect/plugin-ximagesrc.xml
+++ b/docs/plugins/inspect/plugin-ximagesrc.xml
@@ -3,7 +3,7 @@
   <description>X11 video input plugin using standard Xlib calls</description>
   <filename>../../sys/ximage/.libs/libgstximagesrc.so</filename>
   <basename>libgstximagesrc.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.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 a02a0df..d050e09 100644
--- a/docs/plugins/inspect/plugin-y4menc.xml
+++ b/docs/plugins/inspect/plugin-y4menc.xml
@@ -3,7 +3,7 @@
   <description>Encodes a YUV frame into the yuv4mpeg format (mjpegtools)</description>
   <filename>../../gst/y4m/.libs/libgsty4menc.so</filename>
   <basename>libgsty4menc.so</basename>
-  <version>1.8.3</version>
+  <version>1.9.90</version>
   <license>LGPL</license>
   <source>gst-plugins-good</source>
   <package>GStreamer Good Plug-ins source release</package>
diff --git a/ext/Makefile.in b/ext/Makefile.in
index a85bda2..ca046b2 100644
--- a/ext/Makefile.in
+++ b/ext/Makefile.in
@@ -102,6 +102,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -320,6 +321,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -426,6 +428,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -493,6 +498,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/aalib/Makefile.in b/ext/aalib/Makefile.in
index af12e63..e9016f0 100644
--- a/ext/aalib/Makefile.in
+++ b/ext/aalib/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/aalib/gstaasink.c b/ext/aalib/gstaasink.c
index 6e2365e..880e479 100644
--- a/ext/aalib/gstaasink.c
+++ b/ext/aalib/gstaasink.c
@@ -209,8 +209,7 @@
       g_param_spec_int ("frame-time", "frame time", "frame time", G_MININT,
           G_MAXINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "ASCII art video sink", "Sink/Video", "An ASCII art videosink",
diff --git a/ext/cairo/Makefile.in b/ext/cairo/Makefile.in
index c536d73..b268db6 100644
--- a/ext/cairo/Makefile.in
+++ b/ext/cairo/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/cairo/gstcairooverlay.c b/ext/cairo/gstcairooverlay.c
index 88d74fb..9aa4c53 100644
--- a/ext/cairo/gstcairooverlay.c
+++ b/ext/cairo/gstcairooverlay.c
@@ -242,10 +242,10 @@
       "Render overlay on a video stream using Cairo",
       "Jon Nordby <jononor@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_cairo_overlay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_cairo_overlay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_cairo_overlay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_cairo_overlay_src_template);
 }
 
 static void
diff --git a/ext/dv/Makefile.in b/ext/dv/Makefile.in
index ed4d074..98d18c3 100644
--- a/ext/dv/Makefile.in
+++ b/ext/dv/Makefile.in
@@ -101,6 +101,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -352,6 +353,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -458,6 +460,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -525,6 +530,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/dv/gstdvdec.c b/ext/dv/gstdvdec.c
index e36b4d2..c279e3e 100644
--- a/ext/dv/gstdvdec.c
+++ b/ext/dv/gstdvdec.c
@@ -174,10 +174,8 @@
 
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_dvdec_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_temp));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_temp));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_temp);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_temp);
 
   gst_element_class_set_static_metadata (gstelement_class, "DV video decoder",
       "Codec/Decoder/Video",
diff --git a/ext/dv/gstdvdemux.c b/ext/dv/gstdvdemux.c
index 9479e9a..6040270 100644
--- a/ext/dv/gstdvdemux.c
+++ b/ext/dv/gstdvdemux.c
@@ -182,12 +182,9 @@
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_dvdemux_change_state);
   gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_dvdemux_send_event);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_temp));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_temp));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_temp));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_temp);
+  gst_element_class_add_static_pad_template (gstelement_class, &video_src_temp);
+  gst_element_class_add_static_pad_template (gstelement_class, &audio_src_temp);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DV system stream demuxer", "Codec/Demuxer",
@@ -258,6 +255,7 @@
   dvdemux->frame_offset = 0;
   dvdemux->audio_offset = 0;
   dvdemux->video_offset = 0;
+  dvdemux->discont = TRUE;
   g_atomic_int_set (&dvdemux->found_header, 0);
   dvdemux->frame_len = -1;
   dvdemux->need_segment = FALSE;
@@ -270,6 +268,8 @@
   dvdemux->wide = FALSE;
   gst_segment_init (&dvdemux->byte_segment, GST_FORMAT_BYTES);
   gst_segment_init (&dvdemux->time_segment, GST_FORMAT_TIME);
+  dvdemux->segment_seqnum = 0;
+  dvdemux->upstream_time_segment = FALSE;
   dvdemux->have_group_id = FALSE;
   dvdemux->group_id = G_MAXUINT;
 }
@@ -639,6 +639,57 @@
       gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val);
       break;
     }
+    case GST_QUERY_SEEKING:
+    {
+      GstFormat fmt;
+      GstQuery *peerquery;
+      gboolean seekable;
+
+      gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
+
+      /* We can only handle TIME seeks really */
+      if (fmt != GST_FORMAT_TIME) {
+        gst_query_set_seeking (query, fmt, FALSE, -1, -1);
+        break;
+      }
+
+      /* First ask upstream */
+      if (gst_pad_peer_query (dvdemux->sinkpad, query)) {
+        gst_query_parse_seeking (query, NULL, &seekable, NULL, NULL);
+        if (seekable) {
+          res = TRUE;
+          break;
+        }
+      }
+
+      res = TRUE;
+
+      peerquery = gst_query_new_seeking (GST_FORMAT_BYTES);
+      seekable = gst_pad_peer_query (dvdemux->sinkpad, peerquery);
+
+      if (seekable)
+        gst_query_parse_seeking (peerquery, NULL, &seekable, NULL, NULL);
+      gst_query_unref (peerquery);
+
+      if (seekable) {
+        peerquery = gst_query_new_duration (GST_FORMAT_TIME);
+        seekable = gst_dvdemux_src_query (pad, parent, peerquery);
+
+        if (seekable) {
+          gint64 duration;
+
+          gst_query_parse_duration (peerquery, NULL, &duration);
+          gst_query_set_seeking (query, GST_FORMAT_TIME, seekable, 0, duration);
+        } else {
+          gst_query_set_seeking (query, GST_FORMAT_TIME, FALSE, -1, -1);
+        }
+
+        gst_query_unref (peerquery);
+      } else {
+        gst_query_set_seeking (query, GST_FORMAT_TIME, FALSE, -1, -1);
+      }
+      break;
+    }
     default:
       res = gst_pad_query_default (pad, parent, query);
       break;
@@ -731,6 +782,7 @@
       GST_DEBUG ("cleared adapter");
       gst_segment_init (&dvdemux->byte_segment, GST_FORMAT_BYTES);
       gst_segment_init (&dvdemux->time_segment, GST_FORMAT_TIME);
+      dvdemux->discont = TRUE;
       res = gst_dvdemux_push_event (dvdemux, event);
       break;
     case GST_EVENT_SEGMENT:
@@ -742,11 +794,15 @@
         case GST_FORMAT_BYTES:
           gst_segment_copy_into (segment, &dvdemux->byte_segment);
           dvdemux->need_segment = TRUE;
+          dvdemux->segment_seqnum = gst_event_get_seqnum (event);
           gst_event_unref (event);
           break;
         case GST_FORMAT_TIME:
           gst_segment_copy_into (segment, &dvdemux->time_segment);
 
+          dvdemux->upstream_time_segment = TRUE;
+          dvdemux->segment_seqnum = gst_event_get_seqnum (event);
+
           /* and we can just forward this time event */
           res = gst_dvdemux_push_event (dvdemux, event);
           break;
@@ -911,6 +967,7 @@
     /* now this is the updated seek event on bytes */
     newevent = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
         cur_type, start_position, stop_type, end_position);
+    gst_event_set_seqnum (newevent, gst_event_get_seqnum (event));
 
     res = gst_pad_push_event (dvdemux->sinkpad, newevent);
   }
@@ -918,6 +975,23 @@
   return res;
 }
 
+static void
+gst_dvdemux_update_frame_offsets (GstDVDemux * dvdemux, GstClockTime timestamp)
+{
+  /* calculate current frame number */
+  gst_dvdemux_src_convert (dvdemux, dvdemux->videosrcpad,
+      dvdemux->time_segment.format, timestamp,
+      GST_FORMAT_DEFAULT, &dvdemux->video_offset);
+
+  /* calculate current audio number */
+  gst_dvdemux_src_convert (dvdemux, dvdemux->audiosrcpad,
+      dvdemux->time_segment.format, timestamp,
+      GST_FORMAT_DEFAULT, &dvdemux->audio_offset);
+
+  /* every DV frame corresponts with one video frame */
+  dvdemux->frame_offset = dvdemux->video_offset;
+}
+
 /* position ourselves to the configured segment, used in pull mode.
  * The input segment is in TIME format. We convert the time values
  * to bytes values into our byte_segment which we use to pull data from
@@ -954,18 +1028,9 @@
       segment->format, segment->time, format,
       (gint64 *) & demux->byte_segment.time);
 
-  /* calculate current frame number */
-  format = GST_FORMAT_DEFAULT;
-  gst_dvdemux_src_convert (demux, demux->videosrcpad,
-      segment->format, segment->start, format, &demux->video_offset);
+  gst_dvdemux_update_frame_offsets (demux, segment->start);
 
-  /* calculate current audio number */
-  format = GST_FORMAT_DEFAULT;
-  gst_dvdemux_src_convert (demux, demux->audiosrcpad,
-      segment->format, segment->start, format, &demux->audio_offset);
-
-  /* every DV frame corresponts with one video frame */
-  demux->frame_offset = demux->video_offset;
+  demux->discont = TRUE;
 
 done:
   return res;
@@ -988,6 +1053,7 @@
   gboolean flush;
   gboolean update;
   GstSegment seeksegment;
+  GstEvent *new_event;
 
   GST_DEBUG_OBJECT (demux, "doing seek");
 
@@ -1014,13 +1080,18 @@
     flags = 0;
   }
 
+  demux->segment_seqnum = gst_event_get_seqnum (event);
+
   flush = flags & GST_SEEK_FLAG_FLUSH;
 
   /* send flush start */
-  if (flush)
-    gst_dvdemux_push_event (demux, gst_event_new_flush_start ());
-  else
+  if (flush) {
+    new_event = gst_event_new_flush_start ();
+    gst_event_set_seqnum (new_event, demux->segment_seqnum);
+    gst_dvdemux_push_event (demux, new_event);
+  } else {
     gst_pad_pause_task (demux->sinkpad);
+  }
 
   /* grab streaming lock, this should eventually be possible, either
    * because the task is paused or our streaming thread stopped
@@ -1048,7 +1119,9 @@
   if (flush) {
     /* send flush stop, peer will accept data and events again. We
      * are not yet providing data as we still have the STREAM_LOCK. */
-    gst_dvdemux_push_event (demux, gst_event_new_flush_stop (TRUE));
+    new_event = gst_event_new_flush_stop (TRUE);
+    gst_event_set_seqnum (new_event, demux->segment_seqnum);
+    gst_dvdemux_push_event (demux, new_event);
   }
 
   /* if successfull seek, we update our real segment and push
@@ -1057,9 +1130,12 @@
     memcpy (&demux->time_segment, &seeksegment, sizeof (GstSegment));
 
     if (demux->time_segment.flags & GST_SEEK_FLAG_SEGMENT) {
-      gst_element_post_message (GST_ELEMENT_CAST (demux),
-          gst_message_new_segment_start (GST_OBJECT_CAST (demux),
-              demux->time_segment.format, demux->time_segment.position));
+      GstMessage *message;
+
+      message = gst_message_new_segment_start (GST_OBJECT_CAST (demux),
+          demux->time_segment.format, demux->time_segment.position);
+      gst_message_set_seqnum (message, demux->segment_seqnum);
+      gst_element_post_message (GST_ELEMENT_CAST (demux), message);
     }
     if ((stop = demux->time_segment.stop) == -1)
       stop = demux->time_segment.duration;
@@ -1071,6 +1147,7 @@
       gst_event_unref (demux->pending_segment);
 
     demux->pending_segment = gst_event_new_segment (&demux->time_segment);
+    gst_event_set_seqnum (demux->pending_segment, demux->segment_seqnum);
 
     demux->need_segment = FALSE;
   }
@@ -1124,10 +1201,9 @@
       } else {
         GST_OBJECT_UNLOCK (dvdemux);
 
-        if (dvdemux->seek_handler) {
+        if (dvdemux->seek_handler)
           res = dvdemux->seek_handler (dvdemux, dvdemux->videosrcpad, event);
-          gst_event_unref (event);
-        }
+        gst_event_unref (event);
       }
       break;
     }
@@ -1144,7 +1220,7 @@
 gst_dvdemux_handle_src_event (GstPad * pad, GstObject * parent,
     GstEvent * event)
 {
-  gboolean res = TRUE;
+  gboolean res = FALSE;
   GstDVDemux *dvdemux;
 
   dvdemux = GST_DVDEMUX (parent);
@@ -1154,25 +1230,12 @@
       /* seek handler is installed based on scheduling mode */
       if (dvdemux->seek_handler)
         res = dvdemux->seek_handler (dvdemux, pad, event);
-      else
-        res = FALSE;
-      break;
-    case GST_EVENT_QOS:
-      /* we can't really (yet) do QoS */
-      res = FALSE;
-      break;
-    case GST_EVENT_NAVIGATION:
-    case GST_EVENT_CAPS:
-      /* no navigation or caps either... */
-      res = FALSE;
+      gst_event_unref (event);
       break;
     default:
       res = gst_pad_push_event (dvdemux->sinkpad, event);
-      event = NULL;
       break;
   }
-  if (event)
-    gst_event_unref (event);
 
   return res;
 }
@@ -1244,7 +1307,7 @@
     dvdemux->audio_offset += num_samples;
     GST_BUFFER_OFFSET_END (outbuf) = dvdemux->audio_offset;
 
-    if (dvdemux->new_media)
+    if (dvdemux->new_media || dvdemux->discont)
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
 
     ret = gst_pad_push (dvdemux->audiosrcpad, outbuf);
@@ -1324,7 +1387,7 @@
   GST_BUFFER_OFFSET_END (outbuf) = dvdemux->video_offset + 1;
   GST_BUFFER_DURATION (outbuf) = duration;
 
-  if (dvdemux->new_media)
+  if (dvdemux->new_media || dvdemux->discont)
     GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
 
   GST_DEBUG ("pushing video %" GST_TIME_FORMAT,
@@ -1426,8 +1489,11 @@
   GstSMPTETimeCode timecode;
   int frame_number;
 
-  if (G_UNLIKELY (dvdemux->need_segment)) {
+  if (dvdemux->need_segment) {
     GstFormat format;
+    GstEvent *event;
+
+    g_assert (!dvdemux->upstream_time_segment);
 
     /* convert to time and store as start/end_timestamp */
     format = GST_FORMAT_TIME;
@@ -1438,15 +1504,14 @@
                 (gint64 *) & dvdemux->time_segment.stop)))
       goto segment_error;
 
+    dvdemux->time_segment.time = dvdemux->time_segment.start;
     dvdemux->time_segment.rate = dvdemux->byte_segment.rate;
-    dvdemux->time_segment.position = dvdemux->time_segment.start;
 
-    /* calculate current frame number */
-    format = GST_FORMAT_DEFAULT;
-    if (!(gst_dvdemux_src_convert (dvdemux, dvdemux->videosrcpad,
-                GST_FORMAT_TIME, dvdemux->time_segment.start,
-                format, &dvdemux->frame_offset)))
-      goto segment_error;
+    gst_dvdemux_sink_convert (dvdemux,
+        GST_FORMAT_BYTES, dvdemux->byte_segment.position,
+        GST_FORMAT_TIME, (gint64 *) & dvdemux->time_segment.position);
+
+    gst_dvdemux_update_frame_offsets (dvdemux, dvdemux->time_segment.position);
 
     GST_DEBUG_OBJECT (dvdemux, "sending segment start: %" GST_TIME_FORMAT
         ", stop: %" GST_TIME_FORMAT ", time: %" GST_TIME_FORMAT,
@@ -1454,8 +1519,10 @@
         GST_TIME_ARGS (dvdemux->time_segment.stop),
         GST_TIME_ARGS (dvdemux->time_segment.start));
 
-    gst_dvdemux_push_event (dvdemux,
-        gst_event_new_segment (&dvdemux->time_segment));
+    event = gst_event_new_segment (&dvdemux->time_segment);
+    if (dvdemux->segment_seqnum)
+      gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+    gst_dvdemux_push_event (dvdemux, event);
 
     dvdemux->need_segment = FALSE;
   }
@@ -1466,10 +1533,18 @@
       GST_SMPTE_TIME_CODE_SYSTEM_25 : GST_SMPTE_TIME_CODE_SYSTEM_30,
       &frame_number, &timecode);
 
-  next_ts = gst_util_uint64_scale_int (
-      (dvdemux->frame_offset + 1) * GST_SECOND,
-      dvdemux->framerate_denominator, dvdemux->framerate_numerator);
-  duration = next_ts - dvdemux->time_segment.position;
+  if (dvdemux->time_segment.rate < 0) {
+    next_ts = gst_util_uint64_scale_int (
+        (dvdemux->frame_offset >
+            0 ? dvdemux->frame_offset - 1 : 0) * GST_SECOND,
+        dvdemux->framerate_denominator, dvdemux->framerate_numerator);
+    duration = dvdemux->time_segment.position - next_ts;
+  } else {
+    next_ts = gst_util_uint64_scale_int (
+        (dvdemux->frame_offset + 1) * GST_SECOND,
+        dvdemux->framerate_denominator, dvdemux->framerate_numerator);
+    duration = next_ts - dvdemux->time_segment.position;
+  }
 
   gst_buffer_map (buffer, &map, GST_MAP_READ);
   dv_parse_packs (dvdemux->decoder, map.data);
@@ -1500,11 +1575,24 @@
     goto done;
   }
 
+  dvdemux->discont = FALSE;
   dvdemux->time_segment.position = next_ts;
-  dvdemux->frame_offset++;
+
+  if (dvdemux->time_segment.rate < 0) {
+    if (dvdemux->frame_offset > 0)
+      dvdemux->frame_offset--;
+    else
+      GST_WARNING_OBJECT (dvdemux,
+          "Got before frame offset 0 in reverse playback");
+  } else {
+    dvdemux->frame_offset++;
+  }
 
   /* check for the end of the segment */
-  if (dvdemux->time_segment.stop != -1 && next_ts > dvdemux->time_segment.stop)
+  if ((dvdemux->time_segment.rate > 0 && dvdemux->time_segment.stop != -1
+          && next_ts > dvdemux->time_segment.stop)
+      || (dvdemux->time_segment.rate < 0
+          && dvdemux->time_segment.start > next_ts))
     ret = GST_FLOW_EOS;
   else
     ret = GST_FLOW_OK;
@@ -1595,14 +1683,28 @@
   /* a discontinuity in the stream, we need to get rid of
    * accumulated data in the adapter and assume a new frame
    * starts after the discontinuity */
-  if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)))
+  if (G_UNLIKELY (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT))) {
     gst_adapter_clear (dvdemux->adapter);
+    dvdemux->discont = TRUE;
+
+    /* Should recheck where we are */
+    if (!dvdemux->upstream_time_segment)
+      dvdemux->need_segment = TRUE;
+  }
 
   /* a timestamp always should be respected */
   timestamp = GST_BUFFER_TIMESTAMP (buffer);
   if (GST_CLOCK_TIME_IS_VALID (timestamp)) {
     dvdemux->time_segment.position = timestamp;
-    /* FIXME, adjust frame_offset and other counters */
+
+    if (dvdemux->discont)
+      gst_dvdemux_update_frame_offsets (dvdemux,
+          dvdemux->time_segment.position);
+  } else if (dvdemux->upstream_time_segment && dvdemux->discont) {
+    /* This will probably fail later to provide correct
+     * timestamps and/or durations but also should not happen */
+    GST_ERROR_OBJECT (dvdemux,
+        "Upstream provides TIME segment but no PTS after discont");
   }
 
   gst_adapter_push (dvdemux->adapter, buffer);
@@ -1745,20 +1847,30 @@
   /* ERRORS */
 parse_header_error:
   {
+    GstEvent *event;
+
     GST_ELEMENT_ERROR (dvdemux, STREAM, DECODE,
         (NULL), ("Error parsing DV header"));
     gst_buffer_unref (buffer);
     gst_pad_pause_task (dvdemux->sinkpad);
-    gst_dvdemux_push_event (dvdemux, gst_event_new_eos ());
+    event = gst_event_new_eos ();
+    if (dvdemux->segment_seqnum)
+      gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+    gst_dvdemux_push_event (dvdemux, event);
     goto done;
   }
 small_buffer:
   {
+    GstEvent *event;
+
     GST_ELEMENT_ERROR (dvdemux, STREAM, DECODE,
         (NULL), ("Error reading buffer"));
     gst_buffer_unref (buffer);
     gst_pad_pause_task (dvdemux->sinkpad);
-    gst_dvdemux_push_event (dvdemux, gst_event_new_eos ());
+    event = gst_event_new_eos ();
+    if (dvdemux->segment_seqnum)
+      gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+    gst_dvdemux_push_event (dvdemux, event);
     goto done;
   }
 pause:
@@ -1776,20 +1888,34 @@
         dvdemux->time_segment.position = dvdemux->time_segment.start;
       /* perform EOS logic */
       if (dvdemux->time_segment.flags & GST_SEEK_FLAG_SEGMENT) {
-        gst_element_post_message (GST_ELEMENT (dvdemux),
-            gst_message_new_segment_done (GST_OBJECT_CAST (dvdemux),
-                dvdemux->time_segment.format, dvdemux->time_segment.position));
-        gst_dvdemux_push_event (dvdemux,
-            gst_event_new_segment_done (dvdemux->time_segment.format,
-                dvdemux->time_segment.position));
+        GstMessage *message;
+        GstEvent *event;
+
+        event = gst_event_new_segment_done (dvdemux->time_segment.format,
+            dvdemux->time_segment.position);
+        if (dvdemux->segment_seqnum)
+          gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+
+        message = gst_message_new_segment_done (GST_OBJECT_CAST (dvdemux),
+            dvdemux->time_segment.format, dvdemux->time_segment.position);
+        if (dvdemux->segment_seqnum)
+          gst_message_set_seqnum (message, dvdemux->segment_seqnum);
+
+        gst_element_post_message (GST_ELEMENT (dvdemux), message);
+        gst_dvdemux_push_event (dvdemux, event);
       } else {
-        gst_dvdemux_push_event (dvdemux, gst_event_new_eos ());
+        GstEvent *event = gst_event_new_eos ();
+        if (dvdemux->segment_seqnum)
+          gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+        gst_dvdemux_push_event (dvdemux, event);
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
+      GstEvent *event = gst_event_new_eos ();
       /* for fatal errors or not-linked we post an error message */
-      GST_ELEMENT_ERROR (dvdemux, STREAM, FAILED,
-          (NULL), ("streaming stopped, reason %s", gst_flow_get_name (ret)));
-      gst_dvdemux_push_event (dvdemux, gst_event_new_eos ());
+      GST_ELEMENT_FLOW_ERROR (dvdemux, ret);
+      if (dvdemux->segment_seqnum)
+        gst_event_set_seqnum (event, dvdemux->segment_seqnum);
+      gst_dvdemux_push_event (dvdemux, event);
     }
     goto done;
   }
diff --git a/ext/dv/gstdvdemux.h b/ext/dv/gstdvdemux.h
index fa95691..1e8abbf 100644
--- a/ext/dv/gstdvdemux.h
+++ b/ext/dv/gstdvdemux.h
@@ -69,14 +69,17 @@
   gint           frequency;
   gint           channels;
 
+  gboolean       discont;
   gint64         frame_offset;
   gint64         audio_offset;
   gint64         video_offset;
 
   GstDVDemuxSeekHandler seek_handler;
   GstSegment     byte_segment;
+  gboolean       upstream_time_segment;
   GstSegment     time_segment;
   gboolean       need_segment;
+  guint32        segment_seqnum;
   gboolean       new_media;
   int            frames_since_new_media;
   
diff --git a/ext/flac/Makefile.in b/ext/flac/Makefile.in
index 567f9f9..7eaa048 100644
--- a/ext/flac/Makefile.in
+++ b/ext/flac/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/flac/gstflacdec.c b/ext/flac/gstflacdec.c
index 515ffbd..dbaa0f1 100644
--- a/ext/flac/gstflacdec.c
+++ b/ext/flac/gstflacdec.c
@@ -164,10 +164,10 @@
   audiodecoder_class->handle_frame =
       GST_DEBUG_FUNCPTR (gst_flac_dec_handle_frame);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&flac_dec_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&flac_dec_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &flac_dec_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &flac_dec_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "FLAC audio decoder",
       "Codec/Decoder/Audio", "Decodes FLAC lossless audio streams",
diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c
index 0e3940f..048bb8c 100644
--- a/ext/flac/gstflacenc.c
+++ b/ext/flac/gstflacenc.c
@@ -341,8 +341,7 @@
           DEFAULT_SEEKPOINTS,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   sink_caps = gst_flac_enc_generate_sink_caps ();
   sink_templ = gst_pad_template_new ("sink",
diff --git a/ext/flac/gstflactag.c b/ext/flac/gstflactag.c
index 5f524f1..8047bd9 100644
--- a/ext/flac/gstflactag.c
+++ b/ext/flac/gstflactag.c
@@ -109,11 +109,10 @@
       "Formatter/Metadata",
       "Rewrite tags in a FLAC file", "Christophe Fergeau <teuf@gnome.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&flac_tag_sink_template));
-
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&flac_tag_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &flac_tag_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &flac_tag_src_template);
 }
 
 static void
diff --git a/ext/gdk_pixbuf/Makefile.in b/ext/gdk_pixbuf/Makefile.in
index 02a30b2..459010f 100644
--- a/ext/gdk_pixbuf/Makefile.in
+++ b/ext/gdk_pixbuf/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/gdk_pixbuf/gstgdkpixbufdec.c b/ext/gdk_pixbuf/gstgdkpixbufdec.c
index 589e74f..1598c53 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufdec.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufdec.c
@@ -180,10 +180,10 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_gdk_pixbuf_dec_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gdk_pixbuf_dec_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gdk_pixbuf_dec_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gdk_pixbuf_dec_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gdk_pixbuf_dec_sink_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "GdkPixbuf image decoder", "Codec/Decoder/Image",
       "Decodes images in a video stream using GdkPixbuf",
@@ -417,8 +417,7 @@
          * things failed */
         if (res != GST_FLOW_OK && res != GST_FLOW_FLUSHING
             && res != GST_FLOW_EOS && res != GST_FLOW_NOT_LINKED) {
-          GST_ELEMENT_ERROR (pixbuf, STREAM, FAILED, (NULL), ("Flow: %s",
-                  gst_flow_get_name (res)));
+          GST_ELEMENT_FLOW_ERROR (pixbuf, res);
           forward = FALSE;
           ret = FALSE;
         }
diff --git a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
index 842eca5..85421db 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufoverlay.c
@@ -240,10 +240,8 @@
           GST_TYPE_GDK_PIXBUF_POSITIONING_MODE, DEFAULT_POSITIONING_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "GdkPixbuf Overlay", "Filter/Effect/Video",
diff --git a/ext/gdk_pixbuf/gstgdkpixbufsink.c b/ext/gdk_pixbuf/gstgdkpixbufsink.c
index 0151569..fabd6bf 100644
--- a/ext/gdk_pixbuf/gstgdkpixbufsink.c
+++ b/ext/gdk_pixbuf/gstgdkpixbufsink.c
@@ -149,8 +149,8 @@
       "Sink/Video", "Output images as GdkPixbuf objects in bus messages",
       "Tim-Philipp Müller <tim centricular net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&pixbufsink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &pixbufsink_sink_factory);
 
   gobject_class->set_property = gst_gdk_pixbuf_sink_set_property;
   gobject_class->get_property = gst_gdk_pixbuf_sink_get_property;
diff --git a/ext/jack/Makefile.in b/ext/jack/Makefile.in
index 6c100f8..8b6489f 100644
--- a/ext/jack/Makefile.in
+++ b/ext/jack/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/jack/gstjackaudioclient.c b/ext/jack/gstjackaudioclient.c
index 9c50a6a..19022c0 100644
--- a/ext/jack/gstjackaudioclient.c
+++ b/ext/jack/gstjackaudioclient.c
@@ -201,20 +201,6 @@
   return res;
 }
 
-/* we error out */
-static int
-jack_sample_rate_cb (jack_nframes_t nframes, void *arg)
-{
-  return 0;
-}
-
-/* we error out */
-static int
-jack_buffer_size_cb (jack_nframes_t nframes, void *arg)
-{
-  return 0;
-}
-
 static void
 jack_shutdown_cb (void *arg)
 {
@@ -244,6 +230,22 @@
   g_mutex_unlock (&conn->lock);
 }
 
+/* we error out */
+static int
+jack_sample_rate_cb (jack_nframes_t nframes, void *arg)
+{
+  jack_shutdown_cb (arg);
+  return 0;
+}
+
+/* we error out */
+static int
+jack_buffer_size_cb (jack_nframes_t nframes, void *arg)
+{
+  jack_shutdown_cb (arg);
+  return 0;
+}
+
 typedef struct
 {
   const gchar *id;
diff --git a/ext/jack/gstjackaudiosink.c b/ext/jack/gstjackaudiosink.c
index dd8b73f..4f49f25 100644
--- a/ext/jack/gstjackaudiosink.c
+++ b/ext/jack/gstjackaudiosink.c
@@ -785,8 +785,8 @@
       "Sink/Audio", "Output audio to a JACK server",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&jackaudiosink_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &jackaudiosink_sink_factory);
 
   gstbasesink_class->get_caps = GST_DEBUG_FUNCPTR (gst_jack_audio_sink_getcaps);
 
diff --git a/ext/jack/gstjackaudiosrc.c b/ext/jack/gstjackaudiosrc.c
index bc0d908..53ebee7 100644
--- a/ext/jack/gstjackaudiosrc.c
+++ b/ext/jack/gstjackaudiosrc.c
@@ -801,8 +801,7 @@
           GST_TYPE_JACK_TRANSPORT, DEFAULT_PROP_TRANSPORT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Audio Source (Jack)", "Source/Audio",
diff --git a/ext/jpeg/Makefile.in b/ext/jpeg/Makefile.in
index 1505f34..12afd03 100644
--- a/ext/jpeg/Makefile.in
+++ b/ext/jpeg/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/jpeg/gstjpegdec.c b/ext/jpeg/gstjpegdec.c
index b3fda92..8486c64 100644
--- a/ext/jpeg/gstjpegdec.c
+++ b/ext/jpeg/gstjpegdec.c
@@ -162,13 +162,13 @@
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
 #endif
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_jpeg_dec_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_jpeg_dec_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_jpeg_dec_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_jpeg_dec_sink_pad_template);
   gst_element_class_set_static_metadata (element_class, "JPEG image decoder",
-      "Codec/Decoder/Image",
-      "Decode images from JPEG format", "Wim Taymans <wim@fluendo.com>");
+      "Codec/Decoder/Image", "Decode images from JPEG format",
+      "Wim Taymans <wim@fluendo.com>");
 
   vdec_class->start = gst_jpeg_dec_start;
   vdec_class->stop = gst_jpeg_dec_stop;
diff --git a/ext/jpeg/gstjpegenc.c b/ext/jpeg/gstjpegenc.c
index c1ba694..67ae6dc 100644
--- a/ext/jpeg/gstjpegenc.c
+++ b/ext/jpeg/gstjpegenc.c
@@ -150,13 +150,13 @@
           JPEG_DEFAULT_IDCT_METHOD,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_jpegenc_sink_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_jpegenc_src_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_jpegenc_sink_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_jpegenc_src_pad_template);
   gst_element_class_set_static_metadata (element_class, "JPEG image encoder",
-      "Codec/Encoder/Image",
-      "Encode images in JPEG format", "Wim Taymans <wim.taymans@tvd.be>");
+      "Codec/Encoder/Image", "Encode images in JPEG format",
+      "Wim Taymans <wim.taymans@tvd.be>");
 
   venc_class->start = gst_jpegenc_start;
   venc_class->stop = gst_jpegenc_stop;
diff --git a/ext/libcaca/Makefile.in b/ext/libcaca/Makefile.in
index 6175d28..a72eb4e 100644
--- a/ext/libcaca/Makefile.in
+++ b/ext/libcaca/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/libcaca/gstcacasink.c b/ext/libcaca/gstcacasink.c
index 0f46280..4e35f08 100644
--- a/ext/libcaca/gstcacasink.c
+++ b/ext/libcaca/gstcacasink.c
@@ -152,8 +152,7 @@
   gst_element_class_set_static_metadata (gstelement_class,
       "A colored ASCII art video sink", "Sink/Video",
       "A colored ASCII art videosink", "Zeeshan Ali <zak147@yahoo.com>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_cacasink_setcaps);
   gstbasesink_class->get_times = GST_DEBUG_FUNCPTR (gst_cacasink_get_times);
diff --git a/ext/libpng/Makefile.in b/ext/libpng/Makefile.in
index 0a5879b..2501e16 100644
--- a/ext/libpng/Makefile.in
+++ b/ext/libpng/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/libpng/gstpngdec.c b/ext/libpng/gstpngdec.c
index e8200e2..ca310fa 100644
--- a/ext/libpng/gstpngdec.c
+++ b/ext/libpng/gstpngdec.c
@@ -83,13 +83,12 @@
   GstElementClass *element_class = (GstElementClass *) klass;
   GstVideoDecoderClass *vdec_class = (GstVideoDecoderClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pngdec_src_pad_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_pngdec_sink_pad_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_pngdec_src_pad_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_pngdec_sink_pad_template);
   gst_element_class_set_static_metadata (element_class, "PNG image decoder",
-      "Codec/Decoder/Image",
-      "Decode a png video frame to a raw image",
+      "Codec/Decoder/Image", "Decode a png video frame to a raw image",
       "Wim Taymans <wim@fluendo.com>");
 
   vdec_class->start = gst_pngdec_start;
diff --git a/ext/libpng/gstpngenc.c b/ext/libpng/gstpngenc.c
index df763ed..3d3e116 100644
--- a/ext/libpng/gstpngenc.c
+++ b/ext/libpng/gstpngenc.c
@@ -128,10 +128,10 @@
           DEFAULT_COMPRESSION_LEVEL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template
-      (element_class, gst_static_pad_template_get (&pngenc_sink_template));
-  gst_element_class_add_pad_template
-      (element_class, gst_static_pad_template_get (&pngenc_src_template));
+  gst_element_class_add_static_pad_template
+      (element_class, &pngenc_sink_template);
+  gst_element_class_add_static_pad_template
+      (element_class, &pngenc_src_template);
   gst_element_class_set_static_metadata (element_class, "PNG image encoder",
       "Codec/Encoder/Image",
       "Encode a video frame to a .png image",
diff --git a/ext/pulse/Makefile.in b/ext/pulse/Makefile.in
index 72a73d1..2659661 100644
--- a/ext/pulse/Makefile.in
+++ b/ext/pulse/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/pulse/pulsesink.c b/ext/pulse/pulsesink.c
index c88fa96..521c4a6 100644
--- a/ext/pulse/pulsesink.c
+++ b/ext/pulse/pulsesink.c
@@ -1983,8 +1983,7 @@
   gst_element_class_set_static_metadata (gstelement_class,
       "PulseAudio Audio Sink",
       "Sink/Audio", "Plays audio to a PulseAudio server", "Lennart Poettering");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &pad_template);
 }
 
 static void
diff --git a/ext/pulse/pulsesrc.c b/ext/pulse/pulsesrc.c
index 6658654..7af74ee 100644
--- a/ext/pulse/pulsesrc.c
+++ b/ext/pulse/pulsesrc.c
@@ -222,8 +222,7 @@
       "PulseAudio Audio Source",
       "Source/Audio",
       "Captures audio from a PulseAudio server", "Lennart Poettering");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &pad_template);
 
   /**
    * GstPulseSrc:volume:
@@ -1596,6 +1595,9 @@
 
   /* Fix up the total ringbuffer size based on what we actually got */
   spec->segtotal = actual->maxlength / spec->segsize;
+  /* Don't buffer less than 2 segments as the ringbuffer can't deal with it */
+  if (spec->segtotal < 2)
+    spec->segtotal = 2;
 
   if (!pulsesrc->paused) {
     GST_DEBUG_OBJECT (pulsesrc, "uncorking because we are playing");
diff --git a/ext/raw1394/Makefile.in b/ext/raw1394/Makefile.in
index b27c3a9..40a90bd 100644
--- a/ext/raw1394/Makefile.in
+++ b/ext/raw1394/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -349,6 +350,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -455,6 +457,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -522,6 +527,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/raw1394/gstdv1394src.c b/ext/raw1394/gstdv1394src.c
index dbc7607..bee1af1 100644
--- a/ext/raw1394/gstdv1394src.c
+++ b/ext/raw1394/gstdv1394src.c
@@ -218,8 +218,7 @@
 
   gstpushsrc_class->create = gst_dv1394src_create;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Firewire (1394) DV video source", "Source/Video",
diff --git a/ext/raw1394/gsthdv1394src.c b/ext/raw1394/gsthdv1394src.c
index 0b07a37..04ceb4f 100644
--- a/ext/raw1394/gsthdv1394src.c
+++ b/ext/raw1394/gsthdv1394src.c
@@ -168,8 +168,7 @@
 
   gstpushsrc_class->create = gst_hdv1394src_create;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Firewire (1394) HDV video source", "Source/Video",
diff --git a/ext/shout2/Makefile.in b/ext/shout2/Makefile.in
index 69ec4d8..0dc751e 100644
--- a/ext/shout2/Makefile.in
+++ b/ext/shout2/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/shout2/gstshout2.c b/ext/shout2/gstshout2.c
index e154ba8..ca58e34 100644
--- a/ext/shout2/gstshout2.c
+++ b/ext/shout2/gstshout2.c
@@ -223,8 +223,7 @@
   gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_shout2send_event);
   gstbasesink_class->set_caps = GST_DEBUG_FUNCPTR (gst_shout2send_setcaps);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Icecast network sink",
@@ -241,7 +240,7 @@
 {
   gst_base_sink_set_sync (GST_BASE_SINK (shout2send), FALSE);
 
-  shout2send->timer = gst_poll_new_timer ();
+  shout2send->timer = gst_poll_new (TRUE);
 
   shout2send->ip = g_strdup (DEFAULT_IP);
   shout2send->port = DEFAULT_PORT;
diff --git a/ext/soup/Makefile.am b/ext/soup/Makefile.am
index c1bd735..63e5fec 100644
--- a/ext/soup/Makefile.am
+++ b/ext/soup/Makefile.am
@@ -4,8 +4,8 @@
 
 libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) $(SOUP_CFLAGS) \
-	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \
-	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26
+	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_48 \
+	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_48
 libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstsouphttpsrc_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/ext/soup/Makefile.in b/ext/soup/Makefile.in
index 8894def..36bf1d5 100644
--- a/ext/soup/Makefile.in
+++ b/ext/soup/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -572,8 +578,8 @@
 libgstsouphttpsrc_la_SOURCES = gstsouphttpsrc.c gstsouphttpclientsink.c gstsouputils.c gstsoup.c
 libgstsouphttpsrc_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) \
 	$(GST_CFLAGS) $(SOUP_CFLAGS) \
-	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_26 \
-	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_26
+	-DSOUP_VERSION_MIN_REQUIRED=SOUP_VERSION_2_48 \
+	-DSOUP_VERSION_MAX_ALLOWED=SOUP_DEPRECATED_IN_2_48
 
 libgstsouphttpsrc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgsttag-@GST_API_VERSION@ $(GST_BASE_LIBS) $(SOUP_LIBS)
 libgstsouphttpsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
diff --git a/ext/soup/gstsoup.c b/ext/soup/gstsoup.c
index 10bdba7..3be491d 100644
--- a/ext/soup/gstsoup.c
+++ b/ext/soup/gstsoup.c
@@ -34,6 +34,20 @@
   bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
 #endif
 
+  /* see https://bugzilla.gnome.org/show_bug.cgi?id=674885 */
+  g_type_ensure (G_TYPE_SOCKET);
+  g_type_ensure (G_TYPE_SOCKET_ADDRESS);
+  g_type_ensure (G_TYPE_SOCKET_SERVICE);
+  g_type_ensure (G_TYPE_SOCKET_FAMILY);
+  g_type_ensure (G_TYPE_SOCKET_CLIENT);
+  g_type_ensure (G_TYPE_RESOLVER);
+  g_type_ensure (G_TYPE_PROXY_RESOLVER);
+  g_type_ensure (G_TYPE_PROXY_ADDRESS);
+  g_type_ensure (G_TYPE_TLS_CERTIFICATE);
+  g_type_ensure (G_TYPE_TLS_CONNECTION);
+  g_type_ensure (G_TYPE_TLS_DATABASE);
+  g_type_ensure (G_TYPE_TLS_INTERACTION);
+
   gst_element_register (plugin, "souphttpsrc", GST_RANK_PRIMARY,
       GST_TYPE_SOUP_HTTP_SRC);
   gst_element_register (plugin, "souphttpclientsink", GST_RANK_NONE,
diff --git a/ext/soup/gstsouphttpclientsink.c b/ext/soup/gstsouphttpclientsink.c
index 645c298..c812488 100644
--- a/ext/soup/gstsouphttpclientsink.c
+++ b/ext/soup/gstsouphttpclientsink.c
@@ -192,8 +192,8 @@
           SOUP_TYPE_LOGGER_LOG_LEVEL, DEFAULT_SOUP_LOG_LEVEL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_soup_http_client_sink_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_soup_http_client_sink_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "HTTP client sink",
       "Generic", "Sends streams to HTTP server via PUT",
@@ -585,6 +585,7 @@
           soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
           souphttpsink->context, SOUP_SESSION_USER_AGENT,
           souphttpsink->user_agent, SOUP_SESSION_TIMEOUT, souphttpsink->timeout,
+          SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT,
           NULL);
     } else {
       souphttpsink->session =
diff --git a/ext/soup/gstsouphttpsrc.c b/ext/soup/gstsouphttpsrc.c
index 9c652d8..aef64d3 100644
--- a/ext/soup/gstsouphttpsrc.c
+++ b/ext/soup/gstsouphttpsrc.c
@@ -77,19 +77,11 @@
 #endif
 #include <gst/gstelement.h>
 #include <gst/gst-i18n-plugin.h>
+#include <gio/gio.h>
 #include <libsoup/soup.h>
 #include "gstsouphttpsrc.h"
 #include "gstsouputils.h"
 
-/* libsoup before 2.47.0 was stealing our main context from us,
- * so we can't reliable use it to clean up all pending resources
- * once we're done... let's just continue leaking on old versions.
- * https://bugzilla.gnome.org/show_bug.cgi?id=663944
- */
-#if defined(SOUP_MINOR_VERSION) && SOUP_MINOR_VERSION >= 47
-#define LIBSOUP_DOES_NOT_STEAL_OUR_CONTEXT 1
-#endif
-
 #include <gst/tag/tag.h>
 
 GST_DEBUG_CATEGORY_STATIC (souphttpsrc_debug);
@@ -142,6 +134,13 @@
 #define DEFAULT_RETRIES              3
 #define DEFAULT_SOUP_METHOD          NULL
 
+#define GROW_BLOCKSIZE_LIMIT 1
+#define GROW_BLOCKSIZE_COUNT 1
+#define GROW_BLOCKSIZE_FACTOR 2
+#define REDUCE_BLOCKSIZE_LIMIT 0.20
+#define REDUCE_BLOCKSIZE_COUNT 2
+#define REDUCE_BLOCKSIZE_FACTOR 0.5
+
 static void gst_soup_http_src_uri_handler_init (gpointer g_iface,
     gpointer iface_data);
 static void gst_soup_http_src_finalize (GObject * gobject);
@@ -173,31 +172,18 @@
 static gboolean gst_soup_http_src_build_message (GstSoupHTTPSrc * src,
     const gchar * method);
 static void gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src);
-static void gst_soup_http_src_queue_message (GstSoupHTTPSrc * src);
 static gboolean gst_soup_http_src_add_range_header (GstSoupHTTPSrc * src,
     guint64 offset, guint64 stop_offset);
-static void gst_soup_http_src_session_unpause_message (GstSoupHTTPSrc * src);
-static void gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src);
 static gboolean gst_soup_http_src_session_open (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_session_close (GstSoupHTTPSrc * src);
 static void gst_soup_http_src_parse_status (SoupMessage * msg,
     GstSoupHTTPSrc * src);
-static void gst_soup_http_src_chunk_free (gpointer gstbuf);
-static SoupBuffer *gst_soup_http_src_chunk_allocator (SoupMessage * msg,
-    gsize max_len, gpointer user_data);
-static void gst_soup_http_src_got_chunk_cb (SoupMessage * msg,
-    SoupBuffer * chunk, GstSoupHTTPSrc * src);
-static void gst_soup_http_src_response_cb (SoupSession * session,
-    SoupMessage * msg, GstSoupHTTPSrc * src);
-static void gst_soup_http_src_got_headers_cb (SoupMessage * msg,
-    GstSoupHTTPSrc * src);
-static void gst_soup_http_src_got_body_cb (SoupMessage * msg,
-    GstSoupHTTPSrc * src);
-static void gst_soup_http_src_finished_cb (SoupMessage * msg,
-    GstSoupHTTPSrc * src);
+static void gst_soup_http_src_got_headers (GstSoupHTTPSrc * src,
+    SoupMessage * msg);
 static void gst_soup_http_src_authenticate_cb (SoupSession * session,
     SoupMessage * msg, SoupAuth * auth, gboolean retrying,
     GstSoupHTTPSrc * src);
+static void gst_soup_http_src_destroy_input_stream (GstSoupHTTPSrc * src);
 
 #define gst_soup_http_src_parent_class parent_class
 G_DEFINE_TYPE_WITH_CODE (GstSoupHTTPSrc, gst_soup_http_src, GST_TYPE_PUSH_SRC,
@@ -421,8 +407,7 @@
           "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));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "HTTP client source",
       "Source/Network",
@@ -451,8 +436,6 @@
 static void
 gst_soup_http_src_reset (GstSoupHTTPSrc * src)
 {
-  src->interrupted = FALSE;
-  src->retry = FALSE;
   src->retry_count = 0;
   src->have_size = FALSE;
   src->got_headers = FALSE;
@@ -463,7 +446,12 @@
   src->content_size = 0;
   src->have_body = FALSE;
 
+  src->reduce_blocksize_count = 0;
+  src->increase_blocksize_count = 0;
+
   src->ret = GST_FLOW_OK;
+  g_cancellable_reset (src->cancellable);
+  gst_soup_http_src_destroy_input_stream (src);
 
   gst_caps_replace (&src->src_caps, NULL);
   g_free (src->iradio_name);
@@ -480,7 +468,9 @@
   const gchar *proxy;
 
   g_mutex_init (&src->mutex);
-  g_cond_init (&src->request_finished_cond);
+  g_cond_init (&src->have_headers_cond);
+  src->cancellable = g_cancellable_new ();
+  src->poll_context = g_main_context_new ();
   src->location = NULL;
   src->redirection_uri = NULL;
   src->automatic_redirect = TRUE;
@@ -491,8 +481,6 @@
   src->proxy_pw = NULL;
   src->cookies = NULL;
   src->iradio_mode = DEFAULT_IRADIO_MODE;
-  src->loop = NULL;
-  src->context = NULL;
   src->session = NULL;
   src->msg = NULL;
   src->timeout = DEFAULT_TIMEOUT;
@@ -503,6 +491,7 @@
   src->tls_interaction = DEFAULT_TLS_INTERACTION;
   src->max_retries = DEFAULT_RETRIES;
   src->method = DEFAULT_SOUP_METHOD;
+  src->minimum_blocksize = gst_base_src_get_blocksize (GST_BASE_SRC_CAST (src));
   proxy = g_getenv ("http_proxy");
   if (!gst_soup_http_src_set_proxy (src, proxy)) {
     GST_WARNING_OBJECT (src,
@@ -535,7 +524,9 @@
   GST_DEBUG_OBJECT (src, "finalize");
 
   g_mutex_clear (&src->mutex);
-  g_cond_clear (&src->request_finished_cond);
+  g_cond_clear (&src->have_headers_cond);
+  g_object_unref (src->cancellable);
+  g_main_context_unref (src->poll_context);
   g_free (src->location);
   g_free (src->redirection_uri);
   g_free (src->user_agent);
@@ -786,23 +777,25 @@
 }
 
 static void
-gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src)
+gst_soup_http_src_destroy_input_stream (GstSoupHTTPSrc * src)
 {
-  if (src->msg != NULL) {
-    GST_INFO_OBJECT (src, "Cancelling message");
-    src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_CANCELLED;
-    soup_session_cancel_message (src->session, src->msg, SOUP_STATUS_CANCELLED);
+  if (src->input_stream) {
+    if (src->poll_source) {
+      g_source_destroy (src->poll_source);
+      g_source_unref (src->poll_source);
+      src->poll_source = NULL;
+    }
+    g_input_stream_close (src->input_stream, src->cancellable, NULL);
+    g_object_unref (src->input_stream);
+    src->input_stream = NULL;
   }
-  src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE;
-  src->msg = NULL;
 }
 
 static void
-gst_soup_http_src_queue_message (GstSoupHTTPSrc * src)
+gst_soup_http_src_cancel_message (GstSoupHTTPSrc * src)
 {
-  soup_session_queue_message (src->session, src->msg,
-      (SoupSessionCallback) gst_soup_http_src_response_cb, src);
-  src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_QUEUED;
+  g_cancellable_cancel (src->cancellable);
+  g_cond_signal (&src->have_headers_cond);
 }
 
 static gboolean
@@ -907,19 +900,6 @@
   return gst_structure_foreach (src->extra_headers, _append_extra_headers, src);
 }
 
-
-static void
-gst_soup_http_src_session_unpause_message (GstSoupHTTPSrc * src)
-{
-  soup_session_unpause_message (src->session, src->msg);
-}
-
-static void
-gst_soup_http_src_session_pause_message (GstSoupHTTPSrc * src)
-{
-  soup_session_pause_message (src->session, src->msg);
-}
-
 static gboolean
 gst_soup_http_src_session_open (GstSoupHTTPSrc * src)
 {
@@ -934,32 +914,17 @@
     return FALSE;
   }
 
-  if (!src->context)
-    src->context = g_main_context_new ();
-
-  if (!src->loop)
-    src->loop = g_main_loop_new (src->context, TRUE);
-  if (!src->loop) {
-    GST_ELEMENT_ERROR (src, LIBRARY, INIT,
-        (NULL), ("Failed to start GMainLoop"));
-    g_main_context_unref (src->context);
-    return FALSE;
-  }
-
   if (!src->session) {
     GST_DEBUG_OBJECT (src, "Creating session");
     if (src->proxy == NULL) {
       src->session =
-          soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
-          src->context, SOUP_SESSION_USER_AGENT, src->user_agent,
-          SOUP_SESSION_TIMEOUT, src->timeout,
+          soup_session_new_with_options (SOUP_SESSION_USER_AGENT,
+          src->user_agent, SOUP_SESSION_TIMEOUT, src->timeout,
           SOUP_SESSION_SSL_STRICT, src->ssl_strict,
-          SOUP_SESSION_ADD_FEATURE_BY_TYPE, SOUP_TYPE_PROXY_RESOLVER_DEFAULT,
           SOUP_SESSION_TLS_INTERACTION, src->tls_interaction, NULL);
     } else {
       src->session =
-          soup_session_async_new_with_options (SOUP_SESSION_ASYNC_CONTEXT,
-          src->context, SOUP_SESSION_PROXY_URI, src->proxy,
+          soup_session_new_with_options (SOUP_SESSION_PROXY_URI, src->proxy,
           SOUP_SESSION_TIMEOUT, src->timeout,
           SOUP_SESSION_SSL_STRICT, src->ssl_strict,
           SOUP_SESSION_USER_AGENT, src->user_agent,
@@ -997,55 +962,22 @@
   return TRUE;
 }
 
-#ifdef LIBSOUP_DOES_NOT_STEAL_OUR_CONTEXT
-static gboolean
-dummy_idle_cb (gpointer data)
-{
-  return FALSE /* Idle source is removed */ ;
-}
-#endif
-
 static void
 gst_soup_http_src_session_close (GstSoupHTTPSrc * src)
 {
   GST_DEBUG_OBJECT (src, "Closing session");
 
-  if (src->loop)
-    g_main_loop_quit (src->loop);
-
   g_mutex_lock (&src->mutex);
-  if (src->session) {
-    soup_session_abort (src->session);  /* This unrefs the message. */
-    g_object_unref (src->session);
-    src->session = NULL;
+  if (src->msg) {
+    soup_session_cancel_message (src->session, src->msg, SOUP_STATUS_CANCELLED);
+    g_object_unref (src->msg);
     src->msg = NULL;
   }
-  if (src->loop) {
-#ifdef LIBSOUP_DOES_NOT_STEAL_OUR_CONTEXT
-    GSource *idle_source;
 
-    /* Iterating the main context to give GIO cancellables a chance
-     * to initiate cleanups. Wihout this, resources allocated by
-     * libsoup for the connection are not released and socket fd is
-     * leaked. */
-    idle_source = g_idle_source_new ();
-    /* Suppressing "idle souce without callback" warning */
-    g_source_set_callback (idle_source, dummy_idle_cb, NULL, NULL);
-    g_source_set_priority (idle_source, G_PRIORITY_LOW);
-    g_source_attach (idle_source, src->context);
-    /* Acquiring the context. Idle source guarantees that we'll not block. */
-    g_main_context_push_thread_default (src->context);
-    g_main_context_iteration (src->context, TRUE);
-    /* Ensuring that there's no unhandled pending events left. */
-    while (g_main_context_iteration (src->context, FALSE));
-    g_main_context_pop_thread_default (src->context);
-    g_source_unref (idle_source);
-#endif
-
-    g_main_loop_unref (src->loop);
-    g_main_context_unref (src->context);
-    src->loop = NULL;
-    src->context = NULL;
+  if (src->session) {
+    soup_session_abort (src->session);
+    g_object_unref (src->session);
+    src->session = NULL;
   }
   g_mutex_unlock (&src->mutex);
 }
@@ -1101,7 +1033,7 @@
 }
 
 static void
-gst_soup_http_src_got_headers_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
+gst_soup_http_src_got_headers (GstSoupHTTPSrc * src, SoupMessage * msg)
 {
   const char *value;
   GstTagList *tag_list;
@@ -1128,11 +1060,14 @@
     return;
   }
 
-  if (msg->status_code == SOUP_STATUS_UNAUTHORIZED)
+  if (msg->status_code == SOUP_STATUS_UNAUTHORIZED) {
+    /* force an error */
+    gst_soup_http_src_parse_status (msg, src);
     return;
+  }
 
-  src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING;
   src->got_headers = TRUE;
+  g_cond_broadcast (&src->have_headers_cond);
 
   http_headers = gst_structure_new_empty ("http-headers");
   gst_structure_set (http_headers, "uri", G_TYPE_STRING, src->location, NULL);
@@ -1224,7 +1159,7 @@
       if (param != NULL)
         rate = atol (param);
 
-      src->src_caps = gst_caps_new_simple ("audio/x-raw",
+      src->src_caps = gst_caps_new_simple ("audio/x-unaligned-raw",
           "format", G_TYPE_STRING, "S16BE",
           "layout", G_TYPE_STRING, "interleaved",
           "channels", G_TYPE_INT, channels, "rate", G_TYPE_INT, rate, NULL);
@@ -1288,10 +1223,13 @@
   if (src->ret == GST_FLOW_CUSTOM_ERROR &&
       src->read_position && msg->status_code != SOUP_STATUS_PARTIAL_CONTENT) {
     src->seekable = FALSE;
-    GST_ELEMENT_ERROR (src, RESOURCE, SEEK,
+    GST_ELEMENT_ERROR_WITH_DETAILS (src, RESOURCE, SEEK,
         (_("Server does not support seeking.")),
         ("Server does not accept Range HTTP header, URL: %s, Redirect to: %s",
-            src->location, GST_STR_NULL (src->redirection_uri)));
+            src->location, GST_STR_NULL (src->redirection_uri)),
+        ("http-status-code", G_TYPE_UINT, msg->status_code,
+            "http-redirection-uri", G_TYPE_STRING,
+            GST_STR_NULL (src->redirection_uri), NULL));
     src->ret = GST_FLOW_ERROR;
   }
 
@@ -1300,257 +1238,33 @@
    * GST_FLOW_ERROR from the create function instead of having
    * got_chunk_cb overwrite src->ret with FLOW_OK again. */
   if (src->ret == GST_FLOW_ERROR || src->ret == GST_FLOW_EOS) {
-    gst_soup_http_src_session_pause_message (src);
-
-    if (src->loop)
-      g_main_loop_quit (src->loop);
   }
-  g_cond_signal (&src->request_finished_cond);
 }
 
-/* Have body. Signal EOS. */
-static void
-gst_soup_http_src_got_body_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
+static GstBuffer *
+gst_soup_http_src_alloc_buffer (GstSoupHTTPSrc * src)
 {
-  if (G_UNLIKELY (msg != src->msg)) {
-    GST_DEBUG_OBJECT (src, "got body, but not for current message");
-    return;
-  }
-  if (G_UNLIKELY (src->session_io_status !=
-          GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) {
-    /* Probably a redirect. */
-    return;
-  }
-  GST_DEBUG_OBJECT (src, "got body");
-  src->ret = GST_FLOW_EOS;
-  src->have_body = TRUE;
-
-  /* no need to interrupt the message here, we do it on the
-   * finished_cb anyway if needed. And getting the body might mean
-   * that the connection was hang up before finished. This happens when
-   * the pipeline is stalled for too long (long pauses during playback).
-   * Best to let it continue from here and pause because it reached the
-   * final bytes based on content_size or received an out of range error */
-}
-
-/* Finished. Signal EOS. */
-static void
-gst_soup_http_src_finished_cb (SoupMessage * msg, GstSoupHTTPSrc * src)
-{
-  if (G_UNLIKELY (msg != src->msg)) {
-    GST_DEBUG_OBJECT (src, "finished, but not for current message");
-    return;
-  }
-  GST_INFO_OBJECT (src, "finished, io status: %d", src->session_io_status);
-  src->ret = GST_FLOW_EOS;
-  if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_CANCELLED) {
-    /* gst_soup_http_src_cancel_message() triggered this; probably a seek
-     * that occurred in the QUEUEING state; i.e. before the connection setup
-     * was complete. Do nothing */
-    GST_DEBUG_OBJECT (src, "cancelled");
-  } else if (src->session_io_status ==
-      GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING && src->read_position > 0 &&
-      (src->have_size && src->read_position < src->content_size) &&
-      (src->max_retries == -1 || src->retry_count < src->max_retries)) {
-    /* The server disconnected while streaming. Reconnect and seeking to the
-     * last location. */
-    src->retry = TRUE;
-    src->retry_count++;
-    src->ret = GST_FLOW_CUSTOM_ERROR;
-  } else if (G_UNLIKELY (src->session_io_status !=
-          GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) {
-    if (msg->method == SOUP_METHOD_HEAD) {
-      GST_DEBUG_OBJECT (src, "Ignoring error %d:%s during HEAD request",
-          msg->status_code, msg->reason_phrase);
-    } else {
-      gst_soup_http_src_parse_status (msg, src);
-    }
-  }
-  if (src->loop)
-    g_main_loop_quit (src->loop);
-  g_cond_signal (&src->request_finished_cond);
-}
-
-/* Buffer lifecycle management.
- *
- * gst_soup_http_src_create() runs the GMainLoop for this element, to let
- * Soup take control.
- * A GstBuffer is allocated in gst_soup_http_src_chunk_allocator() and
- * associated with a SoupBuffer.
- * Soup reads HTTP data in the GstBuffer's data buffer.
- * The gst_soup_http_src_got_chunk_cb() is then called with the SoupBuffer.
- * That sets gst_soup_http_src_create()'s return argument to the GstBuffer,
- * increments its refcount (to 2), pauses the flow of data from the HTTP
- * source to prevent gst_soup_http_src_got_chunk_cb() from being called
- * again and breaks out of the GMainLoop.
- * Because the SOUP_MESSAGE_OVERWRITE_CHUNKS flag is set, Soup frees the
- * SoupBuffer and calls gst_soup_http_src_chunk_free(), which decrements the
- * refcount (to 1).
- * gst_soup_http_src_create() returns the GstBuffer. It will be freed by a
- * downstream element.
- * If Soup fails to read HTTP data, it does not call
- * gst_soup_http_src_got_chunk_cb(), but still frees the SoupBuffer and
- * calls gst_soup_http_src_chunk_free(), which decrements the GstBuffer's
- * refcount to 0, freeing it.
- */
-
-typedef struct
-{
-  GstBuffer *buffer;
-  GstMapInfo map;
-} SoupGstChunk;
-
-static void
-gst_soup_http_src_chunk_free (gpointer user_data)
-{
-  SoupGstChunk *chunk = (SoupGstChunk *) user_data;
-
-  gst_buffer_unmap (chunk->buffer, &chunk->map);
-  gst_buffer_unref (chunk->buffer);
-  g_slice_free (SoupGstChunk, chunk);
-}
-
-static SoupBuffer *
-gst_soup_http_src_chunk_allocator (SoupMessage * msg, gsize max_len,
-    gpointer user_data)
-{
-  GstSoupHTTPSrc *src = (GstSoupHTTPSrc *) user_data;
   GstBaseSrc *basesrc = GST_BASE_SRC_CAST (src);
-  GstBuffer *gstbuf;
-  SoupBuffer *soupbuf;
-  gsize length;
   GstFlowReturn rc;
-  SoupGstChunk *chunk;
+  GstBuffer *gstbuf;
 
-  if (max_len)
-    length = MIN (basesrc->blocksize, max_len);
-  else
-    length = basesrc->blocksize;
-  GST_DEBUG_OBJECT (src, "alloc %" G_GSIZE_FORMAT " bytes <= %" G_GSIZE_FORMAT,
-      length, max_len);
-
-  rc = GST_BASE_SRC_CLASS (parent_class)->alloc (basesrc, -1, length, &gstbuf);
+  rc = GST_BASE_SRC_CLASS (parent_class)->alloc (basesrc, -1,
+      basesrc->blocksize, &gstbuf);
   if (G_UNLIKELY (rc != GST_FLOW_OK)) {
-    /* Failed to allocate buffer. Stall SoupSession and return error code
-     * to create(). */
-    src->ret = rc;
-    g_main_loop_quit (src->loop);
     return NULL;
   }
 
-  chunk = g_slice_new0 (SoupGstChunk);
-  chunk->buffer = gstbuf;
-  gst_buffer_map (gstbuf, &chunk->map, GST_MAP_READWRITE);
-
-  soupbuf = soup_buffer_new_with_owner (chunk->map.data, chunk->map.size,
-      chunk, gst_soup_http_src_chunk_free);
-
-  return soupbuf;
-}
-
-static void
-gst_soup_http_src_got_chunk_cb (SoupMessage * msg, SoupBuffer * chunk,
-    GstSoupHTTPSrc * src)
-{
-  GstBaseSrc *basesrc;
-  guint64 new_position;
-  SoupGstChunk *gchunk;
-
-  if (G_UNLIKELY (msg != src->msg)) {
-    GST_DEBUG_OBJECT (src, "got chunk, but not for current message");
-    return;
-  }
-  if (G_UNLIKELY (!src->outbuf)) {
-    GST_DEBUG_OBJECT (src, "got chunk but we're not expecting one");
-    src->ret = GST_FLOW_OK;
-    gst_soup_http_src_cancel_message (src);
-    g_main_loop_quit (src->loop);
-    return;
-  }
-
-  /* We got data, reset the retry counter */
-  src->retry_count = 0;
-
-  src->have_body = FALSE;
-  if (G_UNLIKELY (src->session_io_status !=
-          GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)) {
-    /* Probably a redirect. */
-    return;
-  }
-  basesrc = GST_BASE_SRC_CAST (src);
-  GST_DEBUG_OBJECT (src, "got chunk of %" G_GSIZE_FORMAT " bytes",
-      chunk->length);
-
-  /* Extract the GstBuffer from the SoupBuffer and set its fields. */
-  gchunk = (SoupGstChunk *) soup_buffer_get_owner (chunk);
-  *src->outbuf = gchunk->buffer;
-
-  gst_buffer_resize (*src->outbuf, 0, chunk->length);
-  GST_BUFFER_OFFSET (*src->outbuf) = basesrc->segment.position;
-
-  gst_buffer_ref (*src->outbuf);
-
-  new_position = src->read_position + chunk->length;
-  if (G_LIKELY (src->request_position == src->read_position))
-    src->request_position = new_position;
-  src->read_position = new_position;
-
-  if (src->have_size) {
-    if (new_position > src->content_size) {
-      GST_DEBUG_OBJECT (src, "Got position previous estimated content size "
-          "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position,
-          src->content_size);
-      src->content_size = new_position;
-      basesrc->segment.duration = src->content_size;
-      gst_element_post_message (GST_ELEMENT (src),
-          gst_message_new_duration_changed (GST_OBJECT (src)));
-    } else if (new_position == src->content_size) {
-      GST_DEBUG_OBJECT (src, "We're EOS now");
-    }
-  }
-
-  src->ret = GST_FLOW_OK;
-  g_main_loop_quit (src->loop);
-  gst_soup_http_src_session_pause_message (src);
-}
-
-static void
-gst_soup_http_src_response_cb (SoupSession * session, SoupMessage * msg,
-    GstSoupHTTPSrc * src)
-{
-  if (G_UNLIKELY (msg != src->msg)) {
-    GST_DEBUG_OBJECT (src, "got response %d: %s, but not for current message",
-        msg->status_code, msg->reason_phrase);
-    return;
-  }
-  if (G_UNLIKELY (src->session_io_status !=
-          GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING)
-      && SOUP_STATUS_IS_REDIRECTION (msg->status_code)) {
-    /* Ignore redirections. */
-    return;
-  }
-  GST_INFO_OBJECT (src, "got response %d: %s", msg->status_code,
-      msg->reason_phrase);
-  if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING &&
-      src->read_position > 0 && (src->have_size
-          && src->read_position < src->content_size) &&
-      (src->max_retries == -1 || src->retry_count < src->max_retries)) {
-    /* The server disconnected while streaming. Reconnect and seeking to the
-     * last location. */
-    src->retry = TRUE;
-    src->retry_count++;
-  } else {
-    gst_soup_http_src_parse_status (msg, src);
-  }
-  /* The session's SoupMessage object expires after this callback returns. */
-  src->msg = NULL;
-  g_main_loop_quit (src->loop);
+  return gstbuf;
 }
 
 #define SOUP_HTTP_SRC_ERROR(src,soup_msg,cat,code,error_message)     \
-  GST_ELEMENT_ERROR ((src), cat, code, ("%s", error_message),        \
-      ("%s (%d), URL: %s, Redirect to: %s", (soup_msg)->reason_phrase,                \
-          (soup_msg)->status_code, (src)->location, GST_STR_NULL ((src)->redirection_uri)));
+  do { \
+    GST_ELEMENT_ERROR_WITH_DETAILS ((src), cat, code, ("%s", error_message), \
+        ("%s (%d), URL: %s, Redirect to: %s", (soup_msg)->reason_phrase, \
+            (soup_msg)->status_code, (src)->location, GST_STR_NULL ((src)->redirection_uri)), \
+            ("http-status-code", G_TYPE_UINT, msg->status_code, \
+             "http-redirect-uri", G_TYPE_STRING, GST_STR_NULL ((src)->redirection_uri), NULL)); \
+  } while(0)
 
 static void
 gst_soup_http_src_parse_status (SoupMessage * msg, GstSoupHTTPSrc * src)
@@ -1580,8 +1294,6 @@
         break;
       case SOUP_STATUS_IO_ERROR:
         if (src->max_retries == -1 || src->retry_count < src->max_retries) {
-          src->retry = TRUE;
-          src->retry_count++;
           src->ret = GST_FLOW_CUSTOM_ERROR;
         } else {
           SOUP_HTTP_SRC_ERROR (src, msg, RESOURCE, READ,
@@ -1619,25 +1331,33 @@
      * error dialog according to libsoup documentation.
      */
     if (msg->status_code == SOUP_STATUS_NOT_FOUND) {
-      GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND,
+      GST_ELEMENT_ERROR_WITH_DETAILS (src, RESOURCE, NOT_FOUND,
           ("%s", msg->reason_phrase),
           ("%s (%d), URL: %s, Redirect to: %s", msg->reason_phrase,
               msg->status_code, src->location,
-              GST_STR_NULL (src->redirection_uri)));
+              GST_STR_NULL (src->redirection_uri)),
+          ("http-status-code", G_TYPE_UINT, msg->status_code,
+              "http-redirect-uri", G_TYPE_STRING,
+              GST_STR_NULL (src->redirection_uri), NULL));
     } else if (msg->status_code == SOUP_STATUS_UNAUTHORIZED
         || msg->status_code == SOUP_STATUS_PAYMENT_REQUIRED
         || msg->status_code == SOUP_STATUS_FORBIDDEN
         || msg->status_code == SOUP_STATUS_PROXY_AUTHENTICATION_REQUIRED) {
-      GST_ELEMENT_ERROR (src, RESOURCE, NOT_AUTHORIZED, ("%s",
+      GST_ELEMENT_ERROR_WITH_DETAILS (src, RESOURCE, NOT_AUTHORIZED, ("%s",
               msg->reason_phrase), ("%s (%d), URL: %s, Redirect to: %s",
               msg->reason_phrase, msg->status_code, src->location,
-              GST_STR_NULL (src->redirection_uri)));
+              GST_STR_NULL (src->redirection_uri)), ("http-status-code",
+              G_TYPE_UINT, msg->status_code, "http-redirect-uri", G_TYPE_STRING,
+              GST_STR_NULL (src->redirection_uri), NULL));
     } else {
-      GST_ELEMENT_ERROR (src, RESOURCE, OPEN_READ,
+      GST_ELEMENT_ERROR_WITH_DETAILS (src, RESOURCE, OPEN_READ,
           ("%s", msg->reason_phrase),
           ("%s (%d), URL: %s, Redirect to: %s", msg->reason_phrase,
               msg->status_code, src->location,
-              GST_STR_NULL (src->redirection_uri)));
+              GST_STR_NULL (src->redirection_uri)),
+          ("http-status-code", G_TYPE_UINT, msg->status_code,
+              "http-redirect-uri", G_TYPE_STRING,
+              GST_STR_NULL (src->redirection_uri), NULL));
     }
     src->ret = GST_FLOW_ERROR;
   }
@@ -1654,7 +1374,6 @@
         ("Error parsing URL."), ("URL: %s", src->location));
     return FALSE;
   }
-  src->session_io_status = GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE;
   if (!src->keep_alive) {
     soup_message_headers_append (src->msg->request_headers, "Connection",
         "close");
@@ -1671,20 +1390,9 @@
           *cookie);
     }
   }
-  src->retry = FALSE;
 
-  g_signal_connect (src->msg, "got_headers",
-      G_CALLBACK (gst_soup_http_src_got_headers_cb), src);
-  g_signal_connect (src->msg, "got_body",
-      G_CALLBACK (gst_soup_http_src_got_body_cb), src);
-  g_signal_connect (src->msg, "finished",
-      G_CALLBACK (gst_soup_http_src_finished_cb), src);
-  g_signal_connect (src->msg, "got_chunk",
-      G_CALLBACK (gst_soup_http_src_got_chunk_cb), src);
   soup_message_set_flags (src->msg, SOUP_MESSAGE_OVERWRITE_CHUNKS |
       (src->automatic_redirect ? 0 : SOUP_MESSAGE_NO_REDIRECT));
-  soup_message_set_chunk_allocator (src->msg,
-      gst_soup_http_src_chunk_allocator, src, NULL);
   gst_soup_http_src_add_range_header (src, src->request_position,
       src->stop_position);
 
@@ -1693,146 +1401,357 @@
   return TRUE;
 }
 
-static GstFlowReturn
-gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method,
-    GstBuffer ** outbuf)
+static void
+gst_soup_http_src_check_input_stream_interfaces (GstSoupHTTPSrc * src)
 {
-  /* If we're not OK, just go out of here */
+  if (!src->input_stream)
+    return;
+
+  src->has_pollable_interface = G_IS_POLLABLE_INPUT_STREAM (src->input_stream)
+      && g_pollable_input_stream_can_poll ((GPollableInputStream *)
+      src->input_stream);
+}
+
+static GstFlowReturn
+gst_soup_http_src_send_message (GstSoupHTTPSrc * src)
+{
+  g_return_val_if_fail (src->msg != NULL, GST_FLOW_ERROR);
+
+  g_assert (src->input_stream == NULL);
+  g_assert (src->poll_source == NULL);
+
+  /* FIXME We are ignoring the GError here, might be useful to debug */
+  src->input_stream =
+      soup_session_send (src->session, src->msg, src->cancellable, NULL);
+
+  if (g_cancellable_is_cancelled (src->cancellable))
+    return GST_FLOW_FLUSHING;
+
+  gst_soup_http_src_got_headers (src, src->msg);
   if (src->ret != GST_FLOW_OK) {
-    GST_DEBUG_OBJECT (src, "Previous flow return not OK: %s",
-        gst_flow_get_name (src->ret));
     return src->ret;
   }
 
+  if (!src->input_stream) {
+    GST_DEBUG_OBJECT (src, "Didn't get an input stream");
+    return GST_FLOW_ERROR;
+  }
+
+  if (SOUP_STATUS_IS_SUCCESSFUL (src->msg->status_code)) {
+    GST_DEBUG_OBJECT (src, "Successfully got a reply");
+  } else {
+    /* FIXME - be more helpful to people debugging */
+    return GST_FLOW_ERROR;
+  }
+
+  gst_soup_http_src_check_input_stream_interfaces (src);
+
+  return GST_FLOW_OK;
+}
+
+static GstFlowReturn
+gst_soup_http_src_do_request (GstSoupHTTPSrc * src, const gchar * method)
+{
+  if (src->max_retries != -1 && src->retry_count > src->max_retries) {
+    GST_DEBUG_OBJECT (src, "Max retries reached");
+    src->ret = GST_FLOW_ERROR;
+    return src->ret;
+  }
+
+  src->retry_count++;
+  /* EOS immediately if we have an empty segment */
+  if (src->request_position == src->stop_position)
+    return GST_FLOW_EOS;
+
   GST_LOG_OBJECT (src, "Running request for method: %s", method);
+
+  /* Update the position if we are retrying */
   if (src->msg && (src->request_position != src->read_position)) {
-    if (src->session_io_status == GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) {
-      /* EOS immediately if we have an empty segment */
-      if (src->request_position == src->stop_position)
-        return GST_FLOW_EOS;
-
-      gst_soup_http_src_add_range_header (src, src->request_position,
-          src->stop_position);
-    } else {
-      GST_DEBUG_OBJECT (src, "Seek from position %" G_GUINT64_FORMAT
-          " to %" G_GUINT64_FORMAT ": requeueing connection request",
-          src->read_position, src->request_position);
-      gst_soup_http_src_cancel_message (src);
-    }
+    gst_soup_http_src_add_range_header (src, src->request_position,
+        src->stop_position);
   }
+
   if (!src->msg) {
-    /* EOS immediately if we have an empty segment */
-    if (src->request_position == src->stop_position)
-      return GST_FLOW_EOS;
-
-    if (!gst_soup_http_src_build_message (src, method))
+    if (!gst_soup_http_src_build_message (src, method)) {
       return GST_FLOW_ERROR;
+    }
   }
 
-  src->ret = GST_FLOW_CUSTOM_ERROR;
-  src->outbuf = outbuf;
-  do {
-    if (src->interrupted) {
-      GST_INFO_OBJECT (src, "interrupted");
-      src->ret = GST_FLOW_FLUSHING;
-      break;
-    }
-    if (src->retry) {
-      GST_INFO_OBJECT (src, "Reconnecting");
-
-      /* EOS immediately if we have an empty segment */
-      if (src->request_position == src->stop_position)
-        return GST_FLOW_EOS;
-
-      if (!gst_soup_http_src_build_message (src, method))
-        return GST_FLOW_ERROR;
-      src->retry = FALSE;
-      continue;
-    }
-    if (!src->msg) {
-      GST_DEBUG_OBJECT (src, "EOS reached");
-      break;
-    }
-
-    switch (src->session_io_status) {
-      case GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE:
-        GST_INFO_OBJECT (src, "Queueing connection request");
-        gst_soup_http_src_queue_message (src);
-        break;
-      case GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_QUEUED:
-        break;
-      case GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING:
-        gst_soup_http_src_session_unpause_message (src);
-        break;
-      case GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_CANCELLED:
-        /* Impossible. */
-        break;
-    }
-
-    if (src->ret == GST_FLOW_CUSTOM_ERROR) {
-      g_main_context_push_thread_default (src->context);
-      g_main_loop_run (src->loop);
-      g_main_context_pop_thread_default (src->context);
-    }
-
-  } while (src->ret == GST_FLOW_CUSTOM_ERROR);
-
-  /* Let the request finish if we had a stop position and are there */
-  if (src->ret == GST_FLOW_OK && src->stop_position != -1
-      && src->read_position >= src->stop_position) {
-    src->outbuf = NULL;
-    gst_soup_http_src_session_unpause_message (src);
-    g_main_context_push_thread_default (src->context);
-    g_main_loop_run (src->loop);
-    g_main_context_pop_thread_default (src->context);
-
-    g_cond_signal (&src->request_finished_cond);
-    /* Return OK unconditionally here, src->ret will
-     * be most likely be EOS now but we want to
-     * consume the buffer we got above */
-    return GST_FLOW_OK;
+  if (g_cancellable_is_cancelled (src->cancellable)) {
+    GST_INFO_OBJECT (src, "interrupted");
+    src->ret = GST_FLOW_FLUSHING;
+    goto done;
   }
+  src->ret = gst_soup_http_src_send_message (src);
 
-  if (src->ret == GST_FLOW_CUSTOM_ERROR)
-    src->ret = GST_FLOW_EOS;
-  g_cond_signal (&src->request_finished_cond);
-
-  /* basesrc assumes that we don't return a buffer if
-   * something else than OK is returned. It will just
-   * leak any buffer we might accidentially provide
-   * here.
-   *
-   * This can potentially happen during flushing.
-   */
-  if (src->ret != GST_FLOW_OK && outbuf && *outbuf) {
-    gst_buffer_unref (*outbuf);
-    *outbuf = NULL;
-  }
-
+done:
   return src->ret;
 }
 
+/*
+ * Check if the bytes_read is above a certain threshold of the blocksize, if
+ * that happens a few times in a row, increase the blocksize; Do the same in
+ * the opposite direction to reduce the blocksize.
+ */
+static void
+gst_soup_http_src_check_update_blocksize (GstSoupHTTPSrc * src,
+    gint64 bytes_read)
+{
+  guint blocksize = gst_base_src_get_blocksize (GST_BASE_SRC_CAST (src));
+
+  GST_LOG_OBJECT (src, "Checking to update blocksize. Read:%" G_GINT64_FORMAT
+      " blocksize:%u", bytes_read, blocksize);
+
+  if (bytes_read >= blocksize * GROW_BLOCKSIZE_LIMIT) {
+    src->reduce_blocksize_count = 0;
+    src->increase_blocksize_count++;
+
+    if (src->increase_blocksize_count >= GROW_BLOCKSIZE_COUNT) {
+      blocksize *= GROW_BLOCKSIZE_FACTOR;
+      GST_DEBUG_OBJECT (src, "Increased blocksize to %u", blocksize);
+      gst_base_src_set_blocksize (GST_BASE_SRC_CAST (src), blocksize);
+      src->increase_blocksize_count = 0;
+    }
+  } else if (bytes_read < blocksize * REDUCE_BLOCKSIZE_LIMIT) {
+    src->reduce_blocksize_count++;
+    src->increase_blocksize_count = 0;
+
+    if (src->reduce_blocksize_count >= REDUCE_BLOCKSIZE_COUNT) {
+      blocksize *= REDUCE_BLOCKSIZE_FACTOR;
+      blocksize = MAX (blocksize, src->minimum_blocksize);
+      GST_DEBUG_OBJECT (src, "Decreased blocksize to %u", blocksize);
+      gst_base_src_set_blocksize (GST_BASE_SRC_CAST (src), blocksize);
+      src->reduce_blocksize_count = 0;
+    }
+  } else {
+    src->reduce_blocksize_count = src->increase_blocksize_count = 0;
+  }
+}
+
+static void
+gst_soup_http_src_update_position (GstSoupHTTPSrc * src, gint64 bytes_read)
+{
+  GstBaseSrc *basesrc = GST_BASE_SRC_CAST (src);
+  guint64 new_position;
+
+  new_position = src->read_position + bytes_read;
+  if (G_LIKELY (src->request_position == src->read_position))
+    src->request_position = new_position;
+  src->read_position = new_position;
+
+  if (src->have_size) {
+    if (new_position > src->content_size) {
+      GST_DEBUG_OBJECT (src, "Got position previous estimated content size "
+          "(%" G_GINT64_FORMAT " > %" G_GINT64_FORMAT ")", new_position,
+          src->content_size);
+      src->content_size = new_position;
+      basesrc->segment.duration = src->content_size;
+      gst_element_post_message (GST_ELEMENT (src),
+          gst_message_new_duration_changed (GST_OBJECT (src)));
+    } else if (new_position == src->content_size) {
+      GST_DEBUG_OBJECT (src, "We're EOS now");
+    }
+  }
+}
+
+static gboolean
+_gst_soup_http_src_data_available_callback (GObject * pollable_stream,
+    gpointer udata)
+{
+  GstSoupHTTPSrc *src = udata;
+
+  src->have_data = TRUE;
+  return TRUE;
+}
+
+/* Need to wait on a gsource to know when data is available */
+static gboolean
+gst_soup_http_src_wait_for_data (GstSoupHTTPSrc * src)
+{
+  src->have_data = FALSE;
+
+  if (!src->poll_source) {
+    src->poll_source =
+        g_pollable_input_stream_create_source ((GPollableInputStream *)
+        src->input_stream, src->cancellable);
+    g_source_set_callback (src->poll_source,
+        (GSourceFunc) _gst_soup_http_src_data_available_callback, src, NULL);
+    g_source_attach (src->poll_source, src->poll_context);
+  }
+
+  while (!src->have_data && !g_cancellable_is_cancelled (src->cancellable)) {
+    g_main_context_iteration (src->poll_context, TRUE);
+  }
+
+  return src->have_data;
+}
+
+static GstFlowReturn
+gst_soup_http_src_read_buffer (GstSoupHTTPSrc * src, GstBuffer ** outbuf)
+{
+  gssize read_bytes;
+  GstMapInfo mapinfo;
+  GstBaseSrc *bsrc;
+  GstFlowReturn ret;
+  GError *err = NULL;
+
+  bsrc = GST_BASE_SRC_CAST (src);
+
+  *outbuf = gst_soup_http_src_alloc_buffer (src);
+  if (!*outbuf) {
+    GST_WARNING_OBJECT (src, "Failed to allocate buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  if (!gst_buffer_map (*outbuf, &mapinfo, GST_MAP_WRITE)) {
+    GST_WARNING_OBJECT (src, "Failed to map buffer");
+    return GST_FLOW_ERROR;
+  }
+
+  if (src->has_pollable_interface) {
+    while (1) {
+      read_bytes =
+          g_pollable_input_stream_read_nonblocking ((GPollableInputStream *)
+          src->input_stream, mapinfo.data, mapinfo.size, src->cancellable,
+          &err);
+      if (read_bytes == -1) {
+        if (err && g_error_matches (err, G_IO_ERROR, G_IO_ERROR_WOULD_BLOCK)) {
+          g_error_free (err);
+          err = NULL;
+
+          /* no data yet, wait */
+          if (gst_soup_http_src_wait_for_data (src))
+            /* retry */
+            continue;
+        }
+      }
+      break;
+    }
+  } else {
+    read_bytes =
+        g_input_stream_read (src->input_stream, mapinfo.data, mapinfo.size,
+        src->cancellable, NULL);
+  }
+
+  if (err)
+    g_error_free (err);
+
+  GST_DEBUG_OBJECT (src, "Read %" G_GSSIZE_FORMAT " bytes from http input",
+      read_bytes);
+
+  g_mutex_lock (&src->mutex);
+  if (g_cancellable_is_cancelled (src->cancellable)) {
+    gst_buffer_unmap (*outbuf, &mapinfo);
+    gst_buffer_unref (*outbuf);
+    g_mutex_unlock (&src->mutex);
+    return GST_FLOW_FLUSHING;
+  }
+
+  gst_buffer_unmap (*outbuf, &mapinfo);
+  if (read_bytes > 0) {
+    gst_buffer_set_size (*outbuf, read_bytes);
+    GST_BUFFER_OFFSET (*outbuf) = bsrc->segment.position;
+    ret = GST_FLOW_OK;
+    gst_soup_http_src_update_position (src, read_bytes);
+
+    /* Got some data, reset retry counter */
+    src->retry_count = 0;
+
+    gst_soup_http_src_check_update_blocksize (src, read_bytes);
+
+    /* If we're at the end of a range request, read again to let libsoup
+     * finalize the request. This allows to reuse the connection again later,
+     * otherwise we would have to cancel the message and close the connection
+     */
+    if (bsrc->segment.stop != -1
+        && bsrc->segment.position + read_bytes >= bsrc->segment.stop) {
+      guint8 tmp[128];
+
+      g_object_unref (src->msg);
+      src->msg = NULL;
+      src->have_body = TRUE;
+
+      /* This should return immediately as we're at the end of the range */
+      read_bytes =
+          g_input_stream_read (src->input_stream, tmp, sizeof (tmp),
+          src->cancellable, NULL);
+      if (read_bytes > 0)
+        GST_ERROR_OBJECT (src,
+            "Read %" G_GSIZE_FORMAT " bytes after end of range", read_bytes);
+    }
+  } else {
+    gst_buffer_unref (*outbuf);
+    if (read_bytes < 0) {
+      /* Maybe the server disconnected, retry */
+      ret = GST_FLOW_CUSTOM_ERROR;
+    } else {
+      g_object_unref (src->msg);
+      src->msg = NULL;
+      ret = GST_FLOW_EOS;
+      src->have_body = TRUE;
+    }
+  }
+  g_mutex_unlock (&src->mutex);
+
+  return ret;
+}
+
 static GstFlowReturn
 gst_soup_http_src_create (GstPushSrc * psrc, GstBuffer ** outbuf)
 {
   GstSoupHTTPSrc *src;
-  GstFlowReturn ret;
-  GstEvent *http_headers_event;
+  GstFlowReturn ret = GST_FLOW_OK;
+  GstEvent *http_headers_event = NULL;
 
   src = GST_SOUP_HTTP_SRC (psrc);
 
+retry:
   g_mutex_lock (&src->mutex);
-  *outbuf = NULL;
-  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;
+
+  /* Check for pending position change */
+  if (src->request_position != src->read_position) {
+    gst_soup_http_src_destroy_input_stream (src);
+  }
+
+  if (g_cancellable_is_cancelled (src->cancellable)) {
+    ret = GST_FLOW_FLUSHING;
+    g_mutex_unlock (&src->mutex);
+    goto done;
+  }
+
+  /* If we have no open connection to the server, start one */
+  if (!src->input_stream) {
+    *outbuf = NULL;
+    ret =
+        gst_soup_http_src_do_request (src,
+        src->method ? src->method : SOUP_METHOD_GET);
+    http_headers_event = src->http_headers_event;
+    src->http_headers_event = NULL;
+  }
   g_mutex_unlock (&src->mutex);
 
-  if (http_headers_event)
-    gst_pad_push_event (GST_BASE_SRC_PAD (src), http_headers_event);
+  if (ret == GST_FLOW_OK || ret == GST_FLOW_CUSTOM_ERROR) {
+    if (http_headers_event) {
+      gst_pad_push_event (GST_BASE_SRC_PAD (src), http_headers_event);
+      http_headers_event = NULL;
+    }
+  }
 
+  if (ret == GST_FLOW_OK)
+    ret = gst_soup_http_src_read_buffer (src, outbuf);
+
+done:
+  GST_DEBUG_OBJECT (src, "Returning %d %s", ret, gst_flow_get_name (ret));
+  if (ret != GST_FLOW_OK) {
+    if (http_headers_event)
+      gst_event_unref (http_headers_event);
+
+    g_mutex_lock (&src->mutex);
+    gst_soup_http_src_destroy_input_stream (src);
+    g_mutex_unlock (&src->mutex);
+    if (ret == GST_FLOW_CUSTOM_ERROR)
+      goto retry;
+  }
   return ret;
 }
 
@@ -1892,11 +1811,8 @@
   src = GST_SOUP_HTTP_SRC (bsrc);
   GST_DEBUG_OBJECT (src, "unlock()");
 
-  src->interrupted = TRUE;
   src->ret = GST_FLOW_FLUSHING;
-  if (src->loop)
-    g_main_loop_quit (src->loop);
-  g_cond_signal (&src->request_finished_cond);
+  gst_soup_http_src_cancel_message (src);
   return TRUE;
 }
 
@@ -1909,8 +1825,8 @@
   src = GST_SOUP_HTTP_SRC (bsrc);
   GST_DEBUG_OBJECT (src, "unlock_stop()");
 
-  src->interrupted = FALSE;
   src->ret = GST_FLOW_OK;
+  g_cancellable_reset (src->cancellable);
   return TRUE;
 }
 
@@ -1942,14 +1858,14 @@
    */
   if (!src->got_headers && GST_STATE (src) >= GST_STATE_PAUSED) {
     g_mutex_lock (&src->mutex);
-    while (!src->got_headers && !src->interrupted && ret == GST_FLOW_OK) {
-      if ((src->msg && src->msg->method != SOUP_METHOD_HEAD) &&
-          src->session_io_status != GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_IDLE) {
+    while (!src->got_headers && !g_cancellable_is_cancelled (src->cancellable)
+        && ret == GST_FLOW_OK) {
+      if ((src->msg && src->msg->method != SOUP_METHOD_HEAD)) {
         /* wait for the current request to finish */
-        g_cond_wait (&src->request_finished_cond, &src->mutex);
+        g_cond_wait (&src->have_headers_cond, &src->mutex);
       } else {
         if (gst_soup_http_src_session_open (src)) {
-          ret = gst_soup_http_src_do_request (src, SOUP_METHOD_HEAD, NULL);
+          ret = gst_soup_http_src_do_request (src, SOUP_METHOD_HEAD);
         }
       }
     }
@@ -1957,8 +1873,6 @@
       /* A HEAD request shouldn't lead to EOS */
       src->ret = GST_FLOW_OK;
     }
-    /* resets status to idle */
-    gst_soup_http_src_cancel_message (src);
     g_mutex_unlock (&src->mutex);
   }
 }
diff --git a/ext/soup/gstsouphttpsrc.h b/ext/soup/gstsouphttpsrc.h
index 7172581..2629cb1 100644
--- a/ext/soup/gstsouphttpsrc.h
+++ b/ext/soup/gstsouphttpsrc.h
@@ -59,16 +59,9 @@
   gchar *proxy_id;             /* Authentication user id for proxy URI. */
   gchar *proxy_pw;             /* Authentication user password for proxy URI. */
   gchar **cookies;             /* HTTP request cookies. */
-  GMainContext *context;       /* I/O context. */
-  GMainLoop *loop;             /* Event loop. */
   SoupSession *session;        /* Async context. */
-  GstSoupHTTPSrcSessionIOStatus session_io_status;
-                               /* Async I/O status. */
   SoupMessage *msg;            /* Request message. */
   GstFlowReturn ret;           /* Return code from callback. */
-  GstBuffer **outbuf;          /* Return buffer allocated by callback. */
-  gboolean interrupted;        /* Signal unlock(). */
-  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 */
@@ -94,6 +87,17 @@
   GTlsDatabase *tls_database;
   GTlsInteraction *tls_interaction;
 
+  GCancellable *cancellable;
+  GInputStream *input_stream;
+  gboolean has_pollable_interface;
+  gboolean have_data;
+  GMainContext *poll_context;
+  GSource *poll_source;
+
+  gint reduce_blocksize_count;
+  gint increase_blocksize_count;
+  guint minimum_blocksize;
+
   /* Shoutcast/icecast metadata extraction handling. */
   gboolean iradio_mode;
   GstCaps *src_caps;
@@ -110,7 +114,7 @@
   guint timeout;
 
   GMutex mutex;
-  GCond request_finished_cond;
+  GCond have_headers_cond;
 
   GstEvent *http_headers_event;
 };
diff --git a/ext/speex/Makefile.in b/ext/speex/Makefile.in
index 19ed9ff..1bb3c27 100644
--- a/ext/speex/Makefile.in
+++ b/ext/speex/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/speex/gstspeexdec.c b/ext/speex/gstspeexdec.c
index daceaee..cc123ce 100644
--- a/ext/speex/gstspeexdec.c
+++ b/ext/speex/gstspeexdec.c
@@ -114,10 +114,10 @@
       g_param_spec_boolean ("enh", "Enh", "Enable perceptual enhancement",
           DEFAULT_ENH, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&speex_dec_src_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&speex_dec_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &speex_dec_src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &speex_dec_sink_factory);
   gst_element_class_set_static_metadata (gstelement_class,
       "Speex audio decoder", "Codec/Decoder/Audio",
       "decode speex streams to audio", "Wim Taymans <wim@fluendo.com>");
diff --git a/ext/speex/gstspeexenc.c b/ext/speex/gstspeexenc.c
index 31712b6..4266af6 100644
--- a/ext/speex/gstspeexenc.c
+++ b/ext/speex/gstspeexenc.c
@@ -211,10 +211,8 @@
           "The last status message", NULL,
           G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
   gst_element_class_set_static_metadata (gstelement_class,
       "Speex audio encoder", "Codec/Encoder/Audio",
       "Encodes audio in Speex format", "Wim Taymans <wim@fluendo.com>");
diff --git a/ext/taglib/Makefile.in b/ext/taglib/Makefile.in
index 1aef827..459d8bd 100644
--- a/ext/taglib/Makefile.in
+++ b/ext/taglib/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -360,6 +361,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -466,6 +468,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -533,6 +538,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/taglib/gstapev2mux.cc b/ext/taglib/gstapev2mux.cc
index e69de7e..9659daf 100644
--- a/ext/taglib/gstapev2mux.cc
+++ b/ext/taglib/gstapev2mux.cc
@@ -86,10 +86,8 @@
   GST_TAG_MUX_CLASS (klass)->render_end_tag =
       GST_DEBUG_FUNCPTR (gst_apev2_mux_render_end_tag);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "TagLib-based APEv2 Muxer", "Formatter/Metadata",
diff --git a/ext/taglib/gstid3v2mux.cc b/ext/taglib/gstid3v2mux.cc
index 8651e77..3ec9116 100644
--- a/ext/taglib/gstid3v2mux.cc
+++ b/ext/taglib/gstid3v2mux.cc
@@ -94,10 +94,8 @@
   GST_TAG_MUX_CLASS (klass)->render_end_tag =
       GST_DEBUG_FUNCPTR (gst_id3v2_mux_render_end_tag);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "TagLib-based ID3v2 Muxer", "Formatter/Metadata",
diff --git a/ext/vpx/Makefile.in b/ext/vpx/Makefile.in
index 5e78178..458c6ef 100644
--- a/ext/vpx/Makefile.in
+++ b/ext/vpx/Makefile.in
@@ -100,6 +100,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -348,6 +349,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -454,6 +456,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -521,6 +526,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/vpx/gstvp8dec.c b/ext/vpx/gstvp8dec.c
index 5b8eade..6a9625c 100644
--- a/ext/vpx/gstvp8dec.c
+++ b/ext/vpx/gstvp8dec.c
@@ -87,11 +87,10 @@
   element_class = GST_ELEMENT_CLASS (klass);
   vpx_class = GST_VPX_DEC_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp8_dec_sink_template));
-
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp8_dec_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp8_dec_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp8_dec_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "On2 VP8 Decoder",
diff --git a/ext/vpx/gstvp8enc.c b/ext/vpx/gstvp8enc.c
index d5f0682..819b388 100644
--- a/ext/vpx/gstvp8enc.c
+++ b/ext/vpx/gstvp8enc.c
@@ -141,10 +141,10 @@
   vpx_encoder_class = GST_VPX_ENC_CLASS (klass);
 
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp8_enc_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp8_enc_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp8_enc_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp8_enc_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "On2 VP8 Encoder",
diff --git a/ext/vpx/gstvp9dec.c b/ext/vpx/gstvp9dec.c
index d08a2f7..cbd750b 100644
--- a/ext/vpx/gstvp9dec.c
+++ b/ext/vpx/gstvp9dec.c
@@ -89,10 +89,10 @@
   element_class = GST_ELEMENT_CLASS (klass);
   vpx_class = GST_VPX_DEC_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp9_dec_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp9_dec_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp9_dec_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp9_dec_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "On2 VP9 Decoder",
diff --git a/ext/vpx/gstvp9enc.c b/ext/vpx/gstvp9enc.c
index b8256ae..0d8f9a2 100644
--- a/ext/vpx/gstvp9enc.c
+++ b/ext/vpx/gstvp9enc.c
@@ -111,10 +111,10 @@
   element_class = GST_ELEMENT_CLASS (klass);
   vpx_encoder_class = GST_VPX_ENC_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp9_enc_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_vp9_enc_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp9_enc_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_vp9_enc_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "On2 VP9 Encoder",
@@ -235,9 +235,17 @@
 }
 
 static void
+gst_vp9_enc_user_data_free (vpx_image_t * image)
+{
+  g_slice_free (vpx_image_t, image);
+}
+
+static void
 gst_vp9_enc_set_frame_user_data (GstVPXEnc * enc, GstVideoCodecFrame * frame,
     vpx_image_t * image)
 {
+  gst_video_codec_frame_set_user_data (frame, image,
+      (GDestroyNotify) gst_vp9_enc_user_data_free);
   return;
 }
 
diff --git a/ext/wavpack/Makefile.in b/ext/wavpack/Makefile.in
index 3ad6a40..19e0f1d 100644
--- a/ext/wavpack/Makefile.in
+++ b/ext/wavpack/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -346,6 +347,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -452,6 +454,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -519,6 +524,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/ext/wavpack/gstwavpackdec.c b/ext/wavpack/gstwavpackdec.c
index dd449a2..7cce543 100644
--- a/ext/wavpack/gstwavpackdec.c
+++ b/ext/wavpack/gstwavpackdec.c
@@ -105,10 +105,8 @@
   GstElementClass *element_class = (GstElementClass *) (klass);
   GstAudioDecoderClass *base_class = (GstAudioDecoderClass *) (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "Wavpack audio decoder",
       "Codec/Decoder/Audio",
       "Decodes Wavpack audio data",
diff --git a/ext/wavpack/gstwavpackenc.c b/ext/wavpack/gstwavpackenc.c
index 95a8e8f..5d6205c 100644
--- a/ext/wavpack/gstwavpackenc.c
+++ b/ext/wavpack/gstwavpackenc.c
@@ -209,12 +209,9 @@
   GstAudioEncoderClass *base_class = (GstAudioEncoderClass *) (klass);
 
   /* add pad templates */
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&wvcsrc_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &wvcsrc_factory);
 
   /* set element details */
   gst_element_class_set_static_metadata (element_class, "Wavpack audio encoder",
diff --git a/gst-plugins-good.doap b/gst-plugins-good.doap
index c8309c1..a5fb63c 100644
--- a/gst-plugins-good.doap
+++ b/gst-plugins-good.doap
@@ -34,31 +34,31 @@
 
  <release>
   <Version>
-   <revision>1.8.3</revision>
-   <branch>1.8</branch>
+   <revision>1.9.90</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-08-19</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.3.tar.xz" />
+   <created>2016-09-30</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.9.90.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.8.2</revision>
-   <branch>1.8</branch>
+   <revision>1.9.2</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-06-09</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.2.tar.xz" />
+   <created>2016-09-01</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.9.2.tar.xz" />
   </Version>
  </release>
 
  <release>
   <Version>
-   <revision>1.8.1</revision>
-   <branch>1.8</branch>
+   <revision>1.9.1</revision>
+   <branch>master</branch>
    <name></name>
-   <created>2016-04-20</created>
-   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.8.1.tar.xz" />
+   <created>2016-06-06</created>
+   <file-release rdf:resource="http://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-1.9.1.tar.xz" />
   </Version>
  </release>
 
diff --git a/gst-plugins-good.spec b/gst-plugins-good.spec
index ce35722..cf7f597 100644
--- a/gst-plugins-good.spec
+++ b/gst-plugins-good.spec
@@ -4,7 +4,7 @@
 %define gst_minver   0.11.0
 
 Name: 		%{gstreamer}-plugins-good
-Version: 	1.8.3
+Version: 	1.9.90
 Release: 	1.gst
 Summary: 	GStreamer plug-ins with good code and licensing
 
diff --git a/gst/Makefile.in b/gst/Makefile.in
index f058069..9de42f2 100644
--- a/gst/Makefile.in
+++ b/gst/Makefile.in
@@ -102,6 +102,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -320,6 +321,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -426,6 +428,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -493,6 +498,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/alpha/Makefile.in b/gst/alpha/Makefile.in
index f492c8d..e2c63dc 100644
--- a/gst/alpha/Makefile.in
+++ b/gst/alpha/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -351,6 +352,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -457,6 +459,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -524,6 +529,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/alpha/gstalpha.c b/gst/alpha/gstalpha.c
index 839b8db..82ad981 100644
--- a/gst/alpha/gstalpha.c
+++ b/gst/alpha/gstalpha.c
@@ -273,10 +273,10 @@
       "Edward Hervey <edward.hervey@collabora.co.uk>\n"
       "Jan Schmidt <thaytan@noraisin.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_alpha_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_alpha_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_alpha_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_alpha_src_template);
 
   btrans_class->before_transform =
       GST_DEBUG_FUNCPTR (gst_alpha_before_transform);
diff --git a/gst/alpha/gstalphacolor.c b/gst/alpha/gstalphacolor.c
index 9967677..e082e74 100644
--- a/gst/alpha/gstalphacolor.c
+++ b/gst/alpha/gstalphacolor.c
@@ -85,10 +85,8 @@
       "ARGB from/to AYUV colorspace conversion preserving the alpha channel",
       "Wim Taymans <wim.taymans@gmail.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gstbasetransform_class->transform_caps =
       GST_DEBUG_FUNCPTR (gst_alpha_color_transform_caps);
diff --git a/gst/apetag/Makefile.in b/gst/apetag/Makefile.in
index 941c01b..48cc189 100644
--- a/gst/apetag/Makefile.in
+++ b/gst/apetag/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/apetag/gstapedemux.c b/gst/apetag/gstapedemux.c
index be0b0e5..b3e6289 100644
--- a/gst/apetag/gstapedemux.c
+++ b/gst/apetag/gstapedemux.c
@@ -91,8 +91,7 @@
       "Read and output APE tags while demuxing the contents",
       "Tim-Philipp Müller <tim centricular net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   tagdemux_class->identify_tag = GST_DEBUG_FUNCPTR (gst_ape_demux_identify_tag);
   tagdemux_class->parse_tag = GST_DEBUG_FUNCPTR (gst_ape_demux_parse_tag);
diff --git a/gst/audiofx/Makefile.in b/gst/audiofx/Makefile.in
index 88465e3..cdf425f 100644
--- a/gst/audiofx/Makefile.in
+++ b/gst/audiofx/Makefile.in
@@ -123,6 +123,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -388,6 +389,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -494,6 +496,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -561,6 +566,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/audiofx/audiopanorama.c b/gst/audiofx/audiopanorama.c
index 330e049..b901464 100644
--- a/gst/audiofx/audiopanorama.c
+++ b/gst/audiofx/audiopanorama.c
@@ -199,10 +199,8 @@
       "Positions audio streams in the stereo panorama",
       "Stefan Kost <ensonic@users.sf.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   GST_BASE_TRANSFORM_CLASS (klass)->get_unit_size =
       GST_DEBUG_FUNCPTR (gst_audio_panorama_get_unit_size);
diff --git a/gst/audiofx/audiopanoramaorc-dist.c b/gst/audiofx/audiopanoramaorc-dist.c
index 3d5999a..12d6aa0 100644
--- a/gst/audiofx/audiopanoramaorc-dist.c
+++ b/gst/audiofx/audiopanoramaorc-dist.c
@@ -264,7 +264,7 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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 @@
       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/gstscaletempo.c b/gst/audiofx/gstscaletempo.c
index b95ea50..2f14d6b 100644
--- a/gst/audiofx/gstscaletempo.c
+++ b/gst/audiofx/gstscaletempo.c
@@ -864,10 +864,8 @@
           "Length in milliseconds to search for best overlap position", 0, 500,
           14, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "Scaletempo",
       "Filter/Effect/Rate",
       "Sync audio tempo with playback rate",
diff --git a/gst/audioparsers/Makefile.in b/gst/audioparsers/Makefile.in
index 723a13a..f3e75c5 100644
--- a/gst/audioparsers/Makefile.in
+++ b/gst/audioparsers/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -350,6 +351,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -456,6 +458,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -523,6 +528,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/audioparsers/gstaacparse.c b/gst/audioparsers/gstaacparse.c
index 514e4f4..34ba80a 100644
--- a/gst/audioparsers/gstaacparse.c
+++ b/gst/audioparsers/gstaacparse.c
@@ -75,12 +75,12 @@
 
 #define AAC_FRAME_DURATION(parse) (GST_SECOND/parse->frames_per_sec)
 
-static const gint loas_sample_rate_table[32] = {
+static const gint loas_sample_rate_table[16] = {
   96000, 88200, 64000, 48000, 44100, 32000, 24000, 22050,
   16000, 12000, 11025, 8000, 7350, 0, 0, 0
 };
 
-static const gint loas_channels_table[32] = {
+static const gint loas_channels_table[16] = {
   0, 1, 2, 3, 4, 5, 6, 8,
   0, 0, 0, 7, 8, 0, 8, 0
 };
@@ -97,7 +97,10 @@
     GstBaseParseFrame * frame, gint * skipsize);
 static GstFlowReturn gst_aac_parse_pre_push_frame (GstBaseParse * parse,
     GstBaseParseFrame * frame);
+static gboolean gst_aac_parse_src_event (GstBaseParse * parse,
+    GstEvent * event);
 
+#define gst_aac_parse_parent_class parent_class
 G_DEFINE_TYPE (GstAacParse, gst_aac_parse, GST_TYPE_BASE_PARSE);
 
 /**
@@ -114,10 +117,8 @@
   GST_DEBUG_CATEGORY_INIT (aacparse_debug, "aacparse", 0,
       "AAC audio stream parser");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "AAC audio stream parser", "Codec/Parser/Audio",
@@ -130,6 +131,7 @@
   parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_aac_parse_handle_frame);
   parse_class->pre_push_frame =
       GST_DEBUG_FUNCPTR (gst_aac_parse_pre_push_frame);
+  parse_class->src_event = GST_DEBUG_FUNCPTR (gst_aac_parse_src_event);
 }
 
 
@@ -145,6 +147,9 @@
   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));
+
+  aacparse->last_parsed_sample_rate = 0;
+  aacparse->last_parsed_channels = 0;
 }
 
 
@@ -253,6 +258,9 @@
   if (allowed)
     gst_caps_unref (allowed);
 
+  aacparse->last_parsed_channels = 0;
+  aacparse->last_parsed_sample_rate = 0;
+
   GST_DEBUG_OBJECT (aacparse, "setting src caps: %" GST_PTR_FORMAT, src_caps);
 
   res = gst_pad_set_caps (GST_BASE_PARSE (aacparse)->srcpad, src_caps);
@@ -349,7 +357,6 @@
       gst_base_parse_set_passthrough (parse, FALSE);
     }
   }
-
   return TRUE;
 }
 
@@ -483,7 +490,7 @@
   *value = 0;
   if (!gst_bit_reader_get_bits_uint8 (br, &bytes, 2))
     return FALSE;
-  for (i = 0; i < bytes; ++i) {
+  for (i = 0; i <= bytes; ++i) {
     *value <<= 8;
     if (!gst_bit_reader_get_bits_uint8 (br, &byte, 8))
       return FALSE;
@@ -526,6 +533,7 @@
     if (!*sample_rate)
       return FALSE;
   }
+  aacparse->last_parsed_sample_rate = *sample_rate;
   return TRUE;
 }
 
@@ -534,7 +542,10 @@
 gst_aac_parse_read_loas_audio_specific_config (GstAacParse * aacparse,
     GstBitReader * br, gint * sample_rate, gint * channels, guint32 * bits)
 {
-  guint8 audio_object_type, channel_configuration;
+  guint8 audio_object_type;
+  guint8 G_GNUC_UNUSED extension_audio_object_type;
+  guint8 channel_configuration, extension_channel_configuration;
+  gboolean G_GNUC_UNUSED sbr = FALSE, ps = FALSE;
 
   if (!gst_aac_parse_get_audio_object_type (aacparse, br, &audio_object_type))
     return FALSE;
@@ -544,16 +555,38 @@
 
   if (!gst_bit_reader_get_bits_uint8 (br, &channel_configuration, 4))
     return FALSE;
-  GST_LOG_OBJECT (aacparse, "channel_configuration: %d", channel_configuration);
   *channels = loas_channels_table[channel_configuration];
+  GST_LOG_OBJECT (aacparse, "channel_configuration: %d", channel_configuration);
   if (!*channels)
     return FALSE;
 
-  if (audio_object_type == 5) {
+  if (audio_object_type == 5 || audio_object_type == 29) {
+    extension_audio_object_type = 5;
+    sbr = TRUE;
+    if (audio_object_type == 29)
+      ps = TRUE;
+
     GST_LOG_OBJECT (aacparse,
-        "Audio object type 5, so rereading sampling rate...");
+        "Audio object type 5 or 29, so rereading sampling rate...");
     if (!gst_aac_parse_get_audio_sample_rate (aacparse, br, sample_rate))
       return FALSE;
+
+    if (!gst_aac_parse_get_audio_object_type (aacparse, br, &audio_object_type))
+      return FALSE;
+
+    if (audio_object_type == 22) {
+      /* extension channel configuration */
+      if (!gst_bit_reader_get_bits_uint8 (br, &extension_channel_configuration,
+              4))
+        return FALSE;
+      GST_LOG_OBJECT (aacparse, "extension channel_configuration: %d",
+          extension_channel_configuration);
+      *channels = loas_channels_table[extension_channel_configuration];
+      if (!*channels)
+        return FALSE;
+    }
+  } else {
+    extension_audio_object_type = 0;
   }
 
   GST_INFO_OBJECT (aacparse, "Found LOAS config: %d Hz, %d channels",
@@ -565,6 +598,7 @@
       "Need more code to parse humongous LOAS data, currently ignored");
   if (bits)
     *bits = 0;
+  aacparse->last_parsed_channels = *channels;
   return TRUE;
 }
 
@@ -591,21 +625,23 @@
     return FALSE;
   if (u8) {
     GST_LOG_OBJECT (aacparse, "Frame uses previous config");
-    if (!aacparse->sample_rate || !aacparse->channels) {
+    if (!aacparse->last_parsed_sample_rate || !aacparse->last_parsed_channels) {
       GST_DEBUG_OBJECT (aacparse,
           "No previous config to use. We'll look for more data.");
       return FALSE;
     }
-    *sample_rate = aacparse->sample_rate;
-    *channels = aacparse->channels;
+    *sample_rate = aacparse->last_parsed_sample_rate;
+    *channels = aacparse->last_parsed_channels;
     return TRUE;
   }
 
   GST_DEBUG_OBJECT (aacparse, "Frame contains new config");
 
+  /* audioMuxVersion */
   if (!gst_bit_reader_get_bits_uint8 (&br, &v, 1))
     return FALSE;
   if (v) {
+    /* audioMuxVersionA */
     if (!gst_bit_reader_get_bits_uint8 (&br, &vA, 1))
       return FALSE;
   } else
@@ -616,6 +652,7 @@
     guint8 same_time, subframes, num_program, prog;
     if (v == 1) {
       guint32 value;
+      /* taraBufferFullness */
       if (!gst_aac_parse_latm_get_value (aacparse, &br, &value))
         return FALSE;
     }
@@ -733,7 +770,8 @@
 
   if ((data[0] == 0x56) && ((data[1] & 0xe0) == 0xe0)) {
     *framesize = gst_aac_parse_loas_get_frame_len (data);
-    GST_DEBUG_OBJECT (aacparse, "Found %u byte LOAS frame", *framesize);
+    GST_DEBUG_OBJECT (aacparse, "Found possible %u byte LOAS frame",
+        *framesize);
 
     /* In EOS mode this is enough. No need to examine the data further.
        We also relax the check when we have sync, on the assumption that
@@ -762,6 +800,8 @@
       gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse),
           nextlen + LOAS_MAX_SIZE);
       return TRUE;
+    } else {
+      GST_DEBUG_OBJECT (aacparse, "That was a false positive");
     }
   }
   return FALSE;
@@ -1441,6 +1481,8 @@
   aacparse->frame_samples = 1024;
   gst_base_parse_set_min_frame_size (GST_BASE_PARSE (aacparse), ADTS_MAX_SIZE);
   aacparse->sent_codec_tag = FALSE;
+  aacparse->last_parsed_channels = 0;
+  aacparse->last_parsed_sample_rate = 0;
   return TRUE;
 }
 
@@ -1588,3 +1630,16 @@
 
   return res;
 }
+
+static gboolean
+gst_aac_parse_src_event (GstBaseParse * parse, GstEvent * event)
+{
+  GstAacParse *aacparse = GST_AAC_PARSE (parse);
+
+  if (GST_EVENT_TYPE (event) == GST_EVENT_FLUSH_STOP) {
+    aacparse->last_parsed_channels = 0;
+    aacparse->last_parsed_sample_rate = 0;
+  }
+
+  return GST_BASE_PARSE_CLASS (parent_class)->src_event (parse, event);
+}
diff --git a/gst/audioparsers/gstaacparse.h b/gst/audioparsers/gstaacparse.h
index 1bb7dca..40c96ff 100644
--- a/gst/audioparsers/gstaacparse.h
+++ b/gst/audioparsers/gstaacparse.h
@@ -83,6 +83,9 @@
   GstAacHeaderType output_header_type;
 
   gboolean sent_codec_tag;
+
+  gint last_parsed_sample_rate;
+  gint last_parsed_channels;
 };
 
 /**
diff --git a/gst/audioparsers/gstac3parse.c b/gst/audioparsers/gstac3parse.c
index 875f9cb..ae75038 100644
--- a/gst/audioparsers/gstac3parse.c
+++ b/gst/audioparsers/gstac3parse.c
@@ -186,10 +186,8 @@
 
   object_class->finalize = gst_ac3_parse_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "AC3 audio stream parser", "Codec/Parser/Converter/Audio",
diff --git a/gst/audioparsers/gstamrparse.c b/gst/audioparsers/gstamrparse.c
index 557afc9..5bc84d4 100644
--- a/gst/audioparsers/gstamrparse.c
+++ b/gst/audioparsers/gstamrparse.c
@@ -100,10 +100,8 @@
   GST_DEBUG_CATEGORY_INIT (amrparse_debug, "amrparse", 0,
       "AMR-NB audio stream parser");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "AMR audio stream parser", "Codec/Parser/Audio",
diff --git a/gst/audioparsers/gstdcaparse.c b/gst/audioparsers/gstdcaparse.c
index 3809323..dfa5621 100644
--- a/gst/audioparsers/gstdcaparse.c
+++ b/gst/audioparsers/gstdcaparse.c
@@ -106,10 +106,8 @@
   parse_class->get_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_get_sink_caps);
   parse_class->set_sink_caps = GST_DEBUG_FUNCPTR (gst_dca_parse_set_sink_caps);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "DTS Coherent Acoustics audio stream parser", "Codec/Parser/Audio",
diff --git a/gst/audioparsers/gstflacparse.c b/gst/audioparsers/gstflacparse.c
index 34e1e5e..4a36137 100644
--- a/gst/audioparsers/gstflacparse.c
+++ b/gst/audioparsers/gstflacparse.c
@@ -247,10 +247,8 @@
   baseparse_class->get_sink_caps =
       GST_DEBUG_FUNCPTR (gst_flac_parse_get_sink_caps);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class, "FLAC audio parser",
       "Codec/Parser/Audio",
diff --git a/gst/audioparsers/gstmpegaudioparse.c b/gst/audioparsers/gstmpegaudioparse.c
index 1a5313a..1432973 100644
--- a/gst/audioparsers/gstmpegaudioparse.c
+++ b/gst/audioparsers/gstmpegaudioparse.c
@@ -177,10 +177,8 @@
 
   g_type_class_ref (GST_TYPE_MPEG_AUDIO_CHANNEL_MODE);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class, "MPEG1 Audio Parser",
       "Codec/Parser/Audio",
diff --git a/gst/audioparsers/gstsbcparse.c b/gst/audioparsers/gstsbcparse.c
index f7374f5..12c39d9 100644
--- a/gst/audioparsers/gstsbcparse.c
+++ b/gst/audioparsers/gstsbcparse.c
@@ -98,10 +98,8 @@
   baseparse_class->get_sink_caps =
       GST_DEBUG_FUNCPTR (gst_sbc_parse_get_sink_caps);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   gst_element_class_set_static_metadata (element_class, "SBC audio parser",
       "Codec/Parser/Audio", "Parses an SBC bluetooth audio stream",
diff --git a/gst/audioparsers/gstwavpackparse.c b/gst/audioparsers/gstwavpackparse.c
index ce85c5b..3e1d19c 100644
--- a/gst/audioparsers/gstwavpackparse.c
+++ b/gst/audioparsers/gstwavpackparse.c
@@ -98,10 +98,8 @@
   parse_class->pre_push_frame =
       GST_DEBUG_FUNCPTR (gst_wavpack_parse_pre_push_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Wavpack audio stream parser", "Codec/Parser/Audio",
diff --git a/gst/auparse/Makefile.in b/gst/auparse/Makefile.in
index 986936e..3794b33 100644
--- a/gst/auparse/Makefile.in
+++ b/gst/auparse/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/auparse/gstauparse.c b/gst/auparse/gstauparse.c
index 10a2a05..b814ad8 100644
--- a/gst/auparse/gstauparse.c
+++ b/gst/auparse/gstauparse.c
@@ -118,10 +118,8 @@
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_au_parse_change_state);
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "AU audio demuxer",
       "Codec/Demuxer/Audio",
diff --git a/gst/autodetect/Makefile.in b/gst/autodetect/Makefile.in
index 9289d78..c6dec54 100644
--- a/gst/autodetect/Makefile.in
+++ b/gst/autodetect/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/autodetect/gstautoaudiosink.c b/gst/autodetect/gstautoaudiosink.c
index 1dfc4ce..1edf6d8 100644
--- a/gst/autodetect/gstautoaudiosink.c
+++ b/gst/autodetect/gstautoaudiosink.c
@@ -81,8 +81,7 @@
           "Timestamp offset in nanoseconds", G_MININT64, G_MAXINT64,
           DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (eklass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (eklass, &sink_template);
   gst_element_class_set_static_metadata (eklass, "Auto audio sink",
       "Sink/Audio",
       "Wrapper audio sink for automatically detected audio sink",
diff --git a/gst/autodetect/gstautoaudiosrc.c b/gst/autodetect/gstautoaudiosrc.c
index 2859386..8adda00 100644
--- a/gst/autodetect/gstautoaudiosrc.c
+++ b/gst/autodetect/gstautoaudiosrc.c
@@ -75,8 +75,7 @@
   GstAutoDetectClass *autoclass = GST_AUTO_DETECT_CLASS (klass);
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (eklass,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (eklass, &src_template);
   gst_element_class_set_static_metadata (eklass, "Auto audio source",
       "Source/Audio",
       "Wrapper audio source for automatically detected audio source",
diff --git a/gst/autodetect/gstautodetect.c b/gst/autodetect/gstautodetect.c
index 59aab7e..a256e52 100644
--- a/gst/autodetect/gstautodetect.c
+++ b/gst/autodetect/gstautodetect.c
@@ -113,8 +113,6 @@
     gst_element_set_state (self->kid, GST_STATE_NULL);
     gst_bin_remove (GST_BIN (self), self->kid);
     self->kid = NULL;
-    /* Don't lose the element type flag */
-    GST_OBJECT_FLAG_SET (self, self->flag);
   }
 }
 
@@ -204,6 +202,8 @@
 
   /* mark element type */
   GST_OBJECT_FLAG_SET (self, self->flag);
+  gst_bin_set_suppressed_flags (GST_BIN (self),
+      GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
 }
 
 static gboolean
diff --git a/gst/autodetect/gstautovideosink.c b/gst/autodetect/gstautovideosink.c
index 6eaee66..e4fd91e 100644
--- a/gst/autodetect/gstautovideosink.c
+++ b/gst/autodetect/gstautovideosink.c
@@ -81,8 +81,7 @@
           "Timestamp offset in nanoseconds", G_MININT64, G_MAXINT64,
           DEFAULT_TS_OFFSET, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (eklass,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (eklass, &sink_template);
   gst_element_class_set_static_metadata (eklass, "Auto video sink",
       "Sink/Video",
       "Wrapper video sink for automatically detected video sink",
diff --git a/gst/autodetect/gstautovideosrc.c b/gst/autodetect/gstautovideosrc.c
index 854c641..2f43431 100644
--- a/gst/autodetect/gstautovideosrc.c
+++ b/gst/autodetect/gstautovideosrc.c
@@ -74,8 +74,7 @@
   GstAutoDetectClass *autoclass = GST_AUTO_DETECT_CLASS (klass);
   GstElementClass *eklass = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (eklass,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (eklass, &src_template);
   gst_element_class_set_static_metadata (eklass, "Auto video source",
       "Source/Video",
       "Wrapper video source for automatically detected video source",
diff --git a/gst/avi/Makefile.in b/gst/avi/Makefile.in
index 19ef4c7..8a07d9b 100644
--- a/gst/avi/Makefile.in
+++ b/gst/avi/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/avi/gstavidemux.c b/gst/avi/gstavidemux.c
index 93bdc9f..1fe3176 100644
--- a/gst/avi/gstavidemux.c
+++ b/gst/avi/gstavidemux.c
@@ -170,8 +170,7 @@
   gst_element_class_add_pad_template (gstelement_class, videosrctempl);
   gst_element_class_add_pad_template (gstelement_class, subsrctempl);
   gst_element_class_add_pad_template (gstelement_class, subpicsrctempl);
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_templ);
 
   gst_element_class_set_static_metadata (gstelement_class, "Avi demuxer",
       "Codec/Demuxer",
@@ -927,11 +926,6 @@
       }
       gst_event_unref (event);
       break;
-    case GST_EVENT_QOS:
-    case GST_EVENT_NAVIGATION:
-      res = FALSE;
-      gst_event_unref (event);
-      break;
     default:
       res = gst_pad_event_default (pad, parent, event);
       break;
@@ -5701,9 +5695,7 @@
       /* for fatal errors we post an error message, wrong-state is
        * not fatal because it happens due to flushes and only means
        * that we should stop now. */
-      GST_ELEMENT_ERROR (avi, STREAM, FAILED,
-          (_("Internal data stream error.")),
-          ("streaming stopped, reason %s", gst_flow_get_name (res)));
+      GST_ELEMENT_FLOW_ERROR (avi, res);
       push_eos = TRUE;
     }
     if (push_eos) {
diff --git a/gst/avi/gstavimux.c b/gst/avi/gstavimux.c
index 818930f..593ed44 100644
--- a/gst/avi/gstavimux.c
+++ b/gst/avi/gstavimux.c
@@ -146,7 +146,10 @@
         "video/x-vp8, "
         "width = (int) [ 1, 2147483647 ], "
         "height = (int) [ 1, 2147483647 ], "
-        "framerate = (fraction) [ 0, MAX ]")
+        "framerate = (fraction) [ 0, MAX ];"
+        "image/png, "
+        "width = (int) [ 16, 4096 ], "
+        "height = (int) [ 16, 4096 ], framerate = (fraction) [ 0, MAX ]")
     );
 
 static GstStaticPadTemplate audio_sink_factory =
@@ -252,12 +255,11 @@
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_avi_mux_release_pad);
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_avi_mux_change_state);
 
-  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 (&audio_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Avi muxer",
       "Codec/Muxer",
@@ -603,6 +605,8 @@
       avipad->vids.compression = GST_MAKE_FOURCC ('M', 'J', '2', 'C');
     } else if (!strcmp (mimetype, "video/x-vp8")) {
       avipad->vids.compression = GST_MAKE_FOURCC ('V', 'P', '8', '0');
+    } else if (!strcmp (mimetype, "image/png")) {
+      avipad->vids.compression = GST_MAKE_FOURCC ('p', 'n', 'g', ' ');
     } else {
       valid_caps = FALSE;
     }
diff --git a/gst/avi/gstavisubtitle.c b/gst/avi/gstavisubtitle.c
index a54ef66..25c9cca 100644
--- a/gst/avi/gstavisubtitle.c
+++ b/gst/avi/gstavisubtitle.c
@@ -327,10 +327,8 @@
   gstelement_class->send_event =
       GST_DEBUG_FUNCPTR (gst_avi_subtitle_send_event);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Avi subtitle parser", "Codec/Parser/Subtitle",
diff --git a/gst/cutter/Makefile.in b/gst/cutter/Makefile.in
index 3a67755..1893e7e 100644
--- a/gst/cutter/Makefile.in
+++ b/gst/cutter/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/cutter/gstcutter.c b/gst/cutter/gstcutter.c
index 6d41ef7..b13ddf6 100644
--- a/gst/cutter/gstcutter.c
+++ b/gst/cutter/gstcutter.c
@@ -147,13 +147,12 @@
 
   GST_DEBUG_CATEGORY_INIT (cutter_debug, "cutter", 0, "Audio cutting");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cutter_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cutter_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &cutter_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &cutter_sink_factory);
   gst_element_class_set_static_metadata (element_class, "Audio cutter",
-      "Filter/Editor/Audio",
-      "Audio Cutter to split audio into non-silent bits",
+      "Filter/Editor/Audio", "Audio Cutter to split audio into non-silent bits",
       "Thomas Vander Stichele <thomas at apestaart dot org>");
   element_class->change_state = gst_cutter_change_state;
 }
diff --git a/gst/debugutils/Makefile.in b/gst/debugutils/Makefile.in
index 4f8ee29..4579eef 100644
--- a/gst/debugutils/Makefile.in
+++ b/gst/debugutils/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -358,6 +359,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -464,6 +466,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -531,6 +536,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/debugutils/breakmydata.c b/gst/debugutils/breakmydata.c
index 7fe01b6..3722d30 100644
--- a/gst/debugutils/breakmydata.c
+++ b/gst/debugutils/breakmydata.c
@@ -138,10 +138,10 @@
           "probability for each byte in the buffer to be changed", 0.0, 1.0,
           0.0, G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&bmd_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&bmd_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &bmd_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &bmd_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Break my data",
       "Testing",
diff --git a/gst/debugutils/cpureport.c b/gst/debugutils/cpureport.c
index 670794d..f61c38e 100644
--- a/gst/debugutils/cpureport.c
+++ b/gst/debugutils/cpureport.c
@@ -72,10 +72,10 @@
 
   gobject_class->finalize = gst_cpu_report_finalize;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cpu_report_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&cpu_report_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &cpu_report_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &cpu_report_src_template);
 
   gst_element_class_set_static_metadata (element_class, "CPU report",
       "Testing",
diff --git a/gst/debugutils/gstcapssetter.c b/gst/debugutils/gstcapssetter.c
index 187adb7..6b3db76 100644
--- a/gst/debugutils/gstcapssetter.c
+++ b/gst/debugutils/gstcapssetter.c
@@ -136,10 +136,10 @@
       "Set/merge caps on stream",
       "Mark Nauwelaerts <mnauw@users.sourceforge.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_caps_setter_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_caps_setter_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_caps_setter_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_caps_setter_src_template);
 
   trans_class->transform_size =
       GST_DEBUG_FUNCPTR (gst_caps_setter_transform_size);
diff --git a/gst/debugutils/gstnavigationtest.c b/gst/debugutils/gstnavigationtest.c
index de98900..532fe13 100644
--- a/gst/debugutils/gstnavigationtest.c
+++ b/gst/debugutils/gstnavigationtest.c
@@ -242,10 +242,10 @@
       "Handle navigation events showing a black square following mouse pointer",
       "David Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_navigationtest_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_navigationtest_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_navigationtest_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_navigationtest_src_template);
 
   trans_class->src_event = GST_DEBUG_FUNCPTR (gst_navigationtest_src_event);
 
diff --git a/gst/debugutils/gstnavseek.c b/gst/debugutils/gstnavseek.c
index a38b608..fd9386c 100644
--- a/gst/debugutils/gstnavseek.c
+++ b/gst/debugutils/gstnavseek.c
@@ -84,10 +84,10 @@
           "Time in seconds to seek by", 0.0, G_MAXDOUBLE, 5.0,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&navseek_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&navseek_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &navseek_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &navseek_src_template);
 
   gst_element_class_set_static_metadata (element_class,
       "Seek based on left-right arrows", "Filter/Video",
diff --git a/gst/debugutils/gstpushfilesrc.c b/gst/debugutils/gstpushfilesrc.c
index ba9b358..c60accb 100644
--- a/gst/debugutils/gstpushfilesrc.c
+++ b/gst/debugutils/gstpushfilesrc.c
@@ -152,8 +152,7 @@
           "Applied rate to use in TIME SEGMENT", G_MINDOUBLE, G_MAXDOUBLE,
           DEFAULT_APPLIED_RATE, G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&srctemplate));
+  gst_element_class_add_static_pad_template (element_class, &srctemplate);
 
   gst_element_class_set_static_metadata (element_class, "Push File Source",
       "Testing",
diff --git a/gst/debugutils/gsttaginject.c b/gst/debugutils/gsttaginject.c
index 1430d22..abdb797 100644
--- a/gst/debugutils/gsttaginject.c
+++ b/gst/debugutils/gsttaginject.c
@@ -116,10 +116,8 @@
   gst_element_class_set_static_metadata (gstelement_class,
       "TagInject",
       "Generic", "inject metadata tags", "Stefan Kost <ensonic@users.sf.net>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&srctemplate));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &srctemplate);
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gstbasetrans_class->transform_ip =
       GST_DEBUG_FUNCPTR (gst_tag_inject_transform_ip);
diff --git a/gst/debugutils/progressreport.c b/gst/debugutils/progressreport.c
index 1426ca8..906bf0f 100644
--- a/gst/debugutils/progressreport.c
+++ b/gst/debugutils/progressreport.c
@@ -165,10 +165,10 @@
           "Format to use for the querying", DEFAULT_FORMAT,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&progress_report_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&progress_report_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &progress_report_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &progress_report_src_template);
 
   gst_element_class_set_static_metadata (element_class, "Progress report",
       "Testing",
diff --git a/gst/debugutils/rndbuffersize.c b/gst/debugutils/rndbuffersize.c
index 9ebd12c..d33a23c 100644
--- a/gst/debugutils/rndbuffersize.c
+++ b/gst/debugutils/rndbuffersize.c
@@ -120,10 +120,8 @@
   gobject_class->get_property = gst_rnd_buffer_size_get_property;
   gobject_class->finalize = gst_rnd_buffer_size_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Random buffer size",
       "Testing", "pull random sized buffers",
@@ -517,9 +515,7 @@
       GST_DEBUG_OBJECT (self, "eos");
       gst_pad_push_event (self->srcpad, gst_event_new_eos ());
     } else if (ret < GST_FLOW_EOS || ret == GST_FLOW_NOT_LINKED) {
-      GST_ELEMENT_ERROR (self, STREAM, FAILED,
-          ("Internal data stream error."),
-          ("streaming stopped, reason: %s", gst_flow_get_name (ret)));
+      GST_ELEMENT_FLOW_ERROR (self, ret);
     }
     goto pause_task;
   }
diff --git a/gst/debugutils/testplugin.c b/gst/debugutils/testplugin.c
index 7d104cd..ef9ca0f 100644
--- a/gst/debugutils/testplugin.c
+++ b/gst/debugutils/testplugin.c
@@ -112,8 +112,7 @@
     g_object_class_install_property (object_class, 2 * i + 2, spec);
   }
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
 
   gst_element_class_set_static_metadata (gstelement_class, "Test plugin",
       "Testing", "perform a number of tests", "Benjamin Otte <otte@gnome>");
diff --git a/gst/deinterlace/Makefile.in b/gst/deinterlace/Makefile.in
index 7e01931..b5b979f 100644
--- a/gst/deinterlace/Makefile.in
+++ b/gst/deinterlace/Makefile.in
@@ -121,6 +121,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -382,6 +383,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -488,6 +490,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -555,6 +560,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/deinterlace/gstdeinterlace.c b/gst/deinterlace/gstdeinterlace.c
index 6e05893..503b75e 100644
--- a/gst/deinterlace/gstdeinterlace.c
+++ b/gst/deinterlace/gstdeinterlace.c
@@ -199,6 +199,7 @@
     {GST_DEINTERLACE_ALL, "All fields", "all"},
     {GST_DEINTERLACE_TF, "Top fields only", "top"},
     {GST_DEINTERLACE_BF, "Bottom fields only", "bottom"},
+    {GST_DEINTERLACE_FIELDS_AUTO, "Automatically detect", "auto"},
     {0, NULL, NULL},
   };
 
@@ -486,10 +487,8 @@
 
   GstElementClass *element_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_templ));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (element_class, &src_templ);
+  gst_element_class_add_static_pad_template (element_class, &sink_templ);
 
   gst_element_class_set_static_metadata (element_class,
       "Deinterlacer",
@@ -722,6 +721,7 @@
   gst_video_info_init (&self->vinfo);
   gst_deinterlace_set_method (self, self->user_set_method_id);
   self->fields = DEFAULT_FIELDS;
+  self->user_set_fields = DEFAULT_FIELDS;
   self->field_layout = DEFAULT_FIELD_LAYOUT;
   self->locking = DEFAULT_LOCKING;
   self->ignore_obscure = DEFAULT_IGNORE_OBSCURE;
@@ -744,7 +744,11 @@
     GstMapFlags flags)
 {
   GstVideoFrame *frame = g_malloc0 (sizeof (GstVideoFrame));
-  gst_video_frame_map (frame, vinfo, buffer, flags);
+  if (!gst_video_frame_map (frame, vinfo, buffer, flags)) {
+    g_free (frame);
+    g_return_val_if_reached (NULL);
+    return NULL;
+  }
   return frame;
 }
 
@@ -811,7 +815,7 @@
   if ((gint) self->new_mode != -1)
     self->mode = self->new_mode;
   if ((gint) self->new_fields != -1)
-    self->fields = self->new_fields;
+    self->user_set_fields = self->new_fields;
   self->new_mode = -1;
   self->new_fields = -1;
 
@@ -828,6 +832,8 @@
   self->need_more = FALSE;
   self->have_eos = FALSE;
 
+  self->discont = TRUE;
+
   gst_deinterlace_set_allocation (self, NULL, NULL, NULL);
 }
 
@@ -863,11 +869,12 @@
 
       GST_OBJECT_LOCK (self);
       new_fields = g_value_get_enum (value);
-      if (self->fields != new_fields && gst_pad_has_current_caps (self->srcpad)) {
+      if (self->user_set_fields != new_fields
+          && gst_pad_has_current_caps (self->srcpad)) {
         self->reconfigure = TRUE;
         self->new_fields = new_fields;
       } else {
-        self->fields = new_fields;
+        self->user_set_fields = new_fields;
       }
       GST_OBJECT_UNLOCK (self);
       break;
@@ -906,7 +913,7 @@
       g_value_set_enum (value, self->user_set_method_id);
       break;
     case PROP_FIELDS:
-      g_value_set_enum (value, self->fields);
+      g_value_set_enum (value, self->user_set_fields);
       break;
     case PROP_FIELD_LAYOUT:
       g_value_set_enum (value, self->field_layout);
@@ -1074,7 +1081,7 @@
   GstVideoFrame *frame = NULL;
   GstVideoFrame *field1, *field2 = NULL;
   guint fields_to_push;
-  gint field1_flags, field2_flags;
+  guint field1_flags, field2_flags;
   GstVideoInterlaceMode interlacing_mode;
   guint8 buf_state;
 
@@ -1144,6 +1151,13 @@
     field2_flags = PICTURE_INTERLACED_TOP;
   }
 
+  /* Swap for reverse playback */
+  if (self->segment.rate < 0) {
+    field1_flags = field1_flags ^ field2_flags;
+    field2_flags = field1_flags ^ field2_flags;
+    field1_flags = field1_flags ^ field2_flags;
+  }
+
   if (!onefield) {
     GST_DEBUG_OBJECT (self, "Two fields");
     self->field_history[1].frame = field1;
@@ -1276,6 +1290,7 @@
   GstVideoFrame *field3, *field4;
   GstVideoInterlaceMode interlacing_mode;
 
+  /* FIXME: This is broken for rate < 0 */
   if (self->pattern_lock && self->pattern > -1) {
     /* accurate pattern-locked timestamp adjustment */
     if (!self->pattern_count)
@@ -1633,6 +1648,10 @@
         GST_TIME_ARGS (GST_BUFFER_DURATION (field1_buffer)),
         GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (field1_buffer) +
             GST_BUFFER_DURATION (field1_buffer)));
+    if (self->discont) {
+      GST_BUFFER_FLAG_SET (field1_buffer, GST_BUFFER_FLAG_DISCONT);
+      self->discont = FALSE;
+    }
     return gst_pad_push (self->srcpad, field1_buffer);
   } else if (IS_TELECINE (interlacing_mode)
       && GST_VIDEO_FRAME_IS_INTERLACED (field1->frame) && !same_buffer) {
@@ -1731,11 +1750,16 @@
     if (!IS_TELECINE (interlacing_mode)) {
       timestamp = GST_BUFFER_TIMESTAMP (buf);
 
-      GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
-      if (self->fields == GST_DEINTERLACE_ALL)
+      if (self->fields == GST_DEINTERLACE_ALL) {
+        if (self->segment.rate < 0)
+          GST_BUFFER_TIMESTAMP (outbuf) = timestamp + self->field_duration;
+        else
+          GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
         GST_BUFFER_DURATION (outbuf) = self->field_duration;
-      else
+      } else {
+        GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
         GST_BUFFER_DURATION (outbuf) = 2 * self->field_duration;
+      }
       GST_DEBUG_OBJECT (self,
           "[ADJUST] ts %" GST_TIME_FORMAT ", dur %" GST_TIME_FORMAT ", end %"
           GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)),
@@ -1800,6 +1824,10 @@
             GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf)),
             GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf) +
                 GST_BUFFER_DURATION (outbuf)));
+        if (self->discont) {
+          GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
+          self->discont = FALSE;
+        }
         ret = gst_pad_push (self->srcpad, outbuf);
       } else {
         ret = GST_FLOW_OK;
@@ -1869,7 +1897,10 @@
       timestamp = GST_BUFFER_TIMESTAMP (buf);
 
       if (self->fields == GST_DEINTERLACE_ALL) {
-        GST_BUFFER_TIMESTAMP (outbuf) = timestamp + self->field_duration;
+        if (self->segment.rate < 0)
+          GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
+        else
+          GST_BUFFER_TIMESTAMP (outbuf) = timestamp + self->field_duration;
         GST_BUFFER_DURATION (outbuf) = self->field_duration;
       } else {
         GST_BUFFER_TIMESTAMP (outbuf) = timestamp;
@@ -2019,7 +2050,7 @@
     GstCaps *caps;
 
     if ((gint) self->new_fields != -1)
-      self->fields = self->new_fields;
+      self->user_set_fields = self->new_fields;
     if ((gint) self->new_mode != -1)
       self->mode = self->new_mode;
     self->new_mode = -1;
@@ -2062,6 +2093,7 @@
   if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) {
     GST_DEBUG_OBJECT (self, "DISCONT buffer, resetting history");
     gst_deinterlace_reset_history (self, FALSE);
+    self->discont = TRUE;
   }
 
   gst_deinterlace_push_history (self, buf);
@@ -2357,12 +2389,20 @@
           NULL);
   }
 
-  if (self->fields == GST_DEINTERLACE_ALL) {
+  if (self->user_set_fields == GST_DEINTERLACE_ALL) {
     tmp2 = gst_deinterlace_caps_double_framerate (tmp2, (pad == self->sinkpad));
   }
+  if (self->user_set_fields == GST_DEINTERLACE_FIELDS_AUTO) {
+    tmp = gst_caps_copy (tmp2);
+    tmp = gst_deinterlace_caps_double_framerate (tmp, (pad == self->sinkpad));
+  }
 
   ret = gst_caps_merge (ret, tmp2);
   tmp2 = NULL;
+  if (tmp != NULL) {
+    ret = gst_caps_merge (ret, tmp);
+    tmp = NULL;
+  }
 
   /* or
    * - anything else in which case we would just passthrough again if we're
@@ -2508,7 +2548,7 @@
   GstCaps *srccaps = NULL;
   GstVideoInterlaceMode interlacing_mode;
   gint fps_n, fps_d;
-  GstCaps *current_caps;
+  GstCaps *peercaps, *current_caps;
 
   gst_pad_check_reconfigure (self->srcpad);
 
@@ -2521,6 +2561,24 @@
     gst_deinterlace_reset_history (self, FALSE);
     gst_caps_unref (current_caps);
   }
+  peercaps = gst_pad_peer_query_caps (self->srcpad, NULL);
+
+  /* Make sure the peer caps are compatible with the template caps */
+  if (peercaps) {
+    GstCaps *tmp = gst_pad_get_pad_template_caps (self->srcpad);
+    GstCaps *tmp2 = gst_caps_intersect (peercaps, tmp);
+
+    gst_caps_unref (peercaps);
+    peercaps = NULL;
+    gst_caps_unref (tmp);
+
+    if (gst_caps_is_empty (tmp2)) {
+      gst_caps_unref (tmp2);
+      GST_ERROR_OBJECT (self, "Peer caps not compatible with template caps");
+      goto invalid_caps;
+    }
+    peercaps = tmp2;
+  }
 
   if (self->locking != GST_DEINTERLACE_LOCKING_NONE) {
     if (self->low_latency == -1)
@@ -2569,21 +2627,12 @@
           "Passthrough because mode=auto and progressive caps");
       self->passthrough = TRUE;
     } else if (gst_caps_can_intersect (caps, tmp)) {
-      GstCaps *peercaps;
-
-      peercaps = gst_pad_peer_query_caps (self->srcpad, NULL);
       if (peercaps) {
-        GstCaps *templcaps = gst_pad_get_pad_template_caps (self->srcpad);
         GstCaps *allowed_caps;
         GstCaps *tmp2;
         GstStructure *s;
 
-        allowed_caps = gst_caps_intersect (templcaps, peercaps);
-        gst_caps_unref (templcaps);
-        gst_caps_unref (peercaps);
-        peercaps = allowed_caps;
         allowed_caps = gst_caps_intersect (peercaps, tmp);
-        gst_caps_unref (peercaps);
 
         tmp2 = gst_caps_copy (caps);
         s = gst_caps_get_structure (tmp2, 0);
@@ -2659,20 +2708,51 @@
        * mode */
       srccaps = gst_caps_copy (caps);
       gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, 0, 1, NULL);
-    } else if (self->fields == GST_DEINTERLACE_ALL) {
-      if (!gst_deinterlace_fraction_double (&fps_n, &fps_d, FALSE))
-        goto invalid_caps;
-
+    } else if (self->user_set_fields == GST_DEINTERLACE_FIELDS_AUTO) {
       srccaps = gst_caps_copy (caps);
+      if (peercaps) {
+        gboolean can_be_tf = FALSE;
 
-      gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, fps_n,
-          fps_d, NULL);
+        /* We already know that we are not passthrough: interlace-mode will
+         * be progressive */
+        gst_caps_set_simple (srccaps, "interlace-mode", G_TYPE_STRING,
+            "progressive", NULL);
+
+        if (gst_caps_can_intersect (peercaps, srccaps)) {
+          GST_DEBUG_OBJECT (self, "Can deinterlace top fields");
+          can_be_tf = TRUE;
+        }
+        srccaps = gst_deinterlace_caps_double_framerate (srccaps, FALSE);
+        if (!gst_caps_can_intersect (peercaps, srccaps)) {
+          if (can_be_tf) {
+            GST_DEBUG_OBJECT (self, "Will deinterlace top fields");
+            gst_caps_set_simple (srccaps, "framerate", GST_TYPE_FRACTION, fps_n,
+                fps_d, NULL);
+            self->fields = GST_DEINTERLACE_TF;
+          } else {
+            GST_DEBUG_OBJECT (self,
+                "Can't negotiate upstream and downstream caps");
+            gst_caps_unref (srccaps);
+            goto invalid_caps;
+          }
+        } else {
+          GST_DEBUG_OBJECT (self, "Deinterlacing all fields");
+          self->fields = GST_DEINTERLACE_ALL;
+        }
+      } else {
+        GST_DEBUG_OBJECT (self,
+            "No peer caps yet, falling back to deinterlacing all fields");
+        self->fields = GST_DEINTERLACE_ALL;
+        srccaps = gst_deinterlace_caps_double_framerate (srccaps, FALSE);
+      }
     } else {
+      self->fields = self->user_set_fields;
       srccaps = gst_caps_copy (caps);
+      if (self->fields == GST_DEINTERLACE_ALL)
+        srccaps = gst_deinterlace_caps_double_framerate (srccaps, FALSE);
     }
 
     /* If not passthrough, we are going to output progressive content */
-    srccaps = gst_caps_make_writable (srccaps);
     gst_caps_set_simple (srccaps, "interlace-mode", G_TYPE_STRING,
         "progressive", NULL);
 
@@ -2683,7 +2763,7 @@
   }
 
   if (fps_n != 0) {
-    self->field_duration = gst_util_uint64_scale (GST_SECOND, fps_d, fps_n);
+    self->field_duration = gst_util_uint64_scale (GST_SECOND, fps_d, 2 * fps_n);
   } else {
     self->field_duration = 0;
   }
@@ -2697,18 +2777,24 @@
   if (!gst_deinterlace_do_bufferpool (self, srccaps))
     goto no_bufferpool;
 
+  if (peercaps)
+    gst_caps_unref (peercaps);
   gst_caps_unref (srccaps);
 
   return TRUE;
 
 invalid_caps:
   {
+    if (peercaps)
+      gst_caps_unref (peercaps);
     GST_ERROR_OBJECT (pad, "Invalid caps: %" GST_PTR_FORMAT, caps);
     return FALSE;
   }
 set_caps_failed:
   {
     GST_ERROR_OBJECT (pad, "Failed to set caps: %" GST_PTR_FORMAT, srccaps);
+    if (peercaps)
+      gst_caps_unref (peercaps);
     if (srccaps)
       gst_caps_unref (srccaps);
     return FALSE;
diff --git a/gst/deinterlace/gstdeinterlace.h b/gst/deinterlace/gstdeinterlace.h
index 4d783d3..a8cc637 100644
--- a/gst/deinterlace/gstdeinterlace.h
+++ b/gst/deinterlace/gstdeinterlace.h
@@ -63,7 +63,8 @@
 {
   GST_DEINTERLACE_ALL,         /* All (missing data is interp.) */
   GST_DEINTERLACE_TF,          /* Top Fields Only */
-  GST_DEINTERLACE_BF           /* Bottom Fields Only */
+  GST_DEINTERLACE_BF,          /* Bottom Fields Only */
+  GST_DEINTERLACE_FIELDS_AUTO  /* Automatically detect */
 } GstDeinterlaceFields;
 
 typedef enum
@@ -126,6 +127,8 @@
 
   GstDeinterlaceFields fields;
 
+  GstDeinterlaceFields user_set_fields;
+
   /* current state (differs when flushing/inverse telecine using weave) */
   GstDeinterlaceMethods method_id;
   /* property value */
@@ -138,6 +141,7 @@
   GstAllocationParams params;
 
   gboolean passthrough;
+  gboolean discont;
 
   GstClockTime field_duration; /* Duration of one field */
 
diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c
index 9ac3346..d92ce30 100644
--- a/gst/deinterlace/tvtime-dist.c
+++ b/gst/deinterlace/tvtime-dist.c
@@ -713,7 +713,7 @@
       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 6400e97..bbcc0a0 100644
--- a/gst/dtmf/Makefile.in
+++ b/gst/dtmf/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/dtmf/gstdtmfsrc.c b/gst/dtmf/gstdtmfsrc.c
index 49a09e6..88f0f08 100644
--- a/gst/dtmf/gstdtmfsrc.c
+++ b/gst/dtmf/gstdtmfsrc.c
@@ -251,8 +251,8 @@
 
   GST_DEBUG_CATEGORY_INIT (gst_dtmf_src_debug, "dtmfsrc", 0, "dtmfsrc element");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dtmf_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dtmf_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "DTMF tone generator", "Source/Audio", "Generates DTMF tones",
diff --git a/gst/dtmf/gstrtpdtmfdepay.c b/gst/dtmf/gstrtpdtmfdepay.c
index f625ac5..b7827be 100644
--- a/gst/dtmf/gstrtpdtmfdepay.c
+++ b/gst/dtmf/gstrtpdtmfdepay.c
@@ -212,10 +212,10 @@
   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_dtmf_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dtmf_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dtmf_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dtmf_depay_sink_template);
 
   GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_depay_debug,
       "rtpdtmfdepay", 0, "rtpdtmfdepay element");
diff --git a/gst/dtmf/gstrtpdtmfsrc.c b/gst/dtmf/gstrtpdtmfsrc.c
index 373a480..9c783d3 100644
--- a/gst/dtmf/gstrtpdtmfsrc.c
+++ b/gst/dtmf/gstrtpdtmfsrc.c
@@ -213,8 +213,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_rtp_dtmf_src_debug,
       "rtpdtmfsrc", 0, "rtpdtmfsrc element");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dtmf_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dtmf_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP DTMF packet generator", "Source/Network",
diff --git a/gst/effectv/Makefile.in b/gst/effectv/Makefile.in
index 696c4fb..2568302 100644
--- a/gst/effectv/Makefile.in
+++ b/gst/effectv/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -349,6 +350,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -455,6 +457,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -522,6 +527,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/effectv/gstaging.c b/gst/effectv/gstaging.c
index 8121903..a91b63b 100644
--- a/gst/effectv/gstaging.c
+++ b/gst/effectv/gstaging.c
@@ -381,10 +381,10 @@
       "AgingTV adds age to video input using scratches and dust",
       "Sam Lantinga <slouken@devolution.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_agingtv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_agingtv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_agingtv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_agingtv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_agingtv_start);
 
diff --git a/gst/effectv/gstdice.c b/gst/effectv/gstdice.c
index 7c90b66..5c6e111 100644
--- a/gst/effectv/gstdice.c
+++ b/gst/effectv/gstdice.c
@@ -294,10 +294,10 @@
       "'Dices' the screen up into many small squares",
       "Wim Taymans <wim.taymans@gmail.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dicetv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_dicetv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dicetv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_dicetv_src_template);
 
   vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_dicetv_set_info);
   vfilter_class->transform_frame =
diff --git a/gst/effectv/gstedge.c b/gst/effectv/gstedge.c
index d7fe89b..07feb99 100644
--- a/gst/effectv/gstedge.c
+++ b/gst/effectv/gstedge.c
@@ -236,10 +236,10 @@
       "Filter/Effect/Video",
       "Apply edge detect on video", "Wim Taymans <wim.taymans@chello.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_edgetv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_edgetv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_edgetv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_edgetv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_edgetv_start);
 
diff --git a/gst/effectv/gstop.c b/gst/effectv/gstop.c
index 82da702..283878f 100644
--- a/gst/effectv/gstop.c
+++ b/gst/effectv/gstop.c
@@ -396,10 +396,10 @@
       "FUKUCHI, Kentarou <fukuchi@users.sourceforge.net>, "
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_optv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_optv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_optv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_optv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_optv_start);
 
diff --git a/gst/effectv/gstquark.c b/gst/effectv/gstquark.c
index 098e20c..12ade75 100644
--- a/gst/effectv/gstquark.c
+++ b/gst/effectv/gstquark.c
@@ -279,10 +279,10 @@
       "Filter/Effect/Video",
       "Motion dissolver", "FUKUCHI, Kentarou <fukuchi@users.sourceforge.net>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_quarktv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_quarktv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_quarktv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_quarktv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_quarktv_start);
 
diff --git a/gst/effectv/gstradioac.c b/gst/effectv/gstradioac.c
index 1af4234..b663684 100644
--- a/gst/effectv/gstradioac.c
+++ b/gst/effectv/gstradioac.c
@@ -598,10 +598,10 @@
       "FUKUCHI, Kentarou <fukuchi@users.sourceforge.net>, "
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_radioactv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_radioactv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_radioactv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_radioactv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_radioactv_start);
 
diff --git a/gst/effectv/gstrev.c b/gst/effectv/gstrev.c
index 003d36a..2f95950 100644
--- a/gst/effectv/gstrev.c
+++ b/gst/effectv/gstrev.c
@@ -230,10 +230,10 @@
       "A video waveform monitor for each line of video processed",
       "Wim Taymans <wim.taymans@gmail.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_revtv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_revtv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_revtv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_revtv_src_template);
 
   vfilter_class->transform_frame =
       GST_DEBUG_FUNCPTR (gst_revtv_transform_frame);
diff --git a/gst/effectv/gstripple.c b/gst/effectv/gstripple.c
index f81e4d7..a4ac6f7 100644
--- a/gst/effectv/gstripple.c
+++ b/gst/effectv/gstripple.c
@@ -586,10 +586,10 @@
       "FUKUCHI, Kentarou <fukuchi@users.sourceforge.net>, "
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rippletv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rippletv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rippletv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rippletv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_rippletv_start);
 
diff --git a/gst/effectv/gstshagadelic.c b/gst/effectv/gstshagadelic.c
index 2564cb3..721a151 100644
--- a/gst/effectv/gstshagadelic.c
+++ b/gst/effectv/gstshagadelic.c
@@ -238,10 +238,10 @@
       "Oh behave, ShagedelicTV makes images shagadelic!",
       "Wim Taymans <wim.taymans@chello.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_shagadelictv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_shagadelictv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_shagadelictv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_shagadelictv_src_template);
 
   vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_shagadelictv_set_info);
   vfilter_class->transform_frame =
diff --git a/gst/effectv/gststreak.c b/gst/effectv/gststreak.c
index be7149c..44ed150 100644
--- a/gst/effectv/gststreak.c
+++ b/gst/effectv/gststreak.c
@@ -246,10 +246,10 @@
       "FUKUCHI, Kentarou <fukuchi@users.sourceforge.net>, "
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_streaktv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_streaktv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_streaktv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_streaktv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_streaktv_start);
 
diff --git a/gst/effectv/gstvertigo.c b/gst/effectv/gstvertigo.c
index 3e575cb..f49a7d2 100644
--- a/gst/effectv/gstvertigo.c
+++ b/gst/effectv/gstvertigo.c
@@ -305,10 +305,10 @@
       "A loopback alpha blending effector with rotating and scaling",
       "Wim Taymans <wim.taymans@gmail.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_vertigotv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_vertigotv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_vertigotv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_vertigotv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_vertigotv_start);
 
diff --git a/gst/effectv/gstwarp.c b/gst/effectv/gstwarp.c
index 327c9de..841ed8c 100644
--- a/gst/effectv/gstwarp.c
+++ b/gst/effectv/gstwarp.c
@@ -245,10 +245,10 @@
       "WarpTV does realtime goo'ing of the video input",
       "Sam Lantinga <slouken@devolution.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_warptv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_warptv_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_warptv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_warptv_src_template);
 
   trans_class->start = GST_DEBUG_FUNCPTR (gst_warptv_start);
 
diff --git a/gst/equalizer/Makefile.in b/gst/equalizer/Makefile.in
index 63295a0..eb7222c 100644
--- a/gst/equalizer/Makefile.in
+++ b/gst/equalizer/Makefile.in
@@ -100,6 +100,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -347,6 +348,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -453,6 +455,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -520,6 +525,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/flv/Makefile.in b/gst/flv/Makefile.in
index 8093778..e89eded 100644
--- a/gst/flv/Makefile.in
+++ b/gst/flv/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/flv/gstflvdemux.c b/gst/flv/gstflvdemux.c
index ae73467..e324b18 100644
--- a/gst/flv/gstflvdemux.c
+++ b/gst/flv/gstflvdemux.c
@@ -114,6 +114,8 @@
 
 static GstIndex *gst_flv_demux_get_index (GstElement * element);
 
+static void gst_flv_demux_push_tags (GstFlvDemux * demux);
+
 static void
 gst_flv_demux_parse_and_add_index_entry (GstFlvDemux * demux, GstClockTime ts,
     guint64 pos, gboolean keyframe)
@@ -368,6 +370,12 @@
         demux->h = d;
       } else if (!strcmp (tag_name, "framerate")) {
         demux->framerate = d;
+      } else if (!strcmp (tag_name, "audiodatarate")) {
+        gst_tag_list_add (demux->audio_tags, GST_TAG_MERGE_REPLACE,
+            GST_TAG_NOMINAL_BITRATE, (guint) (d * 1024), NULL);
+      } else if (!strcmp (tag_name, "videodatarate")) {
+        gst_tag_list_add (demux->video_tags, GST_TAG_MERGE_REPLACE,
+            GST_TAG_NOMINAL_BITRATE, (guint) (d * 1024), NULL);
       } else {
         GST_INFO_OBJECT (demux, "Tag \'%s\' not handled", tag_name);
       }
@@ -561,6 +569,28 @@
   return FALSE;
 }
 
+static void
+gst_flv_demux_clear_tags (GstFlvDemux * demux)
+{
+  GST_DEBUG_OBJECT (demux, "clearing taglist");
+
+  if (demux->taglist) {
+    gst_tag_list_unref (demux->taglist);
+  }
+  demux->taglist = gst_tag_list_new_empty ();
+  gst_tag_list_set_scope (demux->taglist, GST_TAG_SCOPE_GLOBAL);
+
+  if (demux->audio_tags) {
+    gst_tag_list_unref (demux->audio_tags);
+  }
+  demux->audio_tags = gst_tag_list_new_empty ();
+
+  if (demux->video_tags) {
+    gst_tag_list_unref (demux->video_tags);
+  }
+  demux->video_tags = gst_tag_list_new_empty ();
+}
+
 static GstFlowReturn
 gst_flv_demux_parse_tag_script (GstFlvDemux * demux, GstBuffer * buffer)
 {
@@ -594,6 +624,8 @@
       gboolean end_marker = FALSE;
       GST_DEBUG_OBJECT (demux, "we have a metadata script object");
 
+      gst_flv_demux_clear_tags (demux);
+
       if (!gst_byte_reader_get_uint8 (&reader, &type)) {
         g_free (function_name);
         goto cleanup;
@@ -636,7 +668,7 @@
           goto cleanup;
       }
 
-      demux->push_tags = TRUE;
+      gst_flv_demux_push_tags (demux);
     }
 
     g_free (function_name);
@@ -689,7 +721,6 @@
     guint32 rate, guint32 channels, guint32 width)
 {
   GstCaps *caps = NULL, *old_caps;
-  gchar *codec_name = NULL;
   gboolean ret = FALSE;
   guint adjusted_rate = rate;
   GstEvent *event;
@@ -871,18 +902,10 @@
     demux->width = width;
 
     if (caps) {
-      codec_name = gst_pb_utils_get_codec_description (caps);
-
-      if (codec_name) {
-        if (demux->taglist == NULL)
-          demux->taglist = gst_tag_list_new_empty ();
-        gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
-            GST_TAG_AUDIO_CODEC, codec_name, NULL);
-        g_free (codec_name);
-      }
-
       GST_DEBUG_OBJECT (demux->audio_pad, "successfully negotiated caps %"
           GST_PTR_FORMAT, caps);
+
+      gst_flv_demux_push_tags (demux);
     } else {
       GST_DEBUG_OBJECT (demux->audio_pad, "delayed setting caps");
     }
@@ -915,25 +938,49 @@
 }
 
 static void
+gst_flv_demux_add_codec_tag (GstFlvDemux * demux, const gchar * tag,
+    GstPad * pad)
+{
+  if (pad) {
+    GstCaps *caps = gst_pad_get_current_caps (pad);
+
+    if (caps) {
+      gchar *codec_name = gst_pb_utils_get_codec_description (caps);
+
+      if (codec_name) {
+        gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
+            tag, codec_name, NULL);
+        g_free (codec_name);
+      }
+
+      gst_caps_unref (caps);
+    }
+  }
+}
+
+static void
 gst_flv_demux_push_tags (GstFlvDemux * demux)
 {
-  if (demux->has_audio && !demux->audio_pad) {
-    GST_DEBUG_OBJECT (demux,
-        "Waiting for audio stream pad to come up before we can push tags");
-    return;
+  gst_flv_demux_add_codec_tag (demux, GST_TAG_AUDIO_CODEC, demux->audio_pad);
+  gst_flv_demux_add_codec_tag (demux, GST_TAG_VIDEO_CODEC, demux->video_pad);
+
+  GST_DEBUG_OBJECT (demux, "pushing %" GST_PTR_FORMAT, demux->taglist);
+
+  gst_flv_demux_push_src_event (demux,
+      gst_event_new_tag (gst_tag_list_copy (demux->taglist)));
+
+  if (demux->audio_pad) {
+    GST_DEBUG_OBJECT (demux->audio_pad, "pushing audio %" GST_PTR_FORMAT,
+        demux->audio_tags);
+    gst_pad_push_event (demux->audio_pad,
+        gst_event_new_tag (gst_tag_list_copy (demux->audio_tags)));
   }
-  if (demux->has_video && !demux->video_pad) {
-    GST_DEBUG_OBJECT (demux,
-        "Waiting for video stream pad to come up before we can push tags");
-    return;
-  }
-  if (demux->taglist) {
-    GST_DEBUG_OBJECT (demux, "pushing tags out %" GST_PTR_FORMAT,
-        demux->taglist);
-    gst_tag_list_set_scope (demux->taglist, GST_TAG_SCOPE_GLOBAL);
-    gst_flv_demux_push_src_event (demux, gst_event_new_tag (demux->taglist));
-    demux->taglist = gst_tag_list_new_empty ();
-    demux->push_tags = FALSE;
+
+  if (demux->video_pad) {
+    GST_DEBUG_OBJECT (demux->video_pad, "pushing video %" GST_PTR_FORMAT,
+        demux->video_tags);
+    gst_pad_push_event (demux->video_pad,
+        gst_event_new_tag (gst_tag_list_copy (demux->video_tags)));
   }
 }
 
@@ -1058,12 +1105,14 @@
         if (demux->audio_codec_data) {
           gst_buffer_unref (demux->audio_codec_data);
         }
-        demux->audio_codec_data = gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY,
+        demux->audio_codec_data =
+            gst_buffer_copy_region (buffer, GST_BUFFER_COPY_MEMORY,
             7 + codec_data, demux->tag_data_size - codec_data);
 
         /* Use that buffer data in the caps */
         if (demux->audio_pad)
-          gst_flv_demux_audio_negotiate (demux, codec_tag, rate, channels, width);
+          gst_flv_demux_audio_negotiate (demux, codec_tag, rate, channels,
+              width);
         goto beach;
       }
       case 1:
@@ -1135,7 +1184,6 @@
       GST_DEBUG_OBJECT (demux, "emitting no more pads");
       gst_element_no_more_pads (GST_ELEMENT (demux));
       demux->no_more_pads = TRUE;
-      demux->push_tags = TRUE;
     }
   }
 
@@ -1154,10 +1202,6 @@
     }
   }
 
-  /* Push taglist if present */
-  if (G_UNLIKELY (demux->push_tags))
-    gst_flv_demux_push_tags (demux);
-
   /* Check if we have anything to push */
   if (demux->tag_data_size <= codec_data) {
     GST_LOG_OBJECT (demux, "Nothing left in this tag, returning");
@@ -1239,7 +1283,6 @@
         " after 6 seconds of audio");
     gst_element_no_more_pads (GST_ELEMENT_CAST (demux));
     demux->no_more_pads = TRUE;
-    demux->push_tags = TRUE;
   }
 
   /* Push downstream */
@@ -1271,7 +1314,6 @@
 {
   gboolean ret = FALSE;
   GstCaps *caps = NULL, *old_caps;
-  gchar *codec_name = NULL;
   GstEvent *event;
   gchar *stream_id;
 
@@ -1301,6 +1343,18 @@
           gst_caps_new_simple ("video/x-h264", "stream-format", G_TYPE_STRING,
           "avc", NULL);
       break;
+      /* The following two are non-standard but apparently used, see in ffmpeg
+       * https://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/flvdec.c;h=2bf1e059e1cbeeb79e4af9542da23f4560e1cf59;hb=b18d6c58000beed872d6bb1fe7d0fbe75ae26aef#l254
+       * https://git.videolan.org/?p=ffmpeg.git;a=blob;f=libavformat/flvdec.c;h=2bf1e059e1cbeeb79e4af9542da23f4560e1cf59;hb=b18d6c58000beed872d6bb1fe7d0fbe75ae26aef#l282
+       */
+    case 8:
+      caps = gst_caps_new_empty_simple ("video/x-h263");
+      break;
+    case 9:
+      caps =
+          gst_caps_new_simple ("video/mpeg", "mpegversion", G_TYPE_INT, 4,
+          "systemstream", G_TYPE_BOOLEAN, FALSE, NULL);
+      break;
     default:
       GST_WARNING_OBJECT (demux, "unsupported video codec tag %u", codec_tag);
   }
@@ -1364,18 +1418,10 @@
     demux->video_codec_tag = codec_tag;
 
     if (caps) {
-      codec_name = gst_pb_utils_get_codec_description (caps);
-
-      if (codec_name) {
-        if (demux->taglist == NULL)
-          demux->taglist = gst_tag_list_new_empty ();
-        gst_tag_list_add (demux->taglist, GST_TAG_MERGE_REPLACE,
-            GST_TAG_VIDEO_CODEC, codec_name, NULL);
-        g_free (codec_name);
-      }
-
       GST_DEBUG_OBJECT (demux->video_pad, "successfully negotiated caps %"
           GST_PTR_FORMAT, caps);
+
+      gst_flv_demux_push_tags (demux);
     } else {
       GST_DEBUG_OBJECT (demux->video_pad, "delayed setting caps");
     }
@@ -1554,7 +1600,6 @@
       GST_DEBUG_OBJECT (demux, "emitting no more pads");
       gst_element_no_more_pads (GST_ELEMENT (demux));
       demux->no_more_pads = TRUE;
-      demux->push_tags = TRUE;
     }
   }
 
@@ -1573,10 +1618,6 @@
     demux->got_par = FALSE;
   }
 
-  /* Push taglist if present */
-  if (G_UNLIKELY (demux->push_tags))
-    gst_flv_demux_push_tags (demux);
-
   /* Check if we have anything to push */
   if (demux->tag_data_size <= codec_data) {
     GST_LOG_OBJECT (demux, "Nothing left in this tag, returning");
@@ -1663,7 +1704,6 @@
         " after 6 seconds of video");
     gst_element_no_more_pads (GST_ELEMENT_CAST (demux));
     demux->no_more_pads = TRUE;
-    demux->push_tags = TRUE;
   }
 
   /* Push downstream */
@@ -1911,7 +1951,6 @@
 
   demux->has_audio = FALSE;
   demux->has_video = FALSE;
-  demux->push_tags = FALSE;
   demux->got_par = FALSE;
 
   demux->indexed = FALSE;
@@ -1983,6 +2022,8 @@
     g_array_free (demux->filepositions, TRUE);
     demux->filepositions = NULL;
   }
+
+  gst_flv_demux_clear_tags (demux);
 }
 
 /*
@@ -2688,9 +2729,7 @@
           GST_WARNING_OBJECT (demux, "failed pushing EOS on streams");
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
-      GST_ELEMENT_ERROR (demux, STREAM, FAILED,
-          ("Internal data stream error."),
-          ("stream stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (demux, ret);
       gst_flv_demux_push_src_event (demux, gst_event_new_eos ());
     }
     gst_object_unref (demux);
@@ -3481,6 +3520,16 @@
     demux->taglist = NULL;
   }
 
+  if (demux->audio_tags) {
+    gst_tag_list_unref (demux->audio_tags);
+    demux->audio_tags = NULL;
+  }
+
+  if (demux->video_tags) {
+    gst_tag_list_unref (demux->video_tags);
+    demux->video_tags = NULL;
+  }
+
   if (demux->flowcombiner) {
     gst_flow_combiner_free (demux->flowcombiner);
     demux->flowcombiner = NULL;
@@ -3545,15 +3594,14 @@
   gstelement_class->get_index = GST_DEBUG_FUNCPTR (gst_flv_demux_get_index);
 #endif
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&flv_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &flv_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_src_template);
   gst_element_class_set_static_metadata (gstelement_class, "FLV Demuxer",
-      "Codec/Demuxer",
-      "Demux FLV feeds into digital streams",
+      "Codec/Demuxer", "Demux FLV feeds into digital streams",
       "Julien Moutte <julien@moutte.net>");
 }
 
@@ -3575,7 +3623,6 @@
   gst_element_add_pad (GST_ELEMENT (demux), demux->sinkpad);
 
   demux->adapter = gst_adapter_new ();
-  demux->taglist = gst_tag_list_new_empty ();
   demux->flowcombiner = gst_flow_combiner_new ();
   gst_segment_init (&demux->segment, GST_FORMAT_TIME);
 
diff --git a/gst/flv/gstflvdemux.h b/gst/flv/gstflvdemux.h
index aa8d6ac..4eb1791 100644
--- a/gst/flv/gstflvdemux.h
+++ b/gst/flv/gstflvdemux.h
@@ -82,6 +82,8 @@
   GstEvent *new_seg_event;
 
   GstTagList *taglist;
+  GstTagList *audio_tags;
+  GstTagList *video_tags;
 
   GstFlvDemuxState state;
 
@@ -126,7 +128,6 @@
   gboolean need_header;
   gboolean has_audio;
   gboolean has_video;
-  gboolean push_tags;
   gboolean strict;
   gboolean flushing;
 
diff --git a/gst/flv/gstflvmux.c b/gst/flv/gstflvmux.c
index 10db67f..2080a3c 100644
--- a/gst/flv/gstflvmux.c
+++ b/gst/flv/gstflvmux.c
@@ -186,12 +186,11 @@
       GST_DEBUG_FUNCPTR (gst_flv_mux_request_new_pad);
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_flv_mux_release_pad);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&videosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audiosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &videosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audiosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
   gst_element_class_set_static_metadata (gstelement_class, "FLV muxer",
       "Codec/Muxer",
       "Muxes video/audio streams into a FLV stream",
diff --git a/gst/flx/Makefile.in b/gst/flx/Makefile.in
index 5a938cf..90df6f6 100644
--- a/gst/flx/Makefile.in
+++ b/gst/flx/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/goom/Makefile.in b/gst/goom/Makefile.in
index ad13250..0357eaf 100644
--- a/gst/goom/Makefile.in
+++ b/gst/goom/Makefile.in
@@ -98,6 +98,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -360,6 +361,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -466,6 +468,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -533,6 +538,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/goom/gstgoom.c b/gst/goom/gstgoom.c
index 7cb1bd8..dbbe941 100644
--- a/gst/goom/gstgoom.c
+++ b/gst/goom/gstgoom.c
@@ -119,10 +119,8 @@
       "Visualization",
       "Takes frames of data and outputs video frames using the GOOM filter",
       "Wim Taymans <wim@fluendo.com>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   visualizer_class->setup = GST_DEBUG_FUNCPTR (gst_goom_setup);
   visualizer_class->render = GST_DEBUG_FUNCPTR (gst_goom_render);
diff --git a/gst/goom2k1/Makefile.in b/gst/goom2k1/Makefile.in
index ddd2578..22655a1 100644
--- a/gst/goom2k1/Makefile.in
+++ b/gst/goom2k1/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/goom2k1/gstgoom.c b/gst/goom2k1/gstgoom.c
index 0c97e94..cfbfcbc 100644
--- a/gst/goom2k1/gstgoom.c
+++ b/gst/goom2k1/gstgoom.c
@@ -104,10 +104,8 @@
       "GOOM: what a GOOM! 2k1 edition", "Visualization",
       "Takes frames of data and outputs video frames using the GOOM 2k1 filter",
       "Wim Taymans <wim@fluendo.com>");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   GST_DEBUG_CATEGORY_INIT (goom2k1_debug, "goom2k1", 0,
       "goom2k1 visualisation element");
diff --git a/gst/icydemux/Makefile.in b/gst/icydemux/Makefile.in
index deaf6b4..039fb86 100644
--- a/gst/icydemux/Makefile.in
+++ b/gst/icydemux/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/icydemux/gsticydemux.c b/gst/icydemux/gsticydemux.c
index dade21b..dc0c266 100644
--- a/gst/icydemux/gsticydemux.c
+++ b/gst/icydemux/gsticydemux.c
@@ -103,10 +103,8 @@
 
   gstelement_class->change_state = gst_icydemux_change_state;
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ICY tag demuxer",
       "Codec/Demuxer/Metadata",
diff --git a/gst/id3demux/Makefile.in b/gst/id3demux/Makefile.in
index 12bdcfb..a391eed 100644
--- a/gst/id3demux/Makefile.in
+++ b/gst/id3demux/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/id3demux/gstid3demux.c b/gst/id3demux/gstid3demux.c
index c67a6ff..d491bb8 100644
--- a/gst/id3demux/gstid3demux.c
+++ b/gst/id3demux/gstid3demux.c
@@ -108,8 +108,7 @@
           "and ID3v2 tags are present", DEFAULT_PREFER_V1,
           G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "ID3 tag demuxer",
       "Codec/Demuxer/Metadata",
diff --git a/gst/imagefreeze/Makefile.in b/gst/imagefreeze/Makefile.in
index 4b02c41..487dcc8 100644
--- a/gst/imagefreeze/Makefile.in
+++ b/gst/imagefreeze/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/imagefreeze/gstimagefreeze.c b/gst/imagefreeze/gstimagefreeze.c
index 8b1bfc5..f122645 100644
--- a/gst/imagefreeze/gstimagefreeze.c
+++ b/gst/imagefreeze/gstimagefreeze.c
@@ -101,10 +101,10 @@
       "Generates a still frame stream from an image",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_pad_template);
 }
 
 static void
@@ -846,9 +846,7 @@
     } else if (flow_ret == GST_FLOW_NOT_LINKED || flow_ret < GST_FLOW_EOS) {
       GstEvent *e = gst_event_new_eos ();
 
-      GST_ELEMENT_ERROR (self, STREAM, FAILED,
-          ("Internal data stream error."),
-          ("stream stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (self, flow_ret);
 
       if (self->seqnum)
         gst_event_set_seqnum (e, self->seqnum);
diff --git a/gst/interleave/Makefile.in b/gst/interleave/Makefile.in
index d5cd553..d142f96 100644
--- a/gst/interleave/Makefile.in
+++ b/gst/interleave/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/interleave/deinterleave.c b/gst/interleave/deinterleave.c
index 81ebbc2..b38fcbe 100644
--- a/gst/interleave/deinterleave.c
+++ b/gst/interleave/deinterleave.c
@@ -175,10 +175,8 @@
       "Andy Wingo <wingo at pobox.com>, " "Iain <iain@prettypeople.org>, "
       "Sebastian Dröge <slomo@circular-chaos.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gstelement_class->change_state = gst_deinterleave_change_state;
 
@@ -558,6 +556,19 @@
   GstIteratorResult res;
   GValue v = G_VALUE_INIT;
 
+  if (pad != self->sink) {
+    ret = gst_pad_get_current_caps (pad);
+    if (ret) {
+      if (filter) {
+        GstCaps *tmp =
+            gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
+        gst_caps_unref (ret);
+        ret = tmp;
+      }
+      return ret;
+    }
+  }
+
   /* Intersect all of our pad template caps with the peer caps of the pad
    * to get all formats that are possible up- and downstream.
    *
@@ -638,7 +649,7 @@
   if (filter) {
     GstCaps *aux;
 
-    aux = gst_caps_intersect (ret, filter);
+    aux = gst_caps_intersect_full (filter, ret, GST_CAPS_INTERSECT_FIRST);
     gst_caps_unref (ret);
     ret = aux;
   }
diff --git a/gst/interleave/interleave.c b/gst/interleave/interleave.c
index 45d72f9..b2ac76e 100644
--- a/gst/interleave/interleave.c
+++ b/gst/interleave/interleave.c
@@ -359,10 +359,8 @@
       "Andy Wingo <wingo at pobox.com>, "
       "Sebastian Dröge <slomo@circular-chaos.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   /* Reference GstInterleavePad class to have the type registered from
    * a threadsafe context
diff --git a/gst/isomp4/GstQTMux.prs b/gst/isomp4/GstQTMux.prs
new file mode 100644
index 0000000..be1e644
--- /dev/null
+++ b/gst/isomp4/GstQTMux.prs
@@ -0,0 +1,6 @@
+[_presets_]
+version=1.6.0
+element-name=GstQTMux
+
+[Profile YouTube]
+faststart=true
diff --git a/gst/isomp4/Makefile.am b/gst/isomp4/Makefile.am
index 8cfdd15..2e560a2 100644
--- a/gst/isomp4/Makefile.am
+++ b/gst/isomp4/Makefile.am
@@ -18,6 +18,9 @@
 	properties.c gstqtmuxmap.c gstisoff.c
 libgstisomp4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
 
+presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
+preset_DATA = GstQTMux.prs
+
 noinst_HEADERS = \
 	qtatomparser.h   \
 	qtdemux.h        \
@@ -38,4 +41,5 @@
 
 EXTRA_DIST = \
 	gstqtmux-doc.c \
-	gstqtmux-doc.h
+	gstqtmux-doc.h \
+	$(preset_DATA)
diff --git a/gst/isomp4/Makefile.in b/gst/isomp4/Makefile.in
index d1651cb..44461b1 100644
--- a/gst/isomp4/Makefile.in
+++ b/gst/isomp4/Makefile.in
@@ -15,6 +15,7 @@
 @SET_MAKE@
 
 
+
 VPATH = @srcdir@
 am__is_gnu_make = { \
   if test -z '$(MAKELEVEL)'; then \
@@ -99,6 +100,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -159,7 +161,7 @@
     || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
          $(am__cd) "$$dir" && rm -f $$files; }; \
   }
-am__installdirs = "$(DESTDIR)$(plugindir)"
+am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(presetdir)"
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstisomp4_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -224,6 +226,7 @@
     n|no|NO) false;; \
     *) (install-info --version) >/dev/null 2>&1;; \
   esac
+DATA = $(preset_DATA)
 HEADERS = $(noinst_HEADERS)
 am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
 # Read a list of newline-separated strings from the standard input,
@@ -350,6 +353,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -456,6 +460,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -523,6 +530,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -592,6 +600,8 @@
 	properties.c gstqtmuxmap.c gstisoff.c
 
 libgstisomp4_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
+presetdir = $(datadir)/gstreamer-$(GST_API_VERSION)/presets
+preset_DATA = GstQTMux.prs
 noinst_HEADERS = \
 	qtatomparser.h   \
 	qtdemux.h        \
@@ -612,7 +622,8 @@
 
 EXTRA_DIST = \
 	gstqtmux-doc.c \
-	gstqtmux-doc.h
+	gstqtmux-doc.h \
+	$(preset_DATA)
 
 all: all-am
 
@@ -834,6 +845,27 @@
 
 clean-libtool:
 	-rm -rf .libs _libs
+install-presetDATA: $(preset_DATA)
+	@$(NORMAL_INSTALL)
+	@list='$(preset_DATA)'; test -n "$(presetdir)" || list=; \
+	if test -n "$$list"; then \
+	  echo " $(MKDIR_P) '$(DESTDIR)$(presetdir)'"; \
+	  $(MKDIR_P) "$(DESTDIR)$(presetdir)" || exit 1; \
+	fi; \
+	for p in $$list; do \
+	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(presetdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(presetdir)" || exit $$?; \
+	done
+
+uninstall-presetDATA:
+	@$(NORMAL_UNINSTALL)
+	@list='$(preset_DATA)'; test -n "$(presetdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	dir='$(DESTDIR)$(presetdir)'; $(am__uninstall_files_from_dir)
 
 ID: $(am__tagged_files)
 	$(am__define_uniq_tagged_files); mkid -fID $$unique
@@ -919,9 +951,9 @@
 	done
 check-am: all-am
 check: check-am
-all-am: Makefile $(LTLIBRARIES) $(HEADERS)
+all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS)
 installdirs:
-	for dir in "$(DESTDIR)$(plugindir)"; do \
+	for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(presetdir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -977,7 +1009,7 @@
 
 info-am:
 
-install-data-am: install-pluginLTLIBRARIES
+install-data-am: install-pluginLTLIBRARIES install-presetDATA
 
 install-dvi: install-dvi-am
 
@@ -1023,7 +1055,7 @@
 
 ps-am:
 
-uninstall-am: uninstall-pluginLTLIBRARIES
+uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 .MAKE: install-am install-strip
 
@@ -1035,12 +1067,12 @@
 	install-data-am install-dvi install-dvi-am install-exec \
 	install-exec-am install-html install-html-am install-info \
 	install-info-am install-man install-pdf install-pdf-am \
-	install-pluginLTLIBRARIES install-ps install-ps-am \
-	install-strip installcheck installcheck-am installdirs \
-	maintainer-clean maintainer-clean-generic mostlyclean \
-	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
-	pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
-	uninstall-pluginLTLIBRARIES
+	install-pluginLTLIBRARIES install-presetDATA install-ps \
+	install-ps-am install-strip installcheck installcheck-am \
+	installdirs maintainer-clean maintainer-clean-generic \
+	mostlyclean mostlyclean-compile mostlyclean-generic \
+	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+	uninstall-am uninstall-pluginLTLIBRARIES uninstall-presetDATA
 
 .PRECIOUS: Makefile
 
diff --git a/gst/isomp4/atoms.c b/gst/isomp4/atoms.c
index e0ec513..f53004e 100644
--- a/gst/isomp4/atoms.c
+++ b/gst/isomp4/atoms.c
@@ -398,6 +398,96 @@
 }
 
 static void
+atom_tcmi_init (AtomTCMI * tcmi)
+{
+  guint8 flags[3] = { 0, 0, 0 };
+
+  atom_full_init (&tcmi->header, FOURCC_tcmi, 0, 0, 0, flags);
+}
+
+static void
+atom_tcmi_clear (AtomTCMI * tcmi)
+{
+  atom_full_clear (&tcmi->header);
+  tcmi->text_font = 0;
+  tcmi->text_face = 0;
+  tcmi->text_size = 0;
+  tcmi->text_color[0] = 0;
+  tcmi->text_color[1] = 0;
+  tcmi->text_color[2] = 0;
+  tcmi->bg_color[0] = 0;
+  tcmi->bg_color[1] = 0;
+  tcmi->bg_color[2] = 0;
+  g_free (tcmi->font_name);
+  tcmi->font_name = NULL;
+}
+
+static void
+atom_tmcd_init (AtomTMCD * tmcd)
+{
+  atom_header_set (&tmcd->header, FOURCC_tmcd, 0, 0);
+  atom_tcmi_init (&tmcd->tcmi);
+}
+
+static void
+atom_tmcd_clear (AtomTMCD * tmcd)
+{
+  atom_clear (&tmcd->header);
+  atom_tcmi_clear (&tmcd->tcmi);
+}
+
+static void
+atom_gmin_init (AtomGMIN * gmin)
+{
+  guint8 flags[3] = { 0, 0, 0 };
+
+  atom_full_init (&gmin->header, FOURCC_gmin, 0, 0, 0, flags);
+}
+
+static void
+atom_gmin_clear (AtomGMIN * gmin)
+{
+  atom_full_clear (&gmin->header);
+  gmin->graphics_mode = 0;
+  gmin->opcolor[0] = 0;
+  gmin->opcolor[1] = 0;
+  gmin->opcolor[2] = 0;
+  gmin->balance = 0;
+  gmin->reserved = 0;
+}
+
+static void
+atom_gmhd_init (AtomGMHD * gmhd)
+{
+  atom_header_set (&gmhd->header, FOURCC_gmhd, 0, 0);
+  atom_gmin_init (&gmhd->gmin);
+  atom_tmcd_init (&gmhd->tmcd);
+}
+
+static void
+atom_gmhd_clear (AtomGMHD * gmhd)
+{
+  atom_clear (&gmhd->header);
+  atom_gmin_clear (&gmhd->gmin);
+  atom_tmcd_clear (&gmhd->tmcd);
+}
+
+static AtomGMHD *
+atom_gmhd_new (void)
+{
+  AtomGMHD *gmhd = g_new0 (AtomGMHD, 1);
+  atom_gmhd_init (gmhd);
+  return gmhd;
+}
+
+static void
+atom_gmhd_free (AtomGMHD * gmhd)
+{
+  atom_gmhd_clear (gmhd);
+  g_free (gmhd);
+}
+
+static void
 atom_sample_entry_init (SampleTableEntry * se, guint32 type)
 {
   atom_header_set (&se->header, type, 0, 0);
@@ -452,6 +542,30 @@
 }
 
 static void
+sample_entry_tmcd_init (SampleTableEntryTMCD * tmcd)
+{
+  atom_sample_entry_init (&tmcd->se, FOURCC_tmcd);
+
+  tmcd->tc_flags = 0;
+  tmcd->timescale = 0;
+  tmcd->frame_duration = 0;
+  tmcd->n_frames = 0;
+
+  tmcd->name.language_code = 0;
+  g_free (tmcd->name.name);
+  tmcd->name.name = NULL;
+}
+
+static SampleTableEntryTMCD *
+sample_entry_tmcd_new (void)
+{
+  SampleTableEntryTMCD *tmcd = g_new0 (SampleTableEntryTMCD, 1);
+
+  sample_entry_tmcd_init (tmcd);
+  return tmcd;
+}
+
+static void
 sample_entry_mp4v_init (SampleTableEntryMP4V * mp4v, AtomsContext * context)
 {
   atom_sample_entry_init (&mp4v->se, FOURCC_mp4v);
@@ -934,6 +1048,7 @@
   minf->vmhd = NULL;
   minf->smhd = NULL;
   minf->hmhd = NULL;
+  minf->gmhd = NULL;
 
   if (context->flavor == ATOMS_TREE_FLAVOR_MOV) {
     minf->hdlr = atom_hdlr_new (context);
@@ -961,6 +1076,10 @@
     atom_hmhd_free (minf->hmhd);
     minf->hmhd = NULL;
   }
+  if (minf->gmhd) {
+    atom_gmhd_free (minf->gmhd);
+    minf->gmhd = NULL;
+  }
 }
 
 static void
@@ -1140,6 +1259,40 @@
     atom_info_list_free (udta->entries);
 }
 
+static void
+atom_tref_init (AtomTREF * tref, guint32 reftype)
+{
+  atom_header_set (&tref->header, FOURCC_tref, 0, 0);
+  tref->reftype = reftype;
+  atom_array_init (&tref->entries, 128);
+}
+
+static void
+atom_tref_clear (AtomTREF * tref)
+{
+  atom_clear (&tref->header);
+  tref->reftype = 0;
+  atom_array_clear (&tref->entries);
+}
+
+AtomTREF *
+atom_tref_new (guint32 reftype)
+{
+  AtomTREF *tref;
+
+  tref = g_new0 (AtomTREF, 1);
+  atom_tref_init (tref, reftype);
+
+  return tref;
+}
+
+static void
+atom_tref_free (AtomTREF * tref)
+{
+  atom_tref_clear (tref);
+  g_free (tref);
+}
+
 /* Clear added tags, but keep the context/flavor the same */
 void
 atom_udta_clear_tags (AtomUDTA * udta)
@@ -1255,6 +1408,7 @@
   atom_udta_init (&trak->udta, context);
   trak->edts = NULL;
   atom_mdia_init (&trak->mdia, context);
+  trak->tref = NULL;
 }
 
 AtomTRAK *
@@ -1275,6 +1429,8 @@
     atom_edts_free (trak->edts);
   atom_udta_clear (&trak->udta);
   atom_mdia_clear (&trak->mdia);
+  if (trak->tref)
+    atom_tref_free (trak->tref);
 }
 
 static void
@@ -1651,6 +1807,91 @@
   return original_offset - *offset;
 }
 
+static guint64
+atom_tcmi_copy_data (AtomTCMI * tcmi, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_full_copy_data (&tcmi->header, buffer, size, offset)) {
+    return 0;
+  }
+  prop_copy_uint16 (tcmi->text_font, buffer, size, offset);
+  prop_copy_uint16 (tcmi->text_face, buffer, size, offset);
+  prop_copy_uint16 (tcmi->text_size, buffer, size, offset);
+  prop_copy_uint16 (tcmi->text_color[0], buffer, size, offset);
+  prop_copy_uint16 (tcmi->text_color[1], buffer, size, offset);
+  prop_copy_uint16 (tcmi->text_color[2], buffer, size, offset);
+  prop_copy_uint16 (tcmi->bg_color[0], buffer, size, offset);
+  prop_copy_uint16 (tcmi->bg_color[1], buffer, size, offset);
+  prop_copy_uint16 (tcmi->bg_color[2], buffer, size, offset);
+  /* reserved */
+  prop_copy_uint16 (0, buffer, size, offset);
+  prop_copy_size_string ((guint8 *) tcmi->font_name, strlen (tcmi->font_name),
+      buffer, size, offset);
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return original_offset - *offset;
+}
+
+static guint64
+atom_tmcd_copy_data (AtomTMCD * tmcd, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_copy_data (&tmcd->header, buffer, size, offset)) {
+    return 0;
+  }
+  if (!atom_tcmi_copy_data (&tmcd->tcmi, buffer, size, offset)) {
+    return 0;
+  }
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return original_offset - *offset;
+}
+
+static guint64
+atom_gmin_copy_data (AtomGMIN * gmin, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_full_copy_data (&gmin->header, buffer, size, offset)) {
+    return 0;
+  }
+  prop_copy_uint16 (gmin->graphics_mode, buffer, size, offset);
+  prop_copy_uint16 (gmin->opcolor[0], buffer, size, offset);
+  prop_copy_uint16 (gmin->opcolor[1], buffer, size, offset);
+  prop_copy_uint16 (gmin->opcolor[2], buffer, size, offset);
+  prop_copy_uint8 (gmin->balance, buffer, size, offset);
+  /* reserved */
+  prop_copy_uint8 (0, buffer, size, offset);
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return original_offset - *offset;
+}
+
+static guint64
+atom_gmhd_copy_data (AtomGMHD * gmhd, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_copy_data (&gmhd->header, buffer, size, offset)) {
+    return 0;
+  }
+  if (!atom_gmin_copy_data (&gmhd->gmin, buffer, size, offset)) {
+    return 0;
+  }
+  if (!atom_tmcd_copy_data (&gmhd->tmcd, buffer, size, offset)) {
+    return 0;
+  }
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return original_offset - *offset;
+}
+
 static gboolean
 atom_url_same_file_flag (AtomURL * url)
 {
@@ -1874,7 +2115,8 @@
     Atom atom;
 
     atom_header_set (&atom, FOURCC_ftab, 18, 0);
-    atom_copy_data (&atom, buffer, size, offset);
+    if (!atom_copy_data (&atom, buffer, size, offset))
+      return 0;
     prop_copy_uint16 (1, buffer, size, offset); /* Count must be 1 */
     prop_copy_uint16 (1, buffer, size, offset); /* Font id: 1 */
     prop_copy_size_string ((guint8 *) "Serif", 5, buffer, size, offset);
@@ -1884,6 +2126,45 @@
   return *offset - original_offset;
 }
 
+static guint64
+sample_entry_tmcd_copy_data (SampleTableEntryTMCD * tmcd, guint8 ** buffer,
+    guint64 * size, guint64 * offset)
+{
+  guint64 original_offset = *offset;
+
+  if (!atom_sample_entry_copy_data (&tmcd->se, buffer, size, offset)) {
+    return 0;
+  }
+
+  /* reserved */
+  prop_copy_uint32 (0, buffer, size, offset);
+
+  prop_copy_uint32 (tmcd->tc_flags, buffer, size, offset);
+  prop_copy_uint32 (tmcd->timescale, buffer, size, offset);
+  prop_copy_uint32 (tmcd->frame_duration, buffer, size, offset);
+  prop_copy_uint8 (tmcd->n_frames, buffer, size, offset);
+
+  /* reserved */
+  prop_copy_uint8 (0, buffer, size, offset);
+  {
+    Atom atom;
+    guint64 name_offset = *offset;
+
+    atom_header_set (&atom, FOURCC_name, 0, 0);
+    if (!atom_copy_data (&atom, buffer, size, offset))
+      return 0;
+    prop_copy_uint16 (strlen (tmcd->name.name), buffer, size, offset);
+    prop_copy_uint16 (tmcd->name.language_code, buffer, size, offset);
+    prop_copy_fixed_size_string ((guint8 *) tmcd->name.name,
+        strlen (tmcd->name.name), buffer, size, offset);
+
+    atom_write_size (buffer, size, offset, name_offset);
+  }
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return *offset - original_offset;
+}
+
 guint64
 atom_stsz_copy_data (AtomSTSZ * stsz, guint8 ** buffer, guint64 * size,
     guint64 * offset)
@@ -2074,6 +2355,11 @@
                   walker->data, buffer, size, offset)) {
             return 0;
           }
+        } else if (se->kind == TIMECODE) {
+          if (!sample_entry_tmcd_copy_data ((SampleTableEntryTMCD *)
+                  walker->data, buffer, size, offset)) {
+            return 0;
+          }
         } else {
           if (!atom_hint_sample_entry_copy_data (
                   (AtomHintSampleEntry *) walker->data, buffer, size, offset)) {
@@ -2205,6 +2491,10 @@
     if (!atom_hmhd_copy_data (minf->hmhd, buffer, size, offset)) {
       return 0;
     }
+  } else if (minf->gmhd) {
+    if (!atom_gmhd_copy_data (minf->gmhd, buffer, size, offset)) {
+      return 0;
+    }
   }
 
   if (minf->hdlr) {
@@ -2294,6 +2584,34 @@
 }
 
 static guint64
+atom_tref_copy_data (AtomTREF * tref, guint8 ** buffer, guint64 * size,
+    guint64 * offset)
+{
+  guint64 original_offset = *offset;
+  guint i;
+
+  g_assert (atom_array_get_len (&tref->entries) > 0);
+
+  if (!atom_copy_data (&tref->header, buffer, size, offset)) {
+    return 0;
+  }
+
+  prop_copy_uint32 (8 + 4 * atom_array_get_len (&tref->entries), buffer, size,
+      offset);
+  prop_copy_fourcc (tref->reftype, buffer, size, offset);
+  /* minimize realloc */
+  prop_copy_ensure_buffer (buffer, size, offset,
+      4 * atom_array_get_len (&tref->entries));
+  for (i = 0; i < atom_array_get_len (&tref->entries); i++) {
+    prop_copy_uint32 (atom_array_index (&tref->entries, i), buffer, size,
+        offset);
+  }
+
+  atom_write_size (buffer, size, offset, original_offset);
+  return *offset - original_offset;
+}
+
+static guint64
 atom_edts_copy_data (AtomEDTS * edts, guint8 ** buffer, guint64 * size,
     guint64 * offset)
 {
@@ -2489,6 +2807,14 @@
       return 0;
     }
   }
+  if (trak->tref) {
+    /* Make sure we need this atom (there is a referenced track */
+    if (atom_array_get_len (&trak->tref->entries) > 0) {
+      if (!atom_tref_copy_data (trak->tref, buffer, size, offset)) {
+        return 0;
+      }
+    }
+  }
 
   if (!atom_mdia_copy_data (&trak->mdia, buffer, size, offset)) {
     return 0;
@@ -2628,6 +2954,12 @@
     stco64->header.header.type = FOURCC_co64;
 }
 
+void
+atom_tref_add_entry (AtomTREF * tref, guint32 sample)
+{
+  atom_array_append (&tref->entries, sample, 512);
+}
+
 static void
 atom_stss_add_entry (AtomSTSS * stss, guint32 sample)
 {
@@ -2789,6 +3121,36 @@
   }
 }
 
+static void
+timecode_atom_trak_set_duration (AtomTRAK * trak, guint64 duration,
+    guint64 timescale)
+{
+  STTSEntry *entry;
+  GList *iter;
+
+  /* Sanity checks to ensure we have a timecode */
+  g_assert (trak->mdia.minf.gmhd != NULL);
+  g_assert (atom_array_get_len (&trak->mdia.minf.stbl.stts.entries) == 1);
+
+  trak->tkhd.duration = duration;
+  trak->mdia.mdhd.time_info.duration = duration;
+  trak->mdia.mdhd.time_info.timescale = timescale;
+
+  entry = &atom_array_index (&trak->mdia.minf.stbl.stts.entries, 0);
+  entry->sample_delta = duration;
+
+  for (iter = trak->mdia.minf.stbl.stsd.entries; iter;
+      iter = g_list_next (iter)) {
+    SampleTableEntry *entry = iter->data;
+    if (entry->kind == TIMECODE) {
+      SampleTableEntryTMCD *tmcd = (SampleTableEntryTMCD *) entry;
+
+      tmcd->frame_duration = tmcd->frame_duration * timescale / tmcd->timescale;
+      tmcd->timescale = timescale;
+    }
+  }
+}
+
 static guint32
 atom_moov_get_timescale (AtomMOOV * moov)
 {
@@ -2810,10 +3172,23 @@
   while (traks) {
     AtomTRAK *trak = (AtomTRAK *) traks->data;
 
-    atom_trak_update_duration (trak, atom_moov_get_timescale (moov));
-    dur = atom_trak_get_duration (trak);
-    if (dur > duration)
-      duration = dur;
+    /* Skip timecodes for now: they have a placeholder duration */
+    if (trak->mdia.minf.gmhd == NULL) {
+      atom_trak_update_duration (trak, atom_moov_get_timescale (moov));
+      dur = atom_trak_get_duration (trak);
+      if (dur > duration)
+        duration = dur;
+    }
+    traks = g_list_next (traks);
+  }
+  /* Now update the duration of the timecodes */
+  traks = moov->traks;
+  while (traks) {
+    AtomTRAK *trak = (AtomTRAK *) traks->data;
+
+    if (trak->mdia.minf.gmhd != NULL)
+      timecode_atom_trak_set_duration (trak, duration,
+          atom_moov_get_timescale (moov));
     traks = g_list_next (traks);
   }
   moov->mvhd.time_info.duration = duration;
@@ -3323,6 +3698,34 @@
   return mp4a;
 }
 
+static SampleTableEntryTMCD *
+atom_trak_add_timecode_entry (AtomTRAK * trak, AtomsContext * context,
+    GstVideoTimeCode * tc)
+{
+  AtomSTSD *stsd = &trak->mdia.minf.stbl.stsd;
+  SampleTableEntryTMCD *tmcd = sample_entry_tmcd_new ();
+
+  trak->mdia.hdlr.component_type = FOURCC_mhlr;
+  trak->mdia.hdlr.handler_type = FOURCC_tmcd;
+  trak->mdia.hdlr.name = g_strdup ("Time Code Media Handler");
+  trak->mdia.mdhd.time_info.timescale = tc->config.fps_n / tc->config.fps_d;
+
+  tmcd->se.kind = TIMECODE;
+  tmcd->se.data_reference_index = 1;
+  tmcd->tc_flags = TC_24H_MAX;
+  if (tc->config.flags &= GST_VIDEO_TIME_CODE_FLAGS_DROP_FRAME)
+    tmcd->tc_flags |= TC_DROP_FRAME;
+  tmcd->name.language_code = 0;
+  tmcd->name.name = g_strdup ("Tape");
+  tmcd->timescale = tc->config.fps_n;
+  tmcd->frame_duration = tc->config.fps_d;
+  tmcd->n_frames = tc->config.fps_n / tc->config.fps_d;
+
+  stsd->entries = g_list_prepend (stsd->entries, tmcd);
+  stsd->n_entries++;
+  return tmcd;
+}
+
 static SampleTableEntryMP4V *
 atom_trak_add_video_entry (AtomTRAK * trak, AtomsContext * context,
     guint32 type)
@@ -3467,6 +3870,34 @@
   return ste;
 }
 
+SampleTableEntryTMCD *
+atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context,
+    GstVideoTimeCode * tc)
+{
+  SampleTableEntryTMCD *ste;
+  AtomGMHD *gmhd = trak->mdia.minf.gmhd;
+
+  if (context->flavor != ATOMS_TREE_FLAVOR_MOV) {
+    return NULL;
+  }
+
+  ste = atom_trak_add_timecode_entry (trak, context, tc);
+
+  gmhd = atom_gmhd_new ();
+  gmhd->gmin.graphics_mode = 0x0040;
+  gmhd->gmin.opcolor[0] = 0x8000;
+  gmhd->gmin.opcolor[1] = 0x8000;
+  gmhd->gmin.opcolor[2] = 0x8000;
+  gmhd->tmcd.tcmi.text_size = 12;
+  gmhd->tmcd.tcmi.font_name = g_strdup ("Chicago");     /* Pascal string */
+
+  trak->mdia.minf.gmhd = gmhd;
+  trak->is_video = FALSE;
+  trak->is_h264 = FALSE;
+
+  return ste;
+}
+
 static AtomInfo *
 build_pasp_extension (gint par_width, gint par_height)
 {
diff --git a/gst/isomp4/atoms.h b/gst/isomp4/atoms.h
index b105a4d..283d9cf 100644
--- a/gst/isomp4/atoms.h
+++ b/gst/isomp4/atoms.h
@@ -45,6 +45,7 @@
 
 #include <glib.h>
 #include <string.h>
+#include <gst/video/video.h>
 
 #include "descriptors.h"
 #include "properties.h"
@@ -281,6 +282,45 @@
   guint32 sliding_avg_bitrate;
 } AtomHMHD;
 
+typedef struct _AtomTCMI
+{
+  AtomFull header;
+
+  guint16 text_font;
+  guint16 text_face;
+  guint16 text_size;
+  guint16 text_color[3];
+  guint16 bg_color[3];
+  gchar *font_name;
+} AtomTCMI;
+
+typedef struct _AtomTMCD
+{
+  Atom header;
+
+  AtomTCMI tcmi;
+} AtomTMCD;
+
+typedef struct _AtomGMIN
+{
+  AtomFull header;
+
+  guint16 graphics_mode;
+  guint16 opcolor[3];
+  guint8 balance;
+  guint8 reserved;
+
+} AtomGMIN;
+
+typedef struct _AtomGMHD
+{
+  Atom header;
+
+  AtomGMIN gmin;
+  AtomTMCD tmcd;
+
+} AtomGMHD;
+
 typedef struct _AtomURL
 {
   AtomFull header;
@@ -342,6 +382,7 @@
   AUDIO,
   VIDEO,
   SUBTITLE,
+  TIMECODE
 } SampleEntryKind;
 
 typedef struct _SampleTableEntry
@@ -415,6 +456,27 @@
   GList *extension_atoms;
 } SampleTableEntryMP4A;
 
+typedef struct _AtomNAME
+{
+  Atom header;
+
+  guint8 language_code;
+  gchar *name;
+} AtomNAME;
+
+typedef struct _SampleTableEntryTMCD
+{
+  SampleTableEntry se;
+
+  guint32 tc_flags;
+  guint32 timescale;
+  guint32 frame_duration;
+  guint8 n_frames;
+
+  AtomNAME name;
+
+} SampleTableEntryTMCD;
+
 typedef struct _SampleTableEntryTX3G
 {
   SampleTableEntry se;
@@ -463,6 +525,14 @@
   ATOM_ARRAY (STSCEntry) entries;
 } AtomSTSC;
 
+/* FIXME: this can support multiple tracks */
+typedef struct _AtomTREF
+{
+  Atom header;
+
+  guint32 reftype;
+  ATOM_ARRAY (guint32) entries;
+} AtomTREF;
 
 /*
  * used for both STCO and CO64
@@ -514,6 +584,7 @@
   AtomVMHD *vmhd;
   AtomSMHD *smhd;
   AtomHMHD *hmhd;
+  AtomGMHD *gmhd;
 
   AtomHDLR *hdlr;
   AtomDINF dinf;
@@ -616,6 +687,15 @@
   TF_DEFAULT_BASE_IS_MOOF     = 0x020000  /* default-base-is-moof */
 };
 
+/* Timecode flags */
+enum TcFlags
+{
+  TC_DROP_FRAME = 0x0001,   /* Drop-frame timecode */
+  TC_24H_MAX = 0x0002,      /* Whether the timecode wraps after 24 hours */
+  TC_NEGATIVE_OK = 0x0004,  /* Whether negative time values are OK */
+  TC_COUNTER = 0x0008       /* Whether the time value corresponds to a tape counter value */
+};
+
 typedef struct _AtomTRAK
 {
   Atom header;
@@ -624,6 +704,7 @@
   AtomEDTS *edts;
   AtomMDIA mdia;
   AtomUDTA udta;
+  AtomTREF *tref;
 
   /* some helper info for structural conformity checks */
   gboolean is_video;
@@ -937,6 +1018,9 @@
 SampleTableEntryTX3G * atom_trak_set_subtitle_type (AtomTRAK * trak, AtomsContext * context,
                                SubtitleSampleEntry * entry);
 
+SampleTableEntryTMCD *
+atom_trak_set_timecode_type (AtomTRAK * trak, AtomsContext * context, GstVideoTimeCode * tc);
+
 void atom_trak_update_bitrates (AtomTRAK * trak, guint32 avg_bitrate,
                                 guint32 max_bitrate);
 
@@ -997,6 +1081,9 @@
 
 void atom_udta_add_xmp_tags          (AtomUDTA *udta, GstBuffer * xmp);
 
+AtomTREF * atom_tref_new (guint32 reftype);
+void atom_tref_add_entry (AtomTREF * tref, guint32 sample);
+
 #define GST_QT_MUX_DEFAULT_TAG_LANGUAGE   "und" /* undefined/unknown */
 guint16  language_code               (const char * lang);
 
diff --git a/gst/isomp4/fourcc.h b/gst/isomp4/fourcc.h
index 5bb43e9..9e7408b 100644
--- a/gst/isomp4/fourcc.h
+++ b/gst/isomp4/fourcc.h
@@ -215,7 +215,9 @@
 #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_tcmi     GST_MAKE_FOURCC('t','c','m','i')
 #define FOURCC_tkhd     GST_MAKE_FOURCC('t','k','h','d')
+#define FOURCC_tmcd     GST_MAKE_FOURCC('t','m','c','d')
 #define FOURCC_tmpo     GST_MAKE_FOURCC('t','m','p','o')
 #define FOURCC_trak     GST_MAKE_FOURCC('t','r','a','k')
 #define FOURCC_tref     GST_MAKE_FOURCC('t','r','e','f')
diff --git a/gst/isomp4/gstqtmux.c b/gst/isomp4/gstqtmux.c
index 5cabb8f..27f9090 100644
--- a/gst/isomp4/gstqtmux.c
+++ b/gst/isomp4/gstqtmux.c
@@ -504,6 +504,7 @@
   qtpad->total_duration = 0;
   qtpad->total_bytes = 0;
   qtpad->sparse = FALSE;
+  qtpad->tc_trak = NULL;
 
   qtpad->buf_head = 0;
   qtpad->buf_tail = 0;
@@ -604,6 +605,8 @@
   qtmux->last_moov_update = GST_CLOCK_TIME_NONE;
   qtmux->muxed_since_last_update = 0;
   qtmux->reserved_duration_remaining = GST_CLOCK_TIME_NONE;
+  qtmux->first_pts = GST_CLOCK_TIME_NONE;
+  qtmux->tc_pos = -1;
 }
 
 static void
@@ -2498,6 +2501,10 @@
       duration += lateness;
 
       qtpad->trak->tkhd.duration = duration;
+      if (qtpad->tc_trak) {
+        qtpad->tc_trak->tkhd.duration = duration;
+        qtpad->tc_trak->mdia.mdhd.time_info.duration = duration;
+      }
 
       /* And possibly grow the moov duration */
       if (duration > qtmux->moov->mvhd.time_info.duration) {
@@ -2509,6 +2516,33 @@
 }
 
 static GstFlowReturn
+gst_qt_mux_update_timecode (GstQTMux * qtmux)
+{
+  GstSegment segment;
+  GstBuffer *buf;
+  GstMapInfo map;
+  guint64 offset = qtmux->tc_pos;
+
+  g_assert (qtmux->tc_pos != -1);
+
+  gst_segment_init (&segment, GST_FORMAT_BYTES);
+  segment.start = offset;
+  gst_pad_push_event (qtmux->srcpad, gst_event_new_segment (&segment));
+
+  buf = gst_buffer_new_and_alloc (4);
+  gst_buffer_map (buf, &map, GST_MAP_WRITE);
+
+  GST_WRITE_UINT32_BE (map.data,
+      gst_video_time_code_frames_since_daily_jam (qtmux->first_tc));
+  gst_buffer_unmap (buf, &map);
+
+  /* Reset this value, so the timecode won't be re-rewritten */
+  qtmux->tc_pos = -1;
+
+  return gst_qt_mux_send_buffer (qtmux, buf, &offset, FALSE);
+}
+
+static GstFlowReturn
 gst_qt_mux_stop_file (GstQTMux * qtmux)
 {
   gboolean ret = GST_FLOW_OK;
@@ -2528,6 +2562,13 @@
   }
 
   gst_qt_mux_update_global_statistics (qtmux);
+  if (qtmux->tc_pos != -1) {
+    /* File is being stopped and timecode hasn't been updated. Update it now
+     * with whatever we have */
+    ret = gst_qt_mux_update_timecode (qtmux);
+    if (ret != GST_FLOW_OK)
+      return ret;
+  }
 
   switch (qtmux->mux_mode) {
     case GST_QT_MUX_MODE_FRAGMENTED:{
@@ -2979,6 +3020,84 @@
   return ret;
 }
 
+static GstFlowReturn
+gst_qt_mux_check_and_update_timecode (GstQTMux * qtmux, GstQTPad * pad,
+    GstBuffer * buf, GstFlowReturn ret)
+{
+  if (buf != NULL && (pad->tc_trak == NULL || qtmux->tc_pos != -1)) {
+    GstVideoTimeCodeMeta *tc_meta = gst_buffer_get_video_time_code_meta (buf);
+    if (tc_meta) {
+      GstVideoTimeCode *tc = &tc_meta->tc;
+      GstBuffer *tc_buf;
+      gsize szret;
+      guint32 frames_since_daily_jam;
+
+      /* This means we never got a timecode before */
+      if (qtmux->first_tc == NULL) {
+#ifndef GST_DISABLE_GST_DEBUG
+        gchar *tc_str = gst_video_time_code_to_string (tc);
+        GST_DEBUG_OBJECT (qtmux, "Found first timecode %s", tc_str);
+        g_free (tc_str);
+#endif
+        g_assert (pad->tc_trak == NULL);
+        tc_buf = gst_buffer_new_allocate (NULL, 4, NULL);
+        qtmux->first_tc = gst_video_time_code_copy (tc);
+        /* If frames are out of order, the frame we're currently getting might
+         * not be the first one. Just write a 0 timecode for now and wait
+         * until we receive a timecode that's lower than the current one */
+        if (pad->is_out_of_order) {
+          qtmux->first_pts = GST_BUFFER_PTS (buf);
+          frames_since_daily_jam = 0;
+          /* Position to rewrite */
+          qtmux->tc_pos = qtmux->mdat_size;
+        } else {
+          frames_since_daily_jam =
+              gst_video_time_code_frames_since_daily_jam (qtmux->first_tc);
+          frames_since_daily_jam = GUINT32_TO_BE (frames_since_daily_jam);
+        }
+        /* Write the timecode trak now */
+        pad->tc_trak = atom_trak_new (qtmux->context);
+        atom_moov_add_trak (qtmux->moov, pad->tc_trak);
+
+        pad->trak->tref = atom_tref_new (FOURCC_tmcd);
+        atom_tref_add_entry (pad->trak->tref, pad->tc_trak->tkhd.track_ID);
+
+        atom_trak_set_timecode_type (pad->tc_trak, qtmux->context,
+            qtmux->first_tc);
+
+        szret = gst_buffer_fill (tc_buf, 0, &frames_since_daily_jam, 4);
+        g_assert (szret == 4);
+
+        atom_trak_add_samples (pad->tc_trak, 1, 1, 4, qtmux->mdat_size, FALSE,
+            0);
+        ret = gst_qt_mux_send_buffer (qtmux, tc_buf, &qtmux->mdat_size, TRUE);
+      } else if (pad->is_out_of_order) {
+        /* Check for a lower timecode than the one stored */
+        g_assert (pad->tc_trak != NULL);
+        if (GST_BUFFER_DTS (buf) <= qtmux->first_pts) {
+          if (gst_video_time_code_compare (tc, qtmux->first_tc) == -1) {
+            gst_video_time_code_free (qtmux->first_tc);
+            qtmux->first_tc = gst_video_time_code_copy (tc);
+          }
+        } else {
+          guint64 bk_size = qtmux->mdat_size;
+          GstSegment segment;
+          /* If this frame's DTS is after the first PTS received, it means
+           * we've already received the first frame to be presented. Otherwise
+           * the decoder would need to go back in time */
+          gst_qt_mux_update_timecode (qtmux);
+
+          /* Reset writing position */
+          gst_segment_init (&segment, GST_FORMAT_BYTES);
+          segment.start = bk_size;
+          gst_pad_push_event (qtmux->srcpad, gst_event_new_segment (&segment));
+        }
+      }
+    }
+  }
+  return ret;
+}
+
 /*
  * Here we push the buffer and update the tables in the track atoms
  */
@@ -3025,6 +3144,8 @@
     }
   }
 
+  ret = gst_qt_mux_check_and_update_timecode (qtmux, pad, buf, ret);
+
   if (last_buf && !buf && !GST_BUFFER_DURATION_IS_VALID (last_buf)) {
     /* this is last buffer; there is no next buffer so we need valid number as duration */
     last_buf = gst_buffer_make_writable (last_buf);
@@ -3181,13 +3302,15 @@
     sync = TRUE;
   }
 
-  if (GST_CLOCK_TIME_IS_VALID (GST_BUFFER_DTS (last_buf))) {
+  if (!GST_BUFFER_PTS_IS_VALID (last_buf))
+    goto no_pts;
+
+  if (GST_BUFFER_DTS_IS_VALID (last_buf)) {
     last_dts = gst_util_uint64_scale_round (GST_BUFFER_DTS (last_buf),
         atom_trak_get_timescale (pad->trak), GST_SECOND);
     pts_offset =
         (gint64) (gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf),
             atom_trak_get_timescale (pad->trak), GST_SECOND) - last_dts);
-
   } else {
     pts_offset = 0;
     last_dts = gst_util_uint64_scale_round (GST_BUFFER_PTS (last_buf),
@@ -3267,6 +3390,11 @@
         ("Audio buffer contains fragmented sample."));
     goto bail;
   }
+no_pts:
+  {
+    GST_ELEMENT_ERROR (qtmux, STREAM, MUX, (NULL), ("Buffer has no PTS."));
+    goto bail;
+  }
 not_negotiated:
   {
     GST_ELEMENT_ERROR (qtmux, CORE, NEGOTIATION, (NULL),
@@ -4093,7 +4221,7 @@
     else if (!g_strcmp0 (variant, "hq"))
       entry.fourcc = FOURCC_apch;
     else if (!g_strcmp0 (variant, "proxy"))
-      entry.fourcc = FOURCC_ap4h;
+      entry.fourcc = FOURCC_apco;
   }
 
   if (!entry.fourcc)
@@ -4567,6 +4695,8 @@
     case GST_STATE_CHANGE_READY_TO_PAUSED:
       gst_collect_pads_start (qtmux->collect);
       qtmux->state = GST_QT_MUX_STATE_STARTED;
+      qtmux->first_tc = NULL;
+      qtmux->tc_pos = -1;
       break;
     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
       break;
@@ -4614,6 +4744,9 @@
   static const GInterfaceInfo tag_xmp_writer_info = {
     NULL, NULL, NULL
   };
+  static const GInterfaceInfo preset_info = {
+    NULL, NULL, NULL
+  };
   GType type;
   GstQTMuxFormat format;
   GstQTMuxClassParams *params;
@@ -4652,6 +4785,7 @@
     g_type_add_interface_static (type, GST_TYPE_TAG_SETTER, &tag_setter_info);
     g_type_add_interface_static (type, GST_TYPE_TAG_XMP_WRITER,
         &tag_xmp_writer_info);
+    g_type_add_interface_static (type, GST_TYPE_PRESET, &preset_info);
 
     if (!gst_element_register (plugin, prop->name, prop->rank, type))
       return FALSE;
diff --git a/gst/isomp4/gstqtmux.h b/gst/isomp4/gstqtmux.h
index 81a23fa..5fd7df9 100644
--- a/gst/isomp4/gstqtmux.h
+++ b/gst/isomp4/gstqtmux.h
@@ -123,6 +123,7 @@
   /* all the atom and chunk book-keeping is delegated here
    * unowned/uncounted reference, parent MOOV owns */
   AtomTRAK *trak;
+  AtomTRAK *tc_trak;
   SampleTableEntry *trak_ste;
   /* fragmented support */
   /* meta data book-keeping delegated here */
@@ -205,6 +206,10 @@
   /* Set when tags are received, cleared when written to moov */
   gboolean tags_changed;
 
+  /* SMPTE timecode */
+  GstVideoTimeCode *first_tc;
+  GstClockTime first_pts;
+  guint64 tc_pos;
 
   /* fragmented file index */
   AtomMFRA *mfra;
diff --git a/gst/isomp4/gstrtpxqtdepay.c b/gst/isomp4/gstrtpxqtdepay.c
index 9116ccc..8a3c60e 100644
--- a/gst/isomp4/gstrtpxqtdepay.c
+++ b/gst/isomp4/gstrtpxqtdepay.c
@@ -129,10 +129,10 @@
   GST_DEBUG_CATEGORY_INIT (rtpxqtdepay_debug, "rtpxqtdepay", 0,
       "QT Media RTP Depayloader");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_xqt_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_xqt_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_xqt_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_xqt_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP packet depayloader", "Codec/Depayloader/Network",
diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
index 2e204d8..2bcb4ba 100644
--- a/gst/isomp4/qtdemux.c
+++ b/gst/isomp4/qtdemux.c
@@ -97,19 +97,11 @@
 
 GST_DEBUG_CATEGORY (qtdemux_debug);
 
-/*typedef struct _QtNode QtNode; */
 typedef struct _QtDemuxSegment QtDemuxSegment;
 typedef struct _QtDemuxSample QtDemuxSample;
 
 typedef struct _QtDemuxCencSampleSetInfo QtDemuxCencSampleSetInfo;
 
-/*struct _QtNode
-{
-  guint32 type;
-  guint8 *data;
-  gint len;
-};*/
-
 struct _QtDemuxSample
 {
   guint32 size;
@@ -227,7 +219,10 @@
   guint32 fourcc;
   gboolean sparse;
 
-  gboolean new_caps;
+  gboolean new_caps;            /* If TRUE, caps need to be generated (by
+                                 * calling _configure_stream()) This happens
+                                 * for MSS and fragmented streams */
+
   gboolean new_stream;          /* signals that a stream_start is required */
   gboolean on_keyframe;         /* if this stream last pushed buffer was a
                                  * keyframe. This is important to identify
@@ -241,7 +236,7 @@
   guint track_id;
 
   /* duration/scale */
-  guint64 duration;             /* in timescale */
+  guint64 duration;             /* in timescale units */
   guint32 timescale;
 
   /* language */
@@ -252,12 +247,17 @@
   QtDemuxSample *samples;
   gboolean all_keyframe;        /* TRUE when all samples are keyframes (no stss) */
   guint32 first_duration;       /* duration in timescale of first sample, used for figuring out
-                                   the framerate, in timescale units */
+                                   the framerate */
   guint32 n_samples_moof;       /* sample count in a moof */
   guint64 duration_moof;        /* duration in timescale of a moof, used for figure out
                                  * the framerate of fragmented format stream */
-  guint32 offset_in_sample;
-  guint32 max_buffer_size;
+
+  guint32 offset_in_sample;     /* Offset in the current sample, used for
+                                 * streams which have got exceedingly big
+                                 * sample size (such as 24s of raw audio).
+                                 * Only used when max_buffer_size is non-NULL */
+  guint32 max_buffer_size;      /* Maximum allowed size for output buffers.
+                                 * Currently only set for raw audio streams*/
 
   /* if we use chunks or samples */
   gboolean sampled;
@@ -415,13 +415,22 @@
   GPtrArray *crypto_info;
 };
 
-enum QtDemuxState
+static const gchar *
+qt_demux_state_string (enum QtDemuxState state)
 {
-  QTDEMUX_STATE_INITIAL,        /* Initial state (haven't got the header yet) */
-  QTDEMUX_STATE_HEADER,         /* Parsing the header */
-  QTDEMUX_STATE_MOVIE,          /* Parsing/Playing the media data */
-  QTDEMUX_STATE_BUFFER_MDAT     /* Buffering the mdat atom */
-};
+  switch (state) {
+    case QTDEMUX_STATE_INITIAL:
+      return "<INITIAL>";
+    case QTDEMUX_STATE_HEADER:
+      return "<HEADER>";
+    case QTDEMUX_STATE_MOVIE:
+      return "<MOVIE>";
+    case QTDEMUX_STATE_BUFFER_MDAT:
+      return "<BUFFER_MDAT>";
+    default:
+      return "<UNKNOWN>";
+  }
+}
 
 static GNode *qtdemux_tree_get_child_by_type (GNode * node, guint32 fourcc);
 static GNode *qtdemux_tree_get_child_by_type_full (GNode * node,
@@ -530,12 +539,19 @@
 static gboolean gst_qtdemux_stream_update_segment (GstQTDemux * qtdemux,
     QtDemuxStream * stream, gint seg_idx, GstClockTime offset,
     GstClockTime * _start, GstClockTime * _stop);
+static void gst_qtdemux_send_gap_for_segment (GstQTDemux * demux,
+    QtDemuxStream * stream, gint segment_index, GstClockTime pos);
 
 static gboolean qtdemux_pull_mfro_mfra (GstQTDemux * qtdemux);
 static void check_update_duration (GstQTDemux * qtdemux, GstClockTime duration);
 
+static gchar *qtdemux_uuid_bytes_to_string (gconstpointer uuid_bytes);
+
+static GstStructure *qtdemux_get_cenc_sample_properties (GstQTDemux * qtdemux,
+    QtDemuxStream * stream, guint sample_index);
 static void gst_qtdemux_append_protection_system_id (GstQTDemux * qtdemux,
     const gchar * id);
+static void qtdemux_gst_structure_free (GstStructure * gststructure);
 
 static void
 gst_qtdemux_class_init (GstQTDemuxClass * klass)
@@ -558,14 +574,14 @@
 
   gst_tag_register_musicbrainz_tags ();
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_qtdemux_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_qtdemux_videosrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_qtdemux_audiosrc_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_qtdemux_subsrc_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_qtdemux_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_qtdemux_videosrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_qtdemux_audiosrc_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_qtdemux_subsrc_template);
   gst_element_class_set_static_metadata (gstelement_class, "QuickTime demuxer",
       "Codec/Demuxer",
       "Demultiplex a QuickTime file into audio and video streams",
@@ -794,15 +810,18 @@
 static gboolean
 gst_qtdemux_get_duration (GstQTDemux * qtdemux, GstClockTime * duration)
 {
-  gboolean res = TRUE;
+  gboolean res = FALSE;
 
   *duration = GST_CLOCK_TIME_NONE;
 
-  if (qtdemux->duration != 0) {
-    if (qtdemux->duration != G_MAXINT64 && qtdemux->timescale != 0) {
-      *duration = QTTIME_TO_GSTTIME (qtdemux, qtdemux->duration);
-    }
+  if (qtdemux->duration != 0 &&
+      qtdemux->duration != G_MAXINT64 && qtdemux->timescale != 0) {
+    *duration = QTTIME_TO_GSTTIME (qtdemux, qtdemux->duration);
+    res = TRUE;
+  } else {
+    *duration = GST_CLOCK_TIME_NONE;
   }
+
   return res;
 }
 
@@ -836,7 +855,7 @@
         /* First try to query upstream */
         res = gst_pad_query_default (pad, parent, query);
         if (!res) {
-          guint64 duration;
+          GstClockTime duration;
           if (gst_qtdemux_get_duration (qtdemux, &duration) && duration > 0) {
             gst_query_set_duration (query, GST_FORMAT_TIME, duration);
             res = TRUE;
@@ -873,7 +892,7 @@
       if (!res) {
         gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL);
         if (fmt == GST_FORMAT_TIME) {
-          GstClockTime duration = GST_CLOCK_TIME_NONE;
+          GstClockTime duration;
 
           gst_qtdemux_get_duration (qtdemux, &duration);
           seekable = TRUE;
@@ -1264,7 +1283,7 @@
 
     /* get segment and time in the segment */
     seg = &str->segments[seg_idx];
-    seg_time = desired_time - seg->time;
+    seg_time = (desired_time - seg->time) * seg->rate;
 
     while (QTSEGMENT_IS_EMPTY (seg)) {
       seg_time = 0;
@@ -1700,11 +1719,6 @@
       }
       gst_event_unref (event);
       break;
-    case GST_EVENT_QOS:
-    case GST_EVENT_NAVIGATION:
-      res = FALSE;
-      gst_event_unref (event);
-      break;
     default:
     upstream:
       res = gst_pad_event_default (pad, parent, event);
@@ -2016,6 +2030,44 @@
   }
 }
 
+
+/* Maps the @segment to the qt edts internal segments and pushes
+ * the correspnding segment event.
+ *
+ * If it ends up being at a empty segment, a gap will be pushed and the next
+ * edts segment will be activated in sequence.
+ *
+ * To be used in push-mode only */
+static void
+gst_qtdemux_map_and_push_segments (GstQTDemux * qtdemux, GstSegment * segment)
+{
+  gint n, i;
+
+  for (n = 0; n < qtdemux->n_streams; n++) {
+    QtDemuxStream *stream = qtdemux->streams[n];
+
+    stream->time_position = segment->start;
+
+    /* in push mode we should be guaranteed that we will have empty segments
+     * at the beginning and then one segment after, other scenarios are not
+     * supported and are discarded when parsing the edts */
+    for (i = 0; i < stream->n_segments; i++) {
+      if (stream->segments[i].stop_time > segment->start) {
+        gst_qtdemux_activate_segment (qtdemux, stream, i,
+            stream->time_position);
+        if (QTSEGMENT_IS_EMPTY (&stream->segments[i])) {
+          /* push the empty segment and move to the next one */
+          gst_qtdemux_send_gap_for_segment (qtdemux, stream, i,
+              stream->time_position);
+          continue;
+        }
+
+        g_assert (i == stream->n_segments - 1);
+      }
+    }
+  }
+}
+
 static gboolean
 gst_qtdemux_handle_sink_event (GstPad * sinkpad, GstObject * parent,
     GstEvent * event)
@@ -2032,7 +2084,6 @@
       QtDemuxStream *stream;
       gint idx;
       GstSegment segment;
-      GstEvent *segment_event;
 
       /* some debug output */
       gst_event_copy_segment (event, &segment);
@@ -2114,11 +2165,19 @@
 
       gst_segment_copy_into (&segment, &demux->segment);
       GST_DEBUG_OBJECT (demux, "Pushing newseg %" GST_SEGMENT_FORMAT, &segment);
+
+      /* map segment to internal qt segments and push on each stream */
       if (demux->n_streams) {
-        gst_event_replace (&demux->pending_newsegment, NULL);
-        segment_event = gst_event_new_segment (&segment);
-        gst_event_set_seqnum (segment_event, gst_event_get_seqnum (event));
-        gst_qtdemux_push_event (demux, segment_event);
+        if (demux->fragmented) {
+          GstEvent *segment_event = gst_event_new_segment (&segment);
+
+          gst_event_replace (&demux->pending_newsegment, NULL);
+          gst_event_set_seqnum (segment_event, demux->segment_seqnum);
+          gst_qtdemux_push_event (demux, segment_event);
+        } else {
+          gst_event_replace (&demux->pending_newsegment, NULL);
+          gst_qtdemux_map_and_push_segments (demux, &segment);
+        }
       }
 
       /* clear leftover in current segment, if any */
@@ -2454,6 +2513,174 @@
 }
 
 static void
+qtdemux_parse_piff (GstQTDemux * qtdemux, const guint8 * buffer, gint length,
+    guint offset)
+{
+  GstByteReader br;
+  guint8 version;
+  guint32 flags = 0;
+  guint i;
+  guint8 iv_size = 8;
+  QtDemuxStream *stream;
+  GstStructure *structure;
+  QtDemuxCencSampleSetInfo *ss_info = NULL;
+  const gchar *system_id;
+  gboolean uses_sub_sample_encryption = FALSE;
+
+  if (qtdemux->n_streams == 0)
+    return;
+
+  stream = qtdemux->streams[0];
+
+  structure = gst_caps_get_structure (stream->caps, 0);
+  if (!gst_structure_has_name (structure, "application/x-cenc")) {
+    GST_WARNING_OBJECT (qtdemux,
+        "Attempting PIFF box parsing on an unencrypted stream.");
+    return;
+  }
+
+  gst_structure_get (structure, GST_PROTECTION_SYSTEM_ID_CAPS_FIELD,
+      G_TYPE_STRING, &system_id, NULL);
+  gst_qtdemux_append_protection_system_id (qtdemux, system_id);
+
+  stream->protected = TRUE;
+  stream->protection_scheme_type = FOURCC_cenc;
+
+  if (!stream->protection_scheme_info)
+    stream->protection_scheme_info = g_new0 (QtDemuxCencSampleSetInfo, 1);
+
+  ss_info = (QtDemuxCencSampleSetInfo *) stream->protection_scheme_info;
+
+  if (ss_info->default_properties)
+    gst_structure_free (ss_info->default_properties);
+
+  ss_info->default_properties =
+      gst_structure_new ("application/x-cenc",
+      "iv_size", G_TYPE_UINT, iv_size, "encrypted", G_TYPE_BOOLEAN, TRUE, NULL);
+
+  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 = NULL;
+  }
+
+  /* skip UUID */
+  gst_byte_reader_init (&br, buffer + offset + 16, length - offset - 16);
+
+  if (!gst_byte_reader_get_uint8 (&br, &version)) {
+    GST_ERROR_OBJECT (qtdemux, "Error getting box's version field");
+    return;
+  }
+
+  if (!gst_byte_reader_get_uint24_be (&br, &flags)) {
+    GST_ERROR_OBJECT (qtdemux, "Error getting box's flags field");
+    return;
+  }
+
+  if ((flags & 0x000001)) {
+    guint32 algorithm_id = 0;
+    const guint8 *kid;
+    GstBuffer *kid_buf;
+    gboolean is_encrypted = TRUE;
+
+    if (!gst_byte_reader_get_uint24_le (&br, &algorithm_id)) {
+      GST_ERROR_OBJECT (qtdemux, "Error getting box's algorithm ID field");
+      return;
+    }
+
+    algorithm_id >>= 8;
+    if (algorithm_id == 0) {
+      is_encrypted = FALSE;
+    } else if (algorithm_id == 1) {
+      /* FIXME: maybe store this in properties? */
+      GST_DEBUG_OBJECT (qtdemux, "AES 128-bits CTR encrypted stream");
+    } else if (algorithm_id == 2) {
+      /* FIXME: maybe store this in properties? */
+      GST_DEBUG_OBJECT (qtdemux, "AES 128-bits CBC encrypted stream");
+    }
+
+    if (!gst_byte_reader_get_uint8 (&br, &iv_size))
+      return;
+
+    if (!gst_byte_reader_get_data (&br, 16, &kid))
+      return;
+
+    kid_buf = gst_buffer_new_allocate (NULL, 16, NULL);
+    gst_buffer_fill (kid_buf, 0, kid, 16);
+    if (ss_info->default_properties)
+      gst_structure_free (ss_info->default_properties);
+    ss_info->default_properties =
+        gst_structure_new ("application/x-cenc",
+        "iv_size", G_TYPE_UINT, iv_size,
+        "encrypted", G_TYPE_BOOLEAN, is_encrypted,
+        "kid", GST_TYPE_BUFFER, kid_buf, NULL);
+    GST_DEBUG_OBJECT (qtdemux, "default sample properties: "
+        "is_encrypted=%u, iv_size=%u", is_encrypted, iv_size);
+    gst_buffer_unref (kid_buf);
+  } else if ((flags & 0x000002)) {
+    uses_sub_sample_encryption = TRUE;
+  }
+
+  if (!gst_byte_reader_get_uint32_be (&br, &qtdemux->cenc_aux_sample_count)) {
+    GST_ERROR_OBJECT (qtdemux, "Error getting box's sample count field");
+    return;
+  }
+
+  ss_info->crypto_info =
+      g_ptr_array_new_full (qtdemux->cenc_aux_sample_count,
+      (GDestroyNotify) qtdemux_gst_structure_free);
+
+  for (i = 0; i < qtdemux->cenc_aux_sample_count; ++i) {
+    GstStructure *properties;
+    guint8 *data;
+    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;
+    }
+
+    if (!gst_byte_reader_dup_data (&br, iv_size, &data)) {
+      GST_ERROR_OBJECT (qtdemux, "IV data not present for sample %u", i);
+      gst_structure_free (properties);
+      return;
+    }
+    buf = gst_buffer_new_wrapped (data, iv_size);
+    gst_structure_set (properties, "iv", GST_TYPE_BUFFER, buf, NULL);
+    gst_buffer_unref (buf);
+
+    if (uses_sub_sample_encryption) {
+      guint16 n_subsamples;
+
+      if (!gst_byte_reader_get_uint16_be (&br, &n_subsamples)
+          || n_subsamples == 0) {
+        GST_ERROR_OBJECT (qtdemux,
+            "failed to get subsample count for sample %u", i);
+        gst_structure_free (properties);
+        return;
+      }
+      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;
+      }
+      buf = gst_buffer_new_wrapped (data, n_subsamples * 6);
+      gst_structure_set (properties,
+          "subsample_count", G_TYPE_UINT, n_subsamples,
+          "subsamples", GST_TYPE_BUFFER, buf, NULL);
+      gst_buffer_unref (buf);
+    } else {
+      gst_structure_set (properties, "subsample_count", G_TYPE_UINT, 0, NULL);
+    }
+
+    g_ptr_array_add (ss_info->crypto_info, properties);
+  }
+}
+
+static void
 qtdemux_parse_uuid (GstQTDemux * qtdemux, const guint8 * buffer, gint length)
 {
   static const guint8 xmp_uuid[] = { 0xBE, 0x7A, 0xCF, 0xCB,
@@ -2465,6 +2692,12 @@
     0xd0, 0x8a, 0x4f, 0x18, 0x10, 0xf3, 0x4a, 0x82,
     0xb6, 0xc8, 0x32, 0xd8, 0xab, 0xa1, 0x83, 0xd3
   };
+
+  static const guint8 piff_sample_encryption_uuid[] = {
+    0xa2, 0x39, 0x4f, 0x52, 0x5a, 0x9b, 0x4f, 0x14,
+    0xa2, 0x44, 0x6c, 0x42, 0x7c, 0x64, 0x8d, 0xf4
+  };
+
   guint offset;
 
   /* counts as header data */
@@ -2503,6 +2736,8 @@
     GST_ELEMENT_ERROR (qtdemux, STREAM, DECRYPT,
         (_("Cannot play stream because it is encrypted with PlayReady DRM.")),
         (NULL));
+  } else if (memcmp (buffer + offset, piff_sample_encryption_uuid, 16) == 0) {
+    qtdemux_parse_piff (qtdemux, buffer, length, offset);
   } else {
     GST_DEBUG_OBJECT (qtdemux, "Ignoring unknown uuid: %08x-%08x-%08x-%08x",
         GST_READ_UINT32_LE (buffer + offset),
@@ -2737,6 +2972,7 @@
   guint entry_size, dur_offset, size_offset, flags_offset = 0, ct_offset = 0;
   QtDemuxSample *sample;
   gboolean ismv = FALSE;
+  gint64 initial_offset;
 
   GST_LOG_OBJECT (qtdemux, "parsing trun stream %d; "
       "default dur %d, size %d, flags 0x%x, base offset %" G_GINT64_FORMAT ", "
@@ -2889,6 +3125,8 @@
     }
   }
 
+  initial_offset = *running_offset;
+
   sample = stream->samples + stream->n_samples;
   for (i = 0; i < samples_count; i++) {
     guint32 dur, size, sflags, ct;
@@ -2941,6 +3179,12 @@
   /* Update total duration if needed */
   check_update_duration (qtdemux, QTSTREAMTIME_TO_GSTTIME (stream, timestamp));
 
+  /* Pre-emptively figure out size of mdat based on trun information.
+   * If the [mdat] atom is effectivelly read, it will be replaced by the actual
+   * size, else we will still be able to use this when dealing with gap'ed
+   * input */
+  qtdemux->mdatleft = *running_offset - initial_offset;
+
   stream->n_samples += samples_count;
   stream->n_samples_moof += samples_count;
 
@@ -3410,6 +3654,7 @@
     guint64 moof_offset, QtDemuxStream * stream)
 {
   GNode *moof_node, *traf_node, *tfhd_node, *trun_node, *tfdt_node, *mfhd_node;
+  GNode *uuid_node;
   GstByteReader mfhd_data, trun_data, tfhd_data, tfdt_data;
   GNode *saiz_node, *saio_node, *pssh_node;
   GstByteReader saiz_data, saio_data;
@@ -3511,17 +3756,13 @@
         qtdemux_tree_get_child_by_type_full (traf_node, FOURCC_tfdt,
         &tfdt_data);
     if (tfdt_node) {
-      GstClockTime decode_time_ts;
-
       /* We'll use decode_time to interpolate timestamps
        * in case the input timestamps are missing */
       qtdemux_parse_tfdt (qtdemux, &tfdt_data, &decode_time);
 
-      decode_time_ts = QTSTREAMTIME_TO_GSTTIME (stream, decode_time);
-
       GST_DEBUG_OBJECT (qtdemux, "decode time %" G_GINT64_FORMAT
           " (%" GST_TIME_FORMAT ")", decode_time,
-          GST_TIME_ARGS (decode_time_ts));
+          GST_TIME_ARGS (QTSTREAMTIME_TO_GSTTIME (stream, decode_time)));
 
       /* Discard the fragment buffer timestamp info to avoid using it.
        * Rely on tfdt instead as it is more accurate than the timestamp
@@ -3558,6 +3799,15 @@
       trun_node = qtdemux_tree_get_sibling_by_type_full (trun_node, FOURCC_trun,
           &trun_data);
     }
+
+    uuid_node = qtdemux_tree_get_child_by_type (traf_node, FOURCC_uuid);
+    if (uuid_node) {
+      guint8 *uuid_buffer = (guint8 *) uuid_node->data;
+      guint32 box_length = QT_UINT32 (uuid_buffer);
+
+      qtdemux_parse_uuid (qtdemux, uuid_buffer, box_length);
+    }
+
     /* if no new base_offset provided for next traf,
      * base is end of current traf */
     base_offset = running_offset;
@@ -4213,7 +4463,7 @@
   segment = &stream->segments[stream->segment_index];
 
   /* get time in this segment */
-  seg_time = offset - segment->time;
+  seg_time = (offset - segment->time) * segment->rate;
 
   GST_LOG_OBJECT (stream->pad, "seg_time %" GST_TIME_FORMAT,
       GST_TIME_ARGS (seg_time));
@@ -5054,7 +5304,7 @@
       gst_pad_push_event (stream->pad, event);
     }
 
-    if (qtdemux->cenc_aux_info_offset > 0 && info->crypto_info == NULL) {
+    if (info->crypto_info == NULL) {
       GST_DEBUG_OBJECT (qtdemux, "cenc metadata hasn't been parsed yet");
       gst_buffer_unref (buf);
       goto exit;
@@ -5418,8 +5668,8 @@
   qtdemux = GST_QTDEMUX (gst_pad_get_parent (pad));
 
   cur_offset = qtdemux->offset;
-  GST_LOG_OBJECT (qtdemux, "loop at position %" G_GUINT64_FORMAT ", state %d",
-      cur_offset, qtdemux->state);
+  GST_LOG_OBJECT (qtdemux, "loop at position %" G_GUINT64_FORMAT ", state %s",
+      cur_offset, qt_demux_state_string (qtdemux->state));
 
   switch (qtdemux->state) {
     case QTDEMUX_STATE_INITIAL:
@@ -5516,8 +5766,7 @@
         gst_qtdemux_push_event (qtdemux, event);
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
-      GST_ELEMENT_ERROR (qtdemux, STREAM, FAILED,
-          (NULL), ("streaming stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (qtdemux, ret);
       gst_qtdemux_push_event (qtdemux, gst_event_new_eos ());
     }
     goto done;
@@ -5734,6 +5983,25 @@
 }
 
 static void
+gst_qtdemux_send_gap_for_segment (GstQTDemux * demux,
+    QtDemuxStream * stream, gint segment_index, GstClockTime pos)
+{
+  GstClockTime ts, dur;
+  GstEvent *gap;
+
+  ts = pos;
+  dur =
+      stream->segments[segment_index].duration - (pos -
+      stream->segments[segment_index].time);
+  gap = gst_event_new_gap (ts, dur);
+  stream->time_position += dur;
+
+  GST_DEBUG_OBJECT (stream->pad, "Pushing gap for empty "
+      "segment: %" GST_PTR_FORMAT, gap);
+  gst_pad_push_event (stream->pad, gap);
+}
+
+static void
 gst_qtdemux_stream_send_initial_gap_segments (GstQTDemux * demux,
     QtDemuxStream * stream)
 {
@@ -5745,19 +6013,8 @@
     gst_qtdemux_activate_segment (demux, stream, i, stream->time_position);
 
     if (QTSEGMENT_IS_EMPTY (&stream->segments[i])) {
-      GstClockTime ts, dur;
-      GstEvent *gap;
-
-      ts = stream->time_position;
-      dur =
-          stream->segments[i].duration - (stream->time_position -
-          stream->segments[i].time);
-      gap = gst_event_new_gap (ts, dur);
-      stream->time_position += dur;
-
-      GST_DEBUG_OBJECT (stream->pad, "Pushing gap for empty "
-          "segment: %" GST_PTR_FORMAT, gap);
-      gst_pad_push_event (stream->pad, gap);
+      gst_qtdemux_send_gap_for_segment (demux, stream, i,
+          stream->time_position);
     } else {
       /* Only support empty segment at the beginning followed by
        * one non-empty segment, this was checked when parsing the
@@ -5775,7 +6032,15 @@
 
   demux = GST_QTDEMUX (parent);
 
+  GST_DEBUG_OBJECT (demux,
+      "Received buffer pts:%" GST_TIME_FORMAT " dts:%" GST_TIME_FORMAT
+      " offset:%" G_GUINT64_FORMAT " size:%" G_GSIZE_FORMAT " demux offset:%"
+      G_GUINT64_FORMAT, GST_TIME_ARGS (GST_BUFFER_PTS (inbuf)),
+      GST_TIME_ARGS (GST_BUFFER_DTS (inbuf)), GST_BUFFER_OFFSET (inbuf),
+      gst_buffer_get_size (inbuf), demux->offset);
+
   if (GST_BUFFER_FLAG_IS_SET (inbuf, GST_BUFFER_FLAG_DISCONT)) {
+    gboolean is_gap_input = FALSE;
     gint i;
 
     GST_DEBUG_OBJECT (demux, "Got DISCONT, marking all streams as DISCONT");
@@ -5784,13 +6049,56 @@
       demux->streams[i]->discont = TRUE;
     }
 
+    /* Check if we can land back on our feet in the case where upstream is
+     * handling the seeking/pushing of samples with gaps in between (like
+     * in the case of trick-mode DASH for example) */
+    if (demux->upstream_format_is_time
+        && GST_BUFFER_OFFSET (inbuf) != GST_BUFFER_OFFSET_NONE) {
+      gint i;
+      for (i = 0; i < demux->n_streams; i++) {
+        guint32 res;
+        GST_LOG_OBJECT (demux,
+            "Stream #%d , checking if offset %" G_GUINT64_FORMAT
+            " is a sample start", i, GST_BUFFER_OFFSET (inbuf));
+        res =
+            gst_qtdemux_find_index_for_given_media_offset_linear (demux,
+            demux->streams[i], GST_BUFFER_OFFSET (inbuf));
+        if (res != -1) {
+          QtDemuxSample *sample = &demux->streams[i]->samples[res];
+          GST_LOG_OBJECT (demux,
+              "Checking if sample %d from stream %d is valid (offset:%"
+              G_GUINT64_FORMAT " size:%" G_GUINT32_FORMAT ")", res, i,
+              sample->offset, sample->size);
+          if (sample->offset == GST_BUFFER_OFFSET (inbuf)) {
+            GST_LOG_OBJECT (demux,
+                "new buffer corresponds to a valid sample : %" G_GUINT32_FORMAT,
+                res);
+            is_gap_input = TRUE;
+            /* We can go back to standard playback mode */
+            demux->state = QTDEMUX_STATE_MOVIE;
+            /* Remember which sample this stream is at */
+            demux->streams[i]->sample_index = res;
+            /* Finally update all push-based values to the expected values */
+            demux->neededbytes = demux->streams[i]->samples[res].size;
+            demux->todrop = 0;
+            demux->offset = GST_BUFFER_OFFSET (inbuf);
+          }
+        }
+      }
+      if (!is_gap_input) {
+        /* Reset state if it's a real discont */
+        demux->neededbytes = 16;
+        demux->state = QTDEMUX_STATE_INITIAL;
+        demux->offset = GST_BUFFER_OFFSET (inbuf);
+      }
+    }
     /* Reverse fragmented playback, need to flush all we have before
      * consuming a new fragment.
      * The samples array have the timestamps calculated by accumulating the
      * durations but this won't work for reverse playback of fragments as
      * the timestamps of a subsequent fragment should be smaller than the
      * previously received one. */
-    if (demux->fragmented && demux->segment.rate < 0) {
+    if (!is_gap_input && demux->fragmented && demux->segment.rate < 0) {
       gst_qtdemux_process_adapter (demux, TRUE);
       for (i = 0; i < demux->n_streams; i++)
         gst_qtdemux_stream_flush_samples_data (demux, demux->streams[i]);
@@ -5819,9 +6127,21 @@
   while (((gst_adapter_available (demux->adapter)) >= demux->neededbytes) &&
       (ret == GST_FLOW_OK || (ret == GST_FLOW_NOT_LINKED && force))) {
 
-    GST_DEBUG_OBJECT (demux,
-        "state:%d , demux->neededbytes:%d, demux->offset:%" G_GUINT64_FORMAT,
-        demux->state, demux->neededbytes, demux->offset);
+#ifndef GST_DISABLE_GST_DEBUG
+    {
+      guint64 discont_offset, distance_from_discont;
+
+      discont_offset = gst_adapter_offset_at_discont (demux->adapter);
+      distance_from_discont =
+          gst_adapter_distance_from_discont (demux->adapter);
+
+      GST_DEBUG_OBJECT (demux,
+          "state:%s , demux->neededbytes:%d, demux->offset:%" G_GUINT64_FORMAT
+          " adapter offset :%" G_GUINT64_FORMAT " (+ %" G_GUINT64_FORMAT
+          " bytes)", qt_demux_state_string (demux->state), demux->neededbytes,
+          demux->offset, discont_offset, distance_from_discont);
+    }
+#endif
 
     switch (demux->state) {
       case QTDEMUX_STATE_INITIAL:{
@@ -6004,6 +6324,7 @@
             guint64 dist = 0;
             GstClockTime prev_pts;
             guint64 prev_offset;
+            guint64 adapter_discont_offset, adapter_discont_dist;
 
             GST_DEBUG_OBJECT (demux, "Parsing [moof]");
 
@@ -6030,9 +6351,42 @@
                   GST_TIME_ARGS (demux->fragment_start));
             }
 
-            demux->moof_offset = demux->offset;
+            /* We can't use prev_offset() here because this would require
+             * upstream to set consistent and correct offsets on all buffers
+             * since the discont. Nothing ever did that in the past and we
+             * would break backwards compatibility here then.
+             * Instead take the offset we had at the last discont and count
+             * the bytes from there. This works with old code as there would
+             * be no discont between moov and moof, and also works with
+             * adaptivedemux which correctly sets offset and will set the
+             * DISCONT flag accordingly when needed.
+             *
+             * We also only do this for upstream TIME segments as otherwise
+             * there are potential backwards compatibility problems with
+             * seeking in PUSH mode and upstream providing inconsistent
+             * timestamps. */
+            adapter_discont_offset =
+                gst_adapter_offset_at_discont (demux->adapter);
+            adapter_discont_dist =
+                gst_adapter_distance_from_discont (demux->adapter);
+
+            GST_DEBUG_OBJECT (demux,
+                "demux offset %" G_GUINT64_FORMAT " adapter offset %"
+                G_GUINT64_FORMAT " (+ %" G_GUINT64_FORMAT " bytes)",
+                demux->offset, adapter_discont_offset, adapter_discont_dist);
+
+            if (demux->upstream_format_is_time) {
+              demux->moof_offset = adapter_discont_offset;
+              if (demux->moof_offset != GST_BUFFER_OFFSET_NONE)
+                demux->moof_offset += adapter_discont_dist;
+              if (demux->moof_offset == GST_BUFFER_OFFSET_NONE)
+                demux->moof_offset = demux->offset;
+            } else {
+              demux->moof_offset = demux->offset;
+            }
+
             if (!qtdemux_parse_moof (demux, data, demux->neededbytes,
-                    demux->offset, NULL)) {
+                    demux->moof_offset, NULL)) {
               gst_adapter_unmap (demux->adapter);
               ret = GST_FLOW_ERROR;
               goto done;
@@ -8944,7 +9298,7 @@
 
     /* HACK:
      * some of those trailers, nowadays, have prologue images that are
-     * themselves vide tracks as well. I haven't really found a way to
+     * themselves video tracks as well. I haven't really found a way to
      * identify those yet, except for just looking at their duration. */
     if (tdur1 != 0 && (tdur2 * 10 / tdur1) < 2) {
       GST_WARNING_OBJECT (qtdemux,
@@ -10621,8 +10975,7 @@
 
   size = size - qtdemux->header_size;
 
-  if (!gst_qtdemux_get_duration (qtdemux, &duration) ||
-      duration == GST_CLOCK_TIME_NONE) {
+  if (!gst_qtdemux_get_duration (qtdemux, &duration)) {
     GST_DEBUG_OBJECT (qtdemux, "Stream duration not known - bailing");
     return;
   }
@@ -11984,7 +12337,7 @@
   return tags;
 }
 
-/* we have read th complete moov node now.
+/* we have read the complete moov node now.
  * This function parses all of the relevant info, creates the traks and
  * prepares all data structures for playback
  */
@@ -12296,18 +12649,13 @@
        * wrong. */
       /* Only do so for basic setup without HE-AAC extension */
       if (data_ptr && data_len == 2) {
-        guint channels, rateindex, rate;
+        guint channels, rate;
 
-        /* FIXME: add gst_codec_utils_aac_get_{channels|sample_rate}()? */
-        channels = (data_ptr[1] & 0x7f) >> 3;
-        if (channels > 0 && channels < 7) {
+        channels = gst_codec_utils_aac_get_channels (data_ptr, data_len);
+        if (channels > 0)
           stream->n_channels = channels;
-        } else if (channels == 7) {
-          stream->n_channels = 8;
-        }
 
-        rateindex = ((data_ptr[0] & 0x7) << 1) | ((data_ptr[1] & 0x80) >> 7);
-        rate = gst_codec_utils_aac_get_sample_rate_from_index (rateindex);
+        rate = gst_codec_utils_aac_get_sample_rate (data_ptr, data_len);
         if (rate > 0)
           stream->rate = rate;
       }
@@ -12340,11 +12688,11 @@
             profile_str = "main";
             profile = 0;
             break;
-          case 67:
+          case 0x67:
             profile_str = "lc";
             profile = 1;
             break;
-          case 68:
+          case 0x68:
             profile_str = "ssr";
             profile = 2;
             break;
diff --git a/gst/isomp4/qtdemux.h b/gst/isomp4/qtdemux.h
index 0b9a4f3..771ddcc 100644
--- a/gst/isomp4/qtdemux.h
+++ b/gst/isomp4/qtdemux.h
@@ -54,12 +54,28 @@
 typedef struct _GstQTDemuxClass GstQTDemuxClass;
 typedef struct _QtDemuxStream QtDemuxStream;
 
+enum QtDemuxState
+{
+  QTDEMUX_STATE_INITIAL,        /* Initial state (haven't got the header yet) */
+  QTDEMUX_STATE_HEADER,         /* Parsing the header */
+  QTDEMUX_STATE_MOVIE,          /* Parsing/Playing the media data */
+  QTDEMUX_STATE_BUFFER_MDAT     /* Buffering the mdat atom */
+};
+
 struct _GstQTDemux {
   GstElement element;
 
-  /* pads */
+  /* Global state */
+  enum QtDemuxState state;
+
+  /* static sink pad */
   GstPad *sinkpad;
 
+  /* TRUE if pull-based */
+  gboolean pullbased;
+
+  gboolean posted_redirect;
+
   QtDemuxStream *streams[GST_QTDEMUX_MAX_STREAMS];
   gint     n_streams;
   gint     n_video_streams;
@@ -68,83 +84,67 @@
 
   GstFlowCombiner *flowcombiner;
 
+  /* Incoming stream group-id to set on downstream STREAM_START events.
+   * If upstream doesn't contain one, a global one will be generated */
   gboolean have_group_id;
   guint group_id;
 
   guint  major_brand;
   GstBuffer *comp_brands;
+
+  /* [moov] header.
+   * FIXME : This is discarded just after it's created. Just move it
+   * to a temporary variable ? */
   GNode *moov_node;
+
+  /* FIXME : This is never freed. It is only assigned once. memleak ? */
   GNode *moov_node_compressed;
 
-  guint32 timescale;
-  GstClockTime duration;
-
-  gboolean fragmented;
-  gboolean fragmented_seek_pending;
-  guint64 moof_offset;
-
-  gint state;
-
-  gboolean pullbased;
-  gboolean posted_redirect;
-
-  /* push based variables */
-  guint neededbytes;
-  guint todrop;
-  GstAdapter *adapter;
-  GstBuffer *mdatbuffer;
-  guint64 mdatleft;
-  /* When restoring the mdat to the adatpter, this buffer
-   * stores any trailing data that was after the last atom parsed as it
-   * has to be restored later along with the correct offset. Used in
-   * fragmented scenario where mdat/moof are one after the other
-   * in any order.
-   *
-   * Check https://bugzilla.gnome.org/show_bug.cgi?id=710623 */
-  GstBuffer *restoredata_buffer;
-  guint64 restoredata_offset;
-
-  guint64 offset;
-  /* offset of the mdat atom */
-  guint64 mdatoffset;
-  guint64 first_mdat;
+  /* Set to TRUE when the [moov] header has been fully parsed */
   gboolean got_moov;
-  guint64 last_moov_offset;
+
+  /* Global timescale for the incoming stream. Use the QTTIME macros
+   * to convert values to/from GstClockTime */
+  guint32 timescale;
+
+  /* Global duration (in global timescale). Use QTTIME macros to get GstClockTime */
+  guint64 duration;
+
+  /* Total size of header atoms. Used to calculate fallback overall bitrate */
   guint header_size;
 
   GstTagList *tag_list;
 
   /* configured playback region */
   GstSegment segment;
+
+  /* The SEGMENT_EVENT from upstream *OR* generated from segment (above) */
   GstEvent *pending_newsegment;
+
   guint32 segment_seqnum;
-  gboolean upstream_format_is_time; /* qtdemux received upstream
-                                     * newsegment in TIME format which likely
-                                     * means that upstream is driving the pipeline
-                                     * (adaptive demuxers / dlna) */
-  guint32 offset_seek_seqnum;
-  gint64 seek_offset;
-  gint64 push_seek_start;
-  gint64 push_seek_stop;
 
-#if 0
-  /* gst index support */
-  GstIndex *element_index;
-  gint index_id;
-#endif
+  /* flag to indicate that we're working with a smoothstreaming fragment
+   * Mss doesn't have 'moov' or any information about the streams format,
+   * requiring qtdemux to expose and create the streams */
+  gboolean mss_mode;
 
-  gboolean upstream_seekable;
-  gint64 upstream_size;
+  /* Set to TRUE if the incoming stream is either a MSS stream or
+   * a Fragmented MP4 (containing the [mvex] atom in the header) */
+  gboolean fragmented;
+
+  /* PULL-BASED only : If TRUE there is a pending seek */
+  gboolean fragmented_seek_pending;
+
+  /* PULL-BASED : offset of first [moof] or of fragment to seek to
+   * PUSH-BASED : offset of latest [moof] */
+  guint64 moof_offset;
 
   /* MSS streams have a single media that is unspecified at the atoms, so
    * upstream provides it at the caps */
   GstCaps *media_caps;
+
+  /* Set to TRUE when all streams have been exposed */
   gboolean exposed;
-  gboolean mss_mode; /* flag to indicate that we're working with a smoothstreaming fragment
-                      * Mss doesn't have 'moov' or any information about the streams format,
-                      * requiring qtdemux to expose and create the streams */
-  guint64 fragment_start;
-  guint64 fragment_start_offset;
     
   gint64 chapters_track_id;
 
@@ -155,6 +155,83 @@
   guint8 *cenc_aux_info_sizes;
   guint32 cenc_aux_sample_count;
 
+
+  /*
+   * ALL VARIABLES BELOW ARE ONLY USED IN PUSH-BASED MODE 
+   */
+  GstAdapter *adapter;
+  guint neededbytes;
+  guint todrop;
+  /* Used to store data if [mdat] is before the headers */
+  GstBuffer *mdatbuffer;
+  /* Amount of bytes left to read in the current [mdat] */
+  guint64 mdatleft;
+
+  /* When restoring the mdat to the adapter, this buffer stores any
+   * trailing data that was after the last atom parsed as it has to be
+   * restored later along with the correct offset. Used in fragmented
+   * scenario where mdat/moof are one after the other in any order.
+   *
+   * Check https://bugzilla.gnome.org/show_bug.cgi?id=710623 */
+  GstBuffer *restoredata_buffer;
+  guint64 restoredata_offset;
+
+  /* The current offset in bytes from upstream.
+   * Note: While it makes complete sense when we are PULL-BASED (pulling
+   * in BYTES from upstream) and PUSH-BASED with a BYTE SEGMENT (receiving
+   * buffers with actual offsets), it is undefined in PUSH-BASED with a
+   * TIME SEGMENT */
+  guint64 offset;
+
+  /* offset of the mdat atom */
+  guint64 mdatoffset;
+  /* Offset of the first mdat */
+  guint64 first_mdat;
+  /* offset of last [moov] seen */
+  guint64 last_moov_offset;
+
+  /* If TRUE, qtdemux received upstream newsegment in TIME format
+   * which likely means that upstream is driving the pipeline (such as
+   * adaptive demuxers or dlna sources) */
+  gboolean upstream_format_is_time;
+
+  /* Seqnum of the seek event sent upstream.  Will be used to
+   * detect incoming FLUSH events corresponding to that */
+  guint32 offset_seek_seqnum;
+
+  /* UPSTREAM BYTE: Requested upstream byte seek offset.
+   * Currently it is only used to check if an incoming BYTE SEGMENT
+   * corresponds to a seek event that was sent upstream */
+  gint64 seek_offset;
+
+  /* UPSTREAM BYTE: Requested start/stop TIME values from
+   * downstream.
+   * Used to set on the downstream segment once the corresponding upstream
+   * BYTE SEEK has succeeded */
+  gint64 push_seek_start;
+  gint64 push_seek_stop;
+
+#if 0
+  /* gst index support */
+  GstIndex *element_index;
+  gint index_id;
+#endif
+
+  /* Whether upstream is seekable in BYTES */
+  gboolean upstream_seekable;
+  /* UPSTREAM BYTE: Size of upstream content.
+   * Note : This is only computed once ! If upstream grows in the meantime
+   * it will not be updated */
+  gint64 upstream_size;
+
+  /* UPSTREAM TIME : Contains the PTS (if any) of the
+   * buffer that contains a [moof] header. Will be used to establish
+   * the actual PTS of the samples contained within that fragment. */
+  guint64 fragment_start;
+  /* UPSTREAM TIME : The offset in bytes of the [moof]
+   * header start.
+   * Note : This is not computed from the GST_BUFFER_OFFSET field */
+  guint64 fragment_start_offset;
 };
 
 struct _GstQTDemuxClass {
diff --git a/gst/isomp4/qtdemux_types.c b/gst/isomp4/qtdemux_types.c
index dc71228..0208e8b 100644
--- a/gst/isomp4/qtdemux_types.c
+++ b/gst/isomp4/qtdemux_types.c
@@ -84,6 +84,7 @@
   {FOURCC_mhdr, "mhdr", QT_FLAG_CONTAINER,},
   {FOURCC_jp2h, "jp2h", QT_FLAG_CONTAINER,},
   {FOURCC_colr, "colr", 0,},
+  {FOURCC_ihdr, "ihdr", 0,},
   {FOURCC_fiel, "fiel", 0,},
   {FOURCC_jp2x, "jp2x", 0,},
   {FOURCC_alac, "alac", 0,},
diff --git a/gst/law/Makefile.in b/gst/law/Makefile.in
index 310f2fa..d7a6cc6 100644
--- a/gst/law/Makefile.in
+++ b/gst/law/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -352,6 +353,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -458,6 +460,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -525,6 +530,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/law/alaw-decode.c b/gst/law/alaw-decode.c
index 88df489..bf6fcfe 100644
--- a/gst/law/alaw-decode.c
+++ b/gst/law/alaw-decode.c
@@ -203,10 +203,10 @@
   GstElementClass *element_class = (GstElementClass *) klass;
   GstAudioDecoderClass *audiodec_class = GST_AUDIO_DECODER_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_add_static_pad_template (element_class,
+      &alaw_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &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);
diff --git a/gst/law/alaw-encode.c b/gst/law/alaw-encode.c
index ebee192..ff17000 100644
--- a/gst/law/alaw-encode.c
+++ b/gst/law/alaw-encode.c
@@ -408,10 +408,10 @@
   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_add_static_pad_template (element_class,
+      &alaw_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &alaw_enc_sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "A Law audio encoder", "Codec/Encoder/Audio",
diff --git a/gst/law/mulaw-decode.c b/gst/law/mulaw-decode.c
index 4d463bc..912fb8c 100644
--- a/gst/law/mulaw-decode.c
+++ b/gst/law/mulaw-decode.c
@@ -149,10 +149,10 @@
   GstElementClass *element_class = (GstElementClass *) klass;
   GstAudioDecoderClass *audiodec_class = GST_AUDIO_DECODER_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_dec_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_dec_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &mulaw_dec_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &mulaw_dec_sink_factory);
 
 
   audiodec_class->start = GST_DEBUG_FUNCPTR (gst_mulawdec_start);
diff --git a/gst/law/mulaw-encode.c b/gst/law/mulaw-encode.c
index 2e0b14b..b22ce0d 100644
--- a/gst/law/mulaw-encode.c
+++ b/gst/law/mulaw-encode.c
@@ -193,10 +193,10 @@
   audio_encoder_class->handle_frame =
       GST_DEBUG_FUNCPTR (gst_mulawenc_handle_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_enc_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&mulaw_enc_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &mulaw_enc_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &mulaw_enc_sink_factory);
 
   gst_element_class_set_static_metadata (element_class, "Mu Law audio encoder",
       "Codec/Encoder/Audio",
diff --git a/gst/level/Makefile.in b/gst/level/Makefile.in
index 6d1908d..f619003 100644
--- a/gst/level/Makefile.in
+++ b/gst/level/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/level/gstlevel.c b/gst/level/gstlevel.c
index a8e41f0..aef6f57 100644
--- a/gst/level/gstlevel.c
+++ b/gst/level/gstlevel.c
@@ -224,10 +224,10 @@
 
   GST_DEBUG_CATEGORY_INIT (level_debug, "level", 0, "Level calculation");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &sink_template_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &src_template_factory);
   gst_element_class_set_static_metadata (element_class, "Level",
       "Filter/Analyzer/Audio",
       "RMS/Peak/Decaying Peak Level messager for audio/raw",
diff --git a/gst/matroska/Makefile.in b/gst/matroska/Makefile.in
index 3e526c9..3a1382c 100644
--- a/gst/matroska/Makefile.in
+++ b/gst/matroska/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -350,6 +351,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -456,6 +458,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -523,6 +528,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/matroska/ebml-read.c b/gst/matroska/ebml-read.c
index 56448b1..0df7086 100644
--- a/gst/matroska/ebml-read.c
+++ b/gst/matroska/ebml-read.c
@@ -28,18 +28,7 @@
 #include "ebml-read.h"
 #include "ebml-ids.h"
 
-#include <math.h>
-
-/* NAN is supposed to be in math.h, Microsoft defines it in xmath.h
- * However, starting iwth Visual Studio 8, NAN is defined by default */
-#if defined (_MSC_VER) && _MSC_VER < 1500
-#include <xmath.h>
-#endif
-
-/* If everything goes wrong try 0.0/0.0 which should be NAN */
-#ifndef NAN
-#define NAN (0.0 / 0.0)
-#endif
+#include <gst/math-compat.h>
 
 GST_DEBUG_CATEGORY (ebmlread_debug);
 #define GST_CAT_DEFAULT ebmlread_debug
diff --git a/gst/matroska/matroska-demux.c b/gst/matroska/matroska-demux.c
index c82d84e..bceda52 100644
--- a/gst/matroska/matroska-demux.c
+++ b/gst/matroska/matroska-demux.c
@@ -172,7 +172,7 @@
 /* stream methods */
 static void gst_matroska_demux_reset (GstElement * element);
 static gboolean perform_seek_to_offset (GstMatroskaDemux * demux,
-    gdouble rate, guint64 offset, guint32 seqnum);
+    gdouble rate, guint64 offset, guint32 seqnum, GstSeekFlags flags);
 
 /* gobject functions */
 static void gst_matroska_demux_set_property (GObject * object,
@@ -227,14 +227,13 @@
       GST_DEBUG_FUNCPTR (gst_matroska_demux_get_index);
 #endif
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitle_src_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_src_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_src_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_src_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_templ);
 
   gst_element_class_set_static_metadata (gstelement_class, "Matroska demuxer",
       "Codec/Demuxer",
@@ -2185,7 +2184,7 @@
     /* upstream takes care of flushing and all that
      * ... and newsegment event handling takes care of the rest */
     return perform_seek_to_offset (demux, rate,
-        entry->pos + demux->common.ebml_segment_start, seqnum);
+        entry->pos + demux->common.ebml_segment_start, seqnum, flags);
   }
 
 exit:
@@ -2327,7 +2326,7 @@
       /* seek to the first subindex or legacy index */
       GST_INFO_OBJECT (demux, "Seeking to Cues at %" G_GUINT64_FORMAT, offset);
       return perform_seek_to_offset (demux, rate, offset,
-          gst_event_get_seqnum (event));
+          gst_event_get_seqnum (event), GST_SEEK_FLAG_NONE);
     }
 
     /* well, we are handling it already */
@@ -4757,8 +4756,7 @@
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       /* for fatal errors we post an error message */
-      GST_ELEMENT_ERROR (demux, STREAM, FAILED, (NULL),
-          ("stream stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (demux, ret);
       push_eos = TRUE;
     }
     if (push_eos) {
@@ -4784,7 +4782,7 @@
  */
 static gboolean
 perform_seek_to_offset (GstMatroskaDemux * demux, gdouble rate, guint64 offset,
-    guint32 seqnum)
+    guint32 seqnum, GstSeekFlags flags)
 {
   GstEvent *event;
   gboolean res = 0;
@@ -4793,8 +4791,8 @@
 
   event =
       gst_event_new_seek (rate, GST_FORMAT_BYTES,
-      GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, GST_SEEK_TYPE_SET, offset,
-      GST_SEEK_TYPE_NONE, -1);
+      flags | GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,
+      GST_SEEK_TYPE_SET, offset, GST_SEEK_TYPE_NONE, -1);
   gst_event_set_seqnum (event, seqnum);
 
   res = gst_pad_push_event (demux->common.sinkpad, event);
@@ -4908,6 +4906,7 @@
       demux->segment_seqnum = gst_event_get_seqnum (event);
       /* but keep some of the upstream segment */
       demux->common.segment.rate = segment->rate;
+      demux->common.segment.flags = segment->flags;
       /* also check if need to keep some of the requested seek position */
       if (demux->seek_offset == segment->start) {
         GST_DEBUG_OBJECT (demux, "position matches requested seek");
diff --git a/gst/matroska/matroska-mux.c b/gst/matroska/matroska-mux.c
index ab544ff..f77bd49 100644
--- a/gst/matroska/matroska-mux.c
+++ b/gst/matroska/matroska-mux.c
@@ -69,13 +69,15 @@
   PROP_WRITING_APP,
   PROP_DOCTYPE_VERSION,
   PROP_MIN_INDEX_INTERVAL,
-  PROP_STREAMABLE
+  PROP_STREAMABLE,
+  PROP_TIMECODESCALE
 };
 
 #define  DEFAULT_DOCTYPE_VERSION         2
 #define  DEFAULT_WRITING_APP             "GStreamer Matroska muxer"
 #define  DEFAULT_MIN_INDEX_INTERVAL      0
 #define  DEFAULT_STREAMABLE              FALSE
+#define  DEFAULT_TIMECODESCALE           GST_MSECOND
 
 /* WAVEFORMATEX is gst_riff_strf_auds + an extra guint16 extension size */
 #define WAVEFORMATEX_SIZE  (2 + sizeof (gst_riff_strf_auds))
@@ -296,14 +298,13 @@
   gobject_class = (GObjectClass *) klass;
   gstelement_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&videosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audiosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitlesink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_templ));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &videosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audiosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitlesink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
   gst_element_class_set_static_metadata (gstelement_class, "Matroska muxer",
       "Codec/Muxer",
       "Muxes video/audio/subtitle streams into a matroska stream",
@@ -336,6 +337,11 @@
           "be streamable", "If set to true, the output should be as if it is "
           "to be streamed and hence no indexes written or duration written.",
           DEFAULT_STREAMABLE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_TIMECODESCALE,
+      g_param_spec_int64 ("timecodescale", "Timecode Scale",
+          "TimecodeScale used to calculate the Raw Timecode of a Block", 1,
+          GST_SECOND, DEFAULT_TIMECODESCALE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_matroska_mux_change_state);
@@ -351,7 +357,6 @@
  * Start of pad option handler code
  */
 #define DEFAULT_PAD_FRAME_DURATION TRUE
-#define DEFAULT_PAD_FRAME_DURATION_VP8 FALSE
 
 enum
 {
@@ -463,6 +468,7 @@
   mux->writing_app = g_strdup (DEFAULT_WRITING_APP);
   mux->min_index_interval = DEFAULT_MIN_INDEX_INTERVAL;
   mux->ebml_write->streamable = DEFAULT_STREAMABLE;
+  mux->time_scale = DEFAULT_TIMECODESCALE;
 
   /* initialize internal variables */
   mux->index = NULL;
@@ -656,7 +662,6 @@
   mux->index = NULL;
 
   /* reset timers */
-  mux->time_scale = GST_MSECOND;
   mux->max_cluster_duration = G_MAXINT16 * mux->time_scale;
   mux->duration = 0;
 
@@ -972,13 +977,6 @@
   videocontext->pixel_width = width;
   videocontext->pixel_height = height;
 
-  /* set vp8 defaults or let user override it */
-  if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration_user == FALSE
-      && (!strcmp (mimetype, "video/x-vp8")
-          || !strcmp (mimetype, "video/x-vp9")))
-    GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration =
-        DEFAULT_PAD_FRAME_DURATION_VP8;
-
   if (GST_MATROSKAMUX_PAD_CAST (pad)->frame_duration
       && gst_structure_get_fraction (structure, "framerate", &fps_n, &fps_d)
       && fps_n > 0) {
@@ -1210,7 +1208,8 @@
   } else if (!strcmp (mimetype, "video/x-msmpeg")) {
   msmpeg43:
     /* can only make it here if preceding case verified it was version 3 */
-    context->codec_id = g_strdup (GST_MATROSKA_CODEC_ID_VIDEO_MSMPEG4V3);
+    gst_matroska_mux_set_codec_id (context,
+        GST_MATROSKA_CODEC_ID_VIDEO_MSMPEG4V3);
   } else if (!strcmp (mimetype, "video/x-pn-realvideo")) {
     gint rmversion;
     const GValue *mdpr_data;
@@ -1848,7 +1847,8 @@
         }
 
         if (buf) {
-          context->codec_id = g_strdup (GST_MATROSKA_CODEC_ID_AUDIO_AAC);
+          gst_matroska_mux_set_codec_id (context,
+              GST_MATROSKA_CODEC_ID_AUDIO_AAC);
           context->codec_priv_size = gst_buffer_get_size (buf);
           context->codec_priv = g_malloc (context->codec_priv_size);
           gst_buffer_extract (buf, 0, context->codec_priv,
@@ -2284,7 +2284,7 @@
   GstMatroskaTrackContext *context = NULL;
   gint pad_id;
   gboolean locked = TRUE;
-  gchar *id = NULL;
+  const gchar *id = NULL;
 
   if (templ == gst_element_class_get_pad_template (klass, "audio_%u")) {
     /* don't mix named and unnamed pads, if the pad already exists we fail when
@@ -2329,7 +2329,7 @@
     context->type = GST_MATROSKA_TRACK_TYPE_SUBTITLE;
     context->name = g_strdup ("Subtitle");
     /* setcaps may only provide proper one a lot later */
-    id = g_strdup ("S_SUB_UNKNOWN");
+    id = "S_SUB_UNKNOWN";
     locked = FALSE;
   } else {
     GST_WARNING_OBJECT (mux, "This is not our template!");
@@ -2348,7 +2348,8 @@
   collect_pad->mux = mux;
   collect_pad->track = context;
   gst_matroska_pad_reset (collect_pad, FALSE);
-  collect_pad->track->codec_id = id;
+  if (id)
+    gst_matroska_mux_set_codec_id (collect_pad->track, id);
   collect_pad->track->dts_only = FALSE;
 
   collect_pad->capsfunc = capsfunc;
@@ -2866,22 +2867,21 @@
   for (collected = mux->collect->data; collected;
       collected = g_slist_next (collected)) {
     GstMatroskaPad *collect_pad;
-    GstPad *thepad;
 
     collect_pad = (GstMatroskaPad *) collected->data;
-    thepad = collect_pad->collect.pad;
 
-    if (gst_pad_is_linked (thepad) && gst_pad_is_active (thepad) &&
-        collect_pad->track->codec_id != NULL) {
-      collect_pad->track->num = tracknum++;
-      child = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TRACKENTRY);
-      gst_matroska_mux_track_header (mux, collect_pad->track);
-      gst_ebml_write_master_finish (ebml, child);
-      /* some remaining pad/track setup */
-      collect_pad->default_duration_scaled =
-          gst_util_uint64_scale (collect_pad->track->default_duration,
-          1, mux->time_scale);
-    }
+    /* This will cause an error at a later time */
+    if (collect_pad->track->codec_id == NULL)
+      continue;
+
+    collect_pad->track->num = tracknum++;
+    child = gst_ebml_write_master_start (ebml, GST_MATROSKA_ID_TRACKENTRY);
+    gst_matroska_mux_track_header (mux, collect_pad->track);
+    gst_ebml_write_master_finish (ebml, child);
+    /* some remaining pad/track setup */
+    collect_pad->default_duration_scaled =
+        gst_util_uint64_scale (collect_pad->track->default_duration,
+        1, mux->time_scale);
   }
   gst_ebml_write_master_finish (ebml, master);
 
@@ -3927,6 +3927,9 @@
     case PROP_STREAMABLE:
       mux->ebml_write->streamable = g_value_get_boolean (value);
       break;
+    case PROP_TIMECODESCALE:
+      mux->time_scale = g_value_get_int64 (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -3955,6 +3958,9 @@
     case PROP_STREAMABLE:
       g_value_set_boolean (value, mux->ebml_write->streamable);
       break;
+    case PROP_TIMECODESCALE:
+      g_value_set_int64 (value, mux->time_scale);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/matroska/matroska-parse.c b/gst/matroska/matroska-parse.c
index 9bc5ce1..97c57e7 100644
--- a/gst/matroska/matroska-parse.c
+++ b/gst/matroska/matroska-parse.c
@@ -174,10 +174,8 @@
       GST_DEBUG_FUNCPTR (gst_matroska_parse_get_index);
 #endif
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_templ));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_templ);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "Matroska parser", "Codec/Parser",
@@ -2922,8 +2920,7 @@
       }
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       /* for fatal errors we post an error message */
-      GST_ELEMENT_ERROR (parse, STREAM, FAILED, (NULL),
-          ("stream stopped, reason %s", reason));
+      GST_ELEMENT_FLOW_ERROR (parse, ret);
       push_eos = TRUE;
     }
     if (push_eos) {
diff --git a/gst/matroska/webm-mux.c b/gst/matroska/webm-mux.c
index 508f095..81113ec 100644
--- a/gst/matroska/webm-mux.c
+++ b/gst/matroska/webm-mux.c
@@ -82,12 +82,11 @@
 {
   GstElementClass *gstelement_class = (GstElementClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&webm_videosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&webm_audiosink_templ));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&webm_src_templ));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &webm_videosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &webm_audiosink_templ);
+  gst_element_class_add_static_pad_template (gstelement_class, &webm_src_templ);
   gst_element_class_set_static_metadata (gstelement_class, "WebM muxer",
       "Codec/Muxer",
       "Muxes video and audio streams into a WebM stream",
diff --git a/gst/monoscope/Makefile.in b/gst/monoscope/Makefile.in
index 28a2bff..efa790b 100644
--- a/gst/monoscope/Makefile.in
+++ b/gst/monoscope/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/monoscope/gstmonoscope.c b/gst/monoscope/gstmonoscope.c
index 9ff4fd5..3e70256 100644
--- a/gst/monoscope/gstmonoscope.c
+++ b/gst/monoscope/gstmonoscope.c
@@ -104,10 +104,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_monoscope_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
   gst_element_class_set_static_metadata (gstelement_class, "Monoscope",
       "Visualization",
       "Displays a highly stabilised waveform of audio input",
diff --git a/gst/multifile/Makefile.in b/gst/multifile/Makefile.in
index 6fb713f..80583fc 100644
--- a/gst/multifile/Makefile.in
+++ b/gst/multifile/Makefile.in
@@ -101,6 +101,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -371,6 +372,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -477,6 +479,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -544,6 +549,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/multifile/gstmultifilesink.c b/gst/multifile/gstmultifilesink.c
index 5d28786..2b83c0b 100644
--- a/gst/multifile/gstmultifilesink.c
+++ b/gst/multifile/gstmultifilesink.c
@@ -318,8 +318,7 @@
   GST_DEBUG_CATEGORY_INIT (gst_multi_file_sink_debug, "multifilesink", 0,
       "multifilesink element");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sinktemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &sinktemplate);
   gst_element_class_set_static_metadata (gstelement_class, "Multi-File Sink",
       "Sink/File",
       "Write buffers to a sequentially named set of files",
@@ -581,8 +580,6 @@
   if (sink->streamheaders == NULL)
     return TRUE;
 
-  GST_DEBUG_OBJECT (sink, "Writing stream headers");
-
   /* we want to write these at the beginning */
   g_assert (sink->cur_file_size == 0);
 
@@ -610,29 +607,29 @@
     GstBuffer * buffer)
 {
   GstMapInfo map;
+  gchar *filename;
   gboolean ret;
+  GError *error = NULL;
   gboolean first_file = TRUE;
 
   gst_buffer_map (buffer, &map, GST_MAP_READ);
 
   switch (multifilesink->next_file) {
     case GST_MULTI_FILE_SINK_NEXT_BUFFER:
-      if (multifilesink->files != NULL)
-        first_file = FALSE;
-      if (!gst_multi_file_sink_open_next_file (multifilesink))
-        goto stdio_write_error;
-      if (first_file == FALSE)
-        gst_multi_file_sink_write_stream_headers (multifilesink);
-      GST_DEBUG_OBJECT (multifilesink,
-          "Writing buffer data (%" G_GSIZE_FORMAT " bytes) to new file",
-          map.size);
-      ret = fwrite (map.data, map.size, 1, multifilesink->file);
-      if (ret != 1) {
-        gst_multi_file_sink_close_file (multifilesink, NULL);
-        goto stdio_write_error;
-      }
+      gst_multi_file_sink_ensure_max_files (multifilesink);
 
-      gst_multi_file_sink_close_file (multifilesink, buffer);
+      filename = g_strdup_printf (multifilesink->filename,
+          multifilesink->index);
+      ret = g_file_set_contents (filename, (char *) map.data, map.size, &error);
+      if (!ret)
+        goto write_error;
+
+      multifilesink->files = g_slist_append (multifilesink->files, filename);
+      multifilesink->n_files += 1;
+
+      gst_multi_file_sink_post_message (multifilesink, buffer, filename);
+      multifilesink->index++;
+
       break;
     case GST_MULTI_FILE_SINK_NEXT_DISCONT:
       if (GST_BUFFER_IS_DISCONT (buffer)) {
@@ -779,6 +776,26 @@
   return GST_FLOW_OK;
 
   /* ERRORS */
+write_error:
+  {
+    switch (error->code) {
+      case G_FILE_ERROR_NOSPC:{
+        GST_ELEMENT_ERROR (multifilesink, RESOURCE, NO_SPACE_LEFT, (NULL),
+            (NULL));
+        break;
+      }
+      default:{
+        GST_ELEMENT_ERROR (multifilesink, RESOURCE, WRITE,
+            ("Error while writing to file \"%s\".", filename),
+            ("%s", g_strerror (errno)));
+      }
+    }
+    g_error_free (error);
+    g_free (filename);
+
+    gst_buffer_unmap (buffer, &map);
+    return GST_FLOW_ERROR;
+  }
 stdio_write_error:
   switch (errno) {
     case ENOSPC:
diff --git a/gst/multifile/gstmultifilesrc.c b/gst/multifile/gstmultifilesrc.c
index 316c6e0..fd24642 100644
--- a/gst/multifile/gstmultifilesrc.c
+++ b/gst/multifile/gstmultifilesrc.c
@@ -188,11 +188,10 @@
   GST_DEBUG_CATEGORY_INIT (gst_multi_file_src_debug, "multifilesrc", 0,
       "multifilesrc element");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_multi_file_src_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_multi_file_src_pad_template);
   gst_element_class_set_static_metadata (gstelement_class, "Multi-File Source",
-      "Source/File",
-      "Read a sequentially named set of files into buffers",
+      "Source/File", "Read a sequentially named set of files into buffers",
       "David Schleef <ds@schleef.org>");
 }
 
@@ -259,7 +258,8 @@
       switch (format) {
         case GST_FORMAT_BUFFERS:
         case GST_FORMAT_DEFAULT:
-          gst_query_set_position (query, GST_FORMAT_BUFFERS, mfsrc->index);
+          gst_query_set_position (query, format,
+              mfsrc->index - mfsrc->start_index);
           res = TRUE;
           break;
         default:
diff --git a/gst/multifile/gstsplitfilesrc.c b/gst/multifile/gstsplitfilesrc.c
index b66ddca..7b7f5e3 100644
--- a/gst/multifile/gstsplitfilesrc.c
+++ b/gst/multifile/gstsplitfilesrc.c
@@ -122,8 +122,8 @@
   GST_DEBUG_CATEGORY_INIT (splitfilesrc_debug, "splitfilesrc", 0,
       "splitfilesrc element");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_split_file_src_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_split_file_src_pad_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "Split-File Source",
       "Source/File",
diff --git a/gst/multifile/gstsplitmuxsink.c b/gst/multifile/gstsplitmuxsink.c
index 5cd29f7..585b1ff 100644
--- a/gst/multifile/gstsplitmuxsink.c
+++ b/gst/multifile/gstsplitmuxsink.c
@@ -55,6 +55,7 @@
 
 #include <string.h>
 #include <glib/gstdio.h>
+#include <gst/video/video.h>
 #include "gstsplitmuxsink.h"
 
 GST_DEBUG_CATEGORY_STATIC (splitmux_debug);
@@ -71,6 +72,7 @@
   PROP_LOCATION,
   PROP_MAX_SIZE_TIME,
   PROP_MAX_SIZE_BYTES,
+  PROP_SEND_KEYFRAME_REQUESTS,
   PROP_MAX_FILES,
   PROP_MUXER_OVERHEAD,
   PROP_MUXER,
@@ -81,6 +83,7 @@
 #define DEFAULT_MAX_SIZE_BYTES      0
 #define DEFAULT_MAX_FILES           0
 #define DEFAULT_MUXER_OVERHEAD      0.02
+#define DEFAULT_SEND_KEYFRAME_REQUESTS FALSE
 #define DEFAULT_MUXER "mp4mux"
 #define DEFAULT_SINK "filesink"
 
@@ -173,12 +176,12 @@
       "Convenience bin that muxes incoming streams into multiple time/size limited files",
       "Jan Schmidt <jan@centricular.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitle_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_sink_template);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_splitmux_sink_change_state);
@@ -207,11 +210,18 @@
       g_param_spec_uint64 ("max-size-bytes", "Max. size bytes",
           "Max. amount of data per file (in bytes, 0=disable)", 0, G_MAXUINT64,
           DEFAULT_MAX_SIZE_BYTES, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  g_object_class_install_property (gobject_class, PROP_SEND_KEYFRAME_REQUESTS,
+      g_param_spec_boolean ("send-keyframe-requests",
+          "Request keyframes at max-size-time",
+          "Request a keyframe every max-size-time ns to try splitting at that point. "
+          "Needs max-size-bytes to be 0 in order to be effective.",
+          DEFAULT_SEND_KEYFRAME_REQUESTS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   g_object_class_install_property (gobject_class, PROP_MAX_FILES,
       g_param_spec_uint ("max-files", "Max files",
           "Maximum number of files to keep on disk. Once the maximum is reached,"
-          "old files start to be deleted to make room for new ones.",
-          0, G_MAXUINT, DEFAULT_MAX_FILES,
+          "old files start to be deleted to make room for new ones.", 0,
+          G_MAXUINT, DEFAULT_MAX_FILES,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
 
@@ -246,6 +256,7 @@
   splitmux->threshold_time = DEFAULT_MAX_SIZE_TIME;
   splitmux->threshold_bytes = DEFAULT_MAX_SIZE_BYTES;
   splitmux->max_files = DEFAULT_MAX_FILES;
+  splitmux->send_keyframe_requests = DEFAULT_SEND_KEYFRAME_REQUESTS;
 
   GST_OBJECT_FLAG_SET (splitmux, GST_ELEMENT_FLAG_SINK);
 }
@@ -320,6 +331,11 @@
       splitmux->threshold_time = g_value_get_uint64 (value);
       GST_OBJECT_UNLOCK (splitmux);
       break;
+    case PROP_SEND_KEYFRAME_REQUESTS:
+      GST_OBJECT_LOCK (splitmux);
+      splitmux->send_keyframe_requests = g_value_get_boolean (value);
+      GST_OBJECT_UNLOCK (splitmux);
+      break;
     case PROP_MAX_FILES:
       GST_OBJECT_LOCK (splitmux);
       splitmux->max_files = g_value_get_uint (value);
@@ -372,6 +388,11 @@
       g_value_set_uint64 (value, splitmux->threshold_time);
       GST_OBJECT_UNLOCK (splitmux);
       break;
+    case PROP_SEND_KEYFRAME_REQUESTS:
+      GST_OBJECT_LOCK (splitmux);
+      g_value_set_boolean (value, splitmux->send_keyframe_requests);
+      GST_OBJECT_UNLOCK (splitmux);
+      break;
     case PROP_MAX_FILES:
       GST_OBJECT_LOCK (splitmux);
       g_value_set_uint (value, splitmux->max_files);
@@ -601,6 +622,22 @@
   } while (1);
 }
 
+static gboolean
+request_next_keyframe (GstSplitMuxSink * splitmux)
+{
+  GstEvent *ev;
+
+  if (splitmux->send_keyframe_requests == FALSE || splitmux->threshold_time == 0
+      || splitmux->threshold_bytes != 0)
+    return TRUE;
+
+  ev = gst_video_event_new_upstream_force_key_unit (splitmux->fragment_id *
+      splitmux->threshold_time, TRUE, 0);
+  GST_DEBUG_OBJECT (splitmux, "Requesting next keyframe at %" GST_TIME_FORMAT,
+      GST_TIME_ARGS (splitmux->fragment_id * splitmux->threshold_time));
+  return gst_pad_push_event (splitmux->reference_ctx->sinkpad, ev);
+}
+
 static GstPadProbeReturn
 handle_mq_output (GstPad * pad, GstPadProbeInfo * info, MqStreamCtx * ctx)
 {
@@ -711,10 +748,13 @@
 
   GST_LOG_OBJECT (splitmux,
       "Pad %" GST_PTR_FORMAT " buffer with run TS %" GST_STIME_FORMAT
-      " size %" G_GSIZE_FORMAT,
+      " size %" G_GUINT64_FORMAT,
       pad, GST_STIME_ARGS (ctx->out_running_time), buf_info->buf_size);
 
   if (splitmux->opening_first_fragment) {
+    if (request_next_keyframe (splitmux) == FALSE)
+      GST_WARNING_OBJECT (splitmux,
+          "Could not request a keyframe. Files may not split at the exact location they should");
     send_fragment_opened_closed_msg (splitmux, TRUE);
     splitmux->opening_first_fragment = FALSE;
   }
@@ -726,6 +766,7 @@
     splitmux->muxed_out_time = buf_info->run_ts;
 
   splitmux->muxed_out_bytes += buf_info->buf_size;
+  splitmux->last_frame_duration = buf_info->duration;
 
 #ifndef GST_DISABLE_GST_DEBUG
   {
@@ -807,6 +848,8 @@
 
   /* Store the overflow parameters as the basis for the next fragment */
   splitmux->mux_start_time = splitmux->muxed_out_time;
+  if (splitmux->last_frame_duration != GST_CLOCK_STIME_NONE)
+    splitmux->mux_start_time += splitmux->last_frame_duration;
   splitmux->mux_start_bytes = splitmux->muxed_out_bytes;
 
   GST_DEBUG_OBJECT (splitmux,
@@ -814,6 +857,9 @@
       GST_STIME_ARGS (splitmux->max_out_running_time));
 
   send_fragment_opened_closed_msg (splitmux, TRUE);
+  if (request_next_keyframe (splitmux) == FALSE)
+    GST_WARNING_OBJECT (splitmux,
+        "Could not request a keyframe. Files may not split at the exact location they should");
 
   GST_SPLITMUX_BROADCAST (splitmux);
 }
@@ -874,7 +920,7 @@
 handle_gathered_gop (GstSplitMuxSink * splitmux)
 {
   GList *cur;
-  gsize queued_bytes = 0;
+  guint64 queued_bytes = 0;
   GstClockTimeDiff queued_time = 0;
 
   /* Assess if the multiqueue contents overflowed the current file */
@@ -886,6 +932,9 @@
     queued_bytes += tmpctx->in_bytes;
   }
 
+  GST_LOG_OBJECT (splitmux, " queued_bytes %" G_GUINT64_FORMAT
+      " splitmuxsink->mux_start_bytes %" G_GUINT64_FORMAT, queued_bytes,
+      splitmux->mux_start_bytes);
   g_assert (queued_bytes >= splitmux->mux_start_bytes);
   g_assert (queued_time >= splitmux->mux_start_time);
 
@@ -896,18 +945,17 @@
   queued_bytes += (queued_bytes * splitmux->mux_overhead);
 
   GST_LOG_OBJECT (splitmux, "mq at TS %" GST_STIME_FORMAT
-      " bytes %" G_GSIZE_FORMAT, GST_STIME_ARGS (queued_time), queued_bytes);
+      " bytes %" G_GUINT64_FORMAT, GST_STIME_ARGS (queued_time), queued_bytes);
 
   /* Check for overrun - have we output at least one byte and overrun
    * either threshold? */
   if ((splitmux->have_muxed_something &&
           ((splitmux->threshold_bytes > 0 &&
-                  queued_bytes >= splitmux->threshold_bytes) ||
+                  queued_bytes > splitmux->threshold_bytes) ||
               (splitmux->threshold_time > 0 &&
-                  queued_time >= splitmux->threshold_time)))) {
+                  queued_time > splitmux->threshold_time)))) {
 
     splitmux->state = SPLITMUX_STATE_ENDING_FILE;
-
     GST_INFO_OBJECT (splitmux,
         "mq overflowed since last, draining out. max out TS is %"
         GST_STIME_FORMAT, GST_STIME_ARGS (splitmux->max_out_running_time));
@@ -916,8 +964,8 @@
   } else {
     /* No overflow */
     GST_LOG_OBJECT (splitmux,
-        "This GOP didn't overflow the fragment. Bytes sent %" G_GSIZE_FORMAT
-        " queued %" G_GSIZE_FORMAT " time %" GST_STIME_FORMAT " Continuing.",
+        "This GOP didn't overflow the fragment. Bytes sent %" G_GUINT64_FORMAT
+        " queued %" G_GUINT64_FORMAT " time %" GST_STIME_FORMAT " Continuing.",
         splitmux->muxed_out_bytes - splitmux->mux_start_bytes,
         queued_bytes, GST_STIME_ARGS (queued_time));
 
@@ -1160,6 +1208,7 @@
 
   buf_info->run_ts = ctx->in_running_time;
   buf_info->buf_size = gst_buffer_get_size (buf);
+  buf_info->duration = GST_BUFFER_DURATION (buf);
 
   /* Update total input byte counter for overflow detect */
   ctx->in_bytes += buf_info->buf_size;
@@ -1176,7 +1225,7 @@
   }
 
   GST_DEBUG_OBJECT (pad, "Buf TS %" GST_STIME_FORMAT
-      " total in_bytes %" G_GSIZE_FORMAT,
+      " total in_bytes %" G_GUINT64_FORMAT,
       GST_STIME_ARGS (buf_info->run_ts), ctx->in_bytes);
 
   loop_again = TRUE;
@@ -1659,7 +1708,7 @@
       splitmux->state = SPLITMUX_STATE_COLLECTING_GOP_START;
       splitmux->max_in_running_time = GST_CLOCK_STIME_NONE;
       splitmux->muxed_out_time = splitmux->mux_start_time =
-          GST_CLOCK_STIME_NONE;
+          splitmux->last_frame_duration = GST_CLOCK_STIME_NONE;
       splitmux->muxed_out_bytes = splitmux->mux_start_bytes = 0;
       splitmux->opening_first_fragment = TRUE;
       GST_SPLITMUX_UNLOCK (splitmux);
diff --git a/gst/multifile/gstsplitmuxsink.h b/gst/multifile/gstsplitmuxsink.h
index 8a43892..aeda8a5 100644
--- a/gst/multifile/gstsplitmuxsink.h
+++ b/gst/multifile/gstsplitmuxsink.h
@@ -49,7 +49,8 @@
 {
   gboolean keyframe;
   GstClockTimeDiff run_ts;
-  gsize buf_size;
+  guint64 buf_size;
+  GstClockTime duration;
 } MqStreamBuf;
 
 typedef struct _MqStreamCtx
@@ -73,7 +74,7 @@
   GstClockTimeDiff in_running_time;
   GstClockTimeDiff out_running_time;
 
-  gsize in_bytes;
+  guint64 in_bytes;
 
   GQueue queued_bufs;
 
@@ -95,6 +96,7 @@
   GstClockTime threshold_time;
   guint64 threshold_bytes;
   guint max_files;
+  gboolean send_keyframe_requests;
 
   guint mq_max_buffers;
 
@@ -118,11 +120,12 @@
   GstClockTimeDiff max_out_running_time;
 
   GstClockTimeDiff muxed_out_time;
-  gsize muxed_out_bytes;
+  guint64 muxed_out_bytes;
   gboolean have_muxed_something;
 
   GstClockTimeDiff mux_start_time;
-  gsize mux_start_bytes;
+  guint64 mux_start_bytes;
+  GstClockTime last_frame_duration;
 
   gboolean opening_first_fragment;
   gboolean switching_fragment;
diff --git a/gst/multifile/gstsplitmuxsrc.c b/gst/multifile/gstsplitmuxsrc.c
index 6cd9e1f..b710ca6 100644
--- a/gst/multifile/gstsplitmuxsrc.c
+++ b/gst/multifile/gstsplitmuxsrc.c
@@ -61,6 +61,14 @@
   PROP_LOCATION
 };
 
+enum
+{
+  SIGNAL_FORMAT_LOCATION,
+  SIGNAL_LAST
+};
+
+static guint signals[SIGNAL_LAST];
+
 static GstStaticPadTemplate video_src_template =
 GST_STATIC_PAD_TEMPLATE ("video",
     GST_PAD_SRC,
@@ -198,12 +206,12 @@
       "Source that reads a set of files created by splitmuxsink",
       "Jan Schmidt <jan@centricular.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&audio_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&subtitle_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &audio_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &subtitle_src_template);
 
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_splitmux_src_change_state);
@@ -212,6 +220,20 @@
       g_param_spec_string ("location", "File Input Pattern",
           "Glob pattern for the location of the files to read", NULL,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  /**
+   * GstSplitMuxSrc::format-location:
+   * @splitmux: the #GstSplitMuxSrc
+   *
+   * Returns: A NULL-terminated sorted array of strings containing the
+   *   filenames of the input files. The array will be freed internally
+   *   using g_strfreev()
+   *
+   * Since: 1.8
+   */
+  signals[SIGNAL_FORMAT_LOCATION] =
+      g_signal_new ("format-location", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL, G_TYPE_STRV, 0);
 }
 
 static void
@@ -527,10 +549,7 @@
       GST_INFO_OBJECT (splitpad, "Stopping due to pad_push() result %d", ret);
       gst_pad_pause_task (pad);
       if (ret < GST_FLOW_EOS) {
-        const gchar *reason = gst_flow_get_name (ret);
-        GST_ELEMENT_ERROR (splitmux, STREAM, FAILED,
-            (_("Internal data flow error.")),
-            ("streaming task paused, reason %s (%d)", reason, ret));
+        GST_ELEMENT_FLOW_ERROR (splitmux, ret);
       }
     }
   }
@@ -601,17 +620,22 @@
 
   GST_DEBUG_OBJECT (splitmux, "Starting");
 
-  GST_OBJECT_LOCK (splitmux);
-  if (splitmux->location != NULL && splitmux->location[0] != '\0') {
-    basename = g_path_get_basename (splitmux->location);
-    dirname = g_path_get_dirname (splitmux->location);
+  g_signal_emit (splitmux, signals[SIGNAL_FORMAT_LOCATION], 0, &files);
+
+  if (files == NULL || *files == NULL) {
+    GST_OBJECT_LOCK (splitmux);
+    if (splitmux->location != NULL && splitmux->location[0] != '\0') {
+      basename = g_path_get_basename (splitmux->location);
+      dirname = g_path_get_dirname (splitmux->location);
+    }
+    GST_OBJECT_UNLOCK (splitmux);
+
+    g_strfreev (files);
+    files = gst_split_util_find_files (dirname, basename, &err);
+
+    if (files == NULL || *files == NULL)
+      goto no_files;
   }
-  GST_OBJECT_UNLOCK (splitmux);
-
-  files = gst_split_util_find_files (dirname, basename, &err);
-
-  if (files == NULL || *files == NULL)
-    goto no_files;
 
   SPLITMUX_SRC_LOCK (splitmux);
   splitmux->pads_complete = FALSE;
diff --git a/gst/multipart/Makefile.in b/gst/multipart/Makefile.in
index 94dedcf..67064d1 100644
--- a/gst/multipart/Makefile.in
+++ b/gst/multipart/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/multipart/multipartdemux.c b/gst/multipart/multipartdemux.c
index 7695ae5..afbc42a 100644
--- a/gst/multipart/multipartdemux.c
+++ b/gst/multipart/multipartdemux.c
@@ -160,13 +160,12 @@
 
   gstelement_class->change_state = gst_multipart_demux_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&multipart_demux_sink_template_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&multipart_demux_src_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &multipart_demux_sink_template_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &multipart_demux_src_template_factory);
   gst_element_class_set_static_metadata (gstelement_class, "Multipart demuxer",
-      "Codec/Demuxer",
-      "demux multipart streams",
+      "Codec/Demuxer", "demux multipart streams",
       "Wim Taymans <wim.taymans@gmail.com>, Sjoerd Simons <sjoerd@luon.net>");
 }
 
diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c
index 2ac67c1..e6271ff 100644
--- a/gst/multipart/multipartmux.c
+++ b/gst/multipart/multipartmux.c
@@ -121,10 +121,8 @@
   gstelement_class->request_new_pad = gst_multipart_mux_request_new_pad;
   gstelement_class->change_state = gst_multipart_mux_change_state;
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Multipart muxer",
       "Codec/Muxer", "mux multipart streams", "Wim Taymans <wim@fluendo.com>");
@@ -312,13 +310,20 @@
   if (new == NULL || new->buffer == NULL)
     return -1;
 
+  if (GST_CLOCK_TIME_IS_VALID (old->dts_timestamp) &&
+      GST_CLOCK_TIME_IS_VALID (new->dts_timestamp)) {
+    oldtime = old->dts_timestamp;
+    newtime = new->dts_timestamp;
+  } else {
+    oldtime = old->pts_timestamp;
+    newtime = new->pts_timestamp;
+  }
+
   /* no timestamp on old buffer, it must go first */
-  oldtime = old->timestamp;
   if (oldtime == GST_CLOCK_TIME_NONE)
     return -1;
 
   /* no timestamp on new buffer, it must go first */
-  newtime = new->timestamp;
   if (newtime == GST_CLOCK_TIME_NONE)
     return 1;
 
@@ -357,14 +362,22 @@
 
       buf = gst_collect_pads_pop (mux->collect, data);
 
-      /* Store timestamp with segment_start and preroll */
-      if (buf && GST_BUFFER_TIMESTAMP_IS_VALID (buf)) {
-        pad->timestamp =
+      /* Store timestamps with segment_start and preroll */
+      if (buf && GST_BUFFER_PTS_IS_VALID (buf)) {
+        pad->pts_timestamp =
             gst_segment_to_running_time (&data->segment, GST_FORMAT_TIME,
-            GST_BUFFER_TIMESTAMP (buf));
+            GST_BUFFER_PTS (buf));
       } else {
-        pad->timestamp = GST_CLOCK_TIME_NONE;
+        pad->pts_timestamp = GST_CLOCK_TIME_NONE;
       }
+      if (buf && GST_BUFFER_DTS_IS_VALID (buf)) {
+        pad->dts_timestamp =
+            gst_segment_to_running_time (&data->segment, GST_FORMAT_TIME,
+            GST_BUFFER_DTS (buf));
+      } else {
+        pad->dts_timestamp = GST_CLOCK_TIME_NONE;
+      }
+
 
       pad->buffer = buf;
     }
@@ -464,10 +477,13 @@
     GstClockTime time;
     GstSegment segment;
 
-    if (best->timestamp != -1)
-      time = best->timestamp;
-    else
+    if (best->dts_timestamp != GST_CLOCK_TIME_NONE) {
+      time = best->dts_timestamp;
+    } else if (best->pts_timestamp != GST_CLOCK_TIME_NONE) {
+      time = best->pts_timestamp;
+    } else {
       time = 0;
+    }
 
     /* for the segment, we take the first timestamp we see, we don't know the
      * length and the position is 0 */
@@ -502,9 +518,10 @@
   gst_buffer_fill (headerbuf, 0, header, headerlen);
   g_free (header);
 
-  /* the header has the same timestamp as the data buffer (which we will push
+  /* the header has the same timestamps as the data buffer (which we will push
    * below) and has a duration of 0 */
-  GST_BUFFER_TIMESTAMP (headerbuf) = best->timestamp;
+  GST_BUFFER_PTS (headerbuf) = best->pts_timestamp;
+  GST_BUFFER_DTS (headerbuf) = best->dts_timestamp;
   GST_BUFFER_DURATION (headerbuf) = 0;
   GST_BUFFER_OFFSET (headerbuf) = mux->offset;
   mux->offset += headerlen;
@@ -523,8 +540,9 @@
   databuf = gst_buffer_make_writable (best->buffer);
   best->buffer = NULL;
 
-  /* we need to updated the timestamp to match the running_time */
-  GST_BUFFER_TIMESTAMP (databuf) = best->timestamp;
+  /* we need to updated the timestamps to match the running_time */
+  GST_BUFFER_PTS (databuf) = best->pts_timestamp;
+  GST_BUFFER_DTS (databuf) = best->dts_timestamp;
   GST_BUFFER_OFFSET (databuf) = mux->offset;
   mux->offset += gst_buffer_get_size (databuf);
   GST_BUFFER_OFFSET_END (databuf) = mux->offset;
@@ -541,9 +559,10 @@
   footerbuf = gst_buffer_new_allocate (NULL, 2, NULL);
   gst_buffer_fill (footerbuf, 0, "\r\n", 2);
 
-  /* the footer has the same timestamp as the data buffer and has a
+  /* the footer has the same timestamps as the data buffer and has a
    * duration of 0 */
-  GST_BUFFER_TIMESTAMP (footerbuf) = best->timestamp;
+  GST_BUFFER_PTS (footerbuf) = best->pts_timestamp;
+  GST_BUFFER_DTS (footerbuf) = best->dts_timestamp;
   GST_BUFFER_DURATION (footerbuf) = 0;
   GST_BUFFER_OFFSET (footerbuf) = mux->offset;
   mux->offset += 2;
diff --git a/gst/multipart/multipartmux.h b/gst/multipart/multipartmux.h
index f66d35e..3b44f5a 100644
--- a/gst/multipart/multipartmux.h
+++ b/gst/multipart/multipartmux.h
@@ -45,7 +45,9 @@
   GstCollectData collect;       /* we extend the CollectData */
 
   GstBuffer *buffer;            /* the queued buffer for this pad */
-  GstClockTime timestamp;       /* its timestamp, converted to running_time so that we can
+  GstClockTime pts_timestamp;   /* its pts timestamp, converted to running_time so that we can
+                                   correctly sort over multiple segments. */
+  GstClockTime dts_timestamp;   /* its dts timestamp, converted to running_time so that we can
                                    correctly sort over multiple segments. */
   GstPad *pad;
 }
diff --git a/gst/replaygain/Makefile.in b/gst/replaygain/Makefile.in
index d644145..8b1101a 100644
--- a/gst/replaygain/Makefile.in
+++ b/gst/replaygain/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -346,6 +347,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -452,6 +454,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -519,6 +524,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/replaygain/gstrganalysis.c b/gst/replaygain/gstrganalysis.c
index 98c3ca6..a272c10 100644
--- a/gst/replaygain/gstrganalysis.c
+++ b/gst/replaygain/gstrganalysis.c
@@ -267,10 +267,8 @@
   trans_class->stop = GST_DEBUG_FUNCPTR (gst_rg_analysis_stop);
   trans_class->passthrough_on_same_caps = TRUE;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "ReplayGain analysis",
       "Filter/Analyzer/Audio",
       "Perform the ReplayGain analysis",
diff --git a/gst/replaygain/gstrglimiter.c b/gst/replaygain/gstrglimiter.c
index 95363be..5e04e7d 100644
--- a/gst/replaygain/gstrglimiter.c
+++ b/gst/replaygain/gstrglimiter.c
@@ -106,10 +106,8 @@
   trans_class->transform_ip = GST_DEBUG_FUNCPTR (gst_rg_limiter_transform_ip);
   trans_class->passthrough_on_same_caps = FALSE;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
   gst_element_class_set_static_metadata (element_class, "ReplayGain limiter",
       "Filter/Effect/Audio",
       "Apply signal compression to raw audio data",
diff --git a/gst/replaygain/gstrgvolume.c b/gst/replaygain/gstrgvolume.c
index a53f4d6..7c4f281 100644
--- a/gst/replaygain/gstrgvolume.c
+++ b/gst/replaygain/gstrgvolume.c
@@ -271,10 +271,8 @@
   bin_class->add_element = NULL;
   bin_class->remove_element = NULL;
 
-  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_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
   gst_element_class_set_static_metadata (element_class, "ReplayGain volume",
       "Filter/Effect/Audio",
       "Apply ReplayGain volume adjustment",
diff --git a/gst/rtp/Makefile.am b/gst/rtp/Makefile.am
index 5315f9d..f5d3c9a 100644
--- a/gst/rtp/Makefile.am
+++ b/gst/rtp/Makefile.am
@@ -163,6 +163,7 @@
 	gstrtph265types.h \
 	gstrtpj2kdepay.h \
 	gstrtpj2kpay.h \
+	gstrtpj2kcommon.h \
 	gstrtpjpegdepay.h \
 	gstrtpjpegpay.h \
 	gstrtpklvdepay.h \
diff --git a/gst/rtp/Makefile.in b/gst/rtp/Makefile.in
index 3e3d37b..866e878 100644
--- a/gst/rtp/Makefile.in
+++ b/gst/rtp/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -394,6 +395,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -500,6 +502,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -567,6 +572,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -781,6 +787,7 @@
 	gstrtph265types.h \
 	gstrtpj2kdepay.h \
 	gstrtpj2kpay.h \
+	gstrtpj2kcommon.h \
 	gstrtpjpegdepay.h \
 	gstrtpjpegpay.h \
 	gstrtpklvdepay.h \
diff --git a/gst/rtp/dboolhuff.c b/gst/rtp/dboolhuff.c
index 6c94504..3d0fc8f 100644
--- a/gst/rtp/dboolhuff.c
+++ b/gst/rtp/dboolhuff.c
@@ -11,7 +11,8 @@
 #include "dboolhuff.h"
 
 #ifdef _MSC_VER
-__declspec(align(16)) const unsigned char vp8_norm[256] = {
+__declspec (align (16))
+     const unsigned char vp8_norm[256] = {
 #else
 const unsigned char vp8_norm[256] __attribute__ ((aligned (16))) = {
 #endif
diff --git a/gst/rtp/gstasteriskh263.c b/gst/rtp/gstasteriskh263.c
index 0ab609d..8aa7fd4 100644
--- a/gst/rtp/gstasteriskh263.c
+++ b/gst/rtp/gstasteriskh263.c
@@ -78,10 +78,10 @@
 
   gstelement_class->change_state = gst_asteriskh263_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_asteriskh263_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_asteriskh263_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_asteriskh263_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_asteriskh263_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Asterisk H263 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpL16depay.c b/gst/rtp/gstrtpL16depay.c
index 41a8fff..6e81946 100644
--- a/gst/rtp/gstrtpL16depay.c
+++ b/gst/rtp/gstrtpL16depay.c
@@ -99,10 +99,10 @@
   gstrtpbasedepayload_class->set_caps = gst_rtp_L16_depay_setcaps;
   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));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L16_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L16_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L16_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpL16pay.c b/gst/rtp/gstrtpL16pay.c
index db1c7de..4783a65 100644
--- a/gst/rtp/gstrtpL16pay.c
+++ b/gst/rtp/gstrtpL16pay.c
@@ -104,10 +104,10 @@
   gstrtpbasepayload_class->get_caps = gst_rtp_L16_pay_getcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_L16_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L16_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L16_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L16_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L16_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpL24depay.c b/gst/rtp/gstrtpL24depay.c
index dc7a338..9ec0349 100644
--- a/gst/rtp/gstrtpL24depay.c
+++ b/gst/rtp/gstrtpL24depay.c
@@ -88,10 +88,10 @@
   gstrtpbasedepayload_class->set_caps = gst_rtp_L24_depay_setcaps;
   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));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L24_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L24_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L24_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpL24pay.c b/gst/rtp/gstrtpL24pay.c
index 1bb37cb..936bd44 100644
--- a/gst/rtp/gstrtpL24pay.c
+++ b/gst/rtp/gstrtpL24pay.c
@@ -93,10 +93,10 @@
   gstrtpbasepayload_class->get_caps = gst_rtp_L24_pay_getcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_L24_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L24_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_L24_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L24_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_L24_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpac3depay.c b/gst/rtp/gstrtpac3depay.c
index b9df488..50342c8 100644
--- a/gst/rtp/gstrtpac3depay.c
+++ b/gst/rtp/gstrtpac3depay.c
@@ -80,10 +80,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ac3_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ac3_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ac3_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ac3_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP AC3 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpac3pay.c b/gst/rtp/gstrtpac3pay.c
index 9865894..021016d 100644
--- a/gst/rtp/gstrtpac3pay.c
+++ b/gst/rtp/gstrtpac3pay.c
@@ -100,10 +100,10 @@
 
   gstelement_class->change_state = gst_rtp_ac3_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ac3_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ac3_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ac3_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ac3_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP AC3 audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpamrdepay.c b/gst/rtp/gstrtpamrdepay.c
index 60439f7..1c87a1a 100644
--- a/gst/rtp/gstrtpamrdepay.c
+++ b/gst/rtp/gstrtpamrdepay.c
@@ -140,10 +140,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_amr_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_amr_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_amr_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_amr_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP AMR depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpamrpay.c b/gst/rtp/gstrtpamrpay.c
index f4849a8..300be8f 100644
--- a/gst/rtp/gstrtpamrpay.c
+++ b/gst/rtp/gstrtpamrpay.c
@@ -125,10 +125,10 @@
 
   gstelement_class->change_state = gst_rtp_amr_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_amr_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_amr_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_amr_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_amr_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP AMR payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpbvdepay.c b/gst/rtp/gstrtpbvdepay.c
index 6b7bb18..0482382 100644
--- a/gst/rtp/gstrtpbvdepay.c
+++ b/gst/rtp/gstrtpbvdepay.c
@@ -74,10 +74,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_bv_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_bv_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_bv_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_bv_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP BroadcomVoice depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpbvpay.c b/gst/rtp/gstrtpbvpay.c
index 24a4fd4..e202015 100644
--- a/gst/rtp/gstrtpbvpay.c
+++ b/gst/rtp/gstrtpbvpay.c
@@ -81,10 +81,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_bv_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_bv_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_bv_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_bv_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP BV Payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpceltdepay.c b/gst/rtp/gstrtpceltdepay.c
index ed5b3ae..3234c14 100644
--- a/gst/rtp/gstrtpceltdepay.c
+++ b/gst/rtp/gstrtpceltdepay.c
@@ -87,10 +87,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_celt_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_celt_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_celt_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_celt_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP CELT depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpceltpay.c b/gst/rtp/gstrtpceltpay.c
index 37dc112..1d5287d 100644
--- a/gst/rtp/gstrtpceltpay.c
+++ b/gst/rtp/gstrtpceltpay.c
@@ -85,10 +85,10 @@
 
   gstelement_class->change_state = gst_rtp_celt_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_celt_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_celt_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_celt_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_celt_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP CELT payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpdvdepay.c b/gst/rtp/gstrtpdvdepay.c
index eca969c..0235b71 100644
--- a/gst/rtp/gstrtpdvdepay.c
+++ b/gst/rtp/gstrtpdvdepay.c
@@ -97,10 +97,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_rtp_dv_depay_change_state);
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP DV Depayloader",
       "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpdvpay.c b/gst/rtp/gstrtpdvpay.c
index ddda67e..4408806 100644
--- a/gst/rtp/gstrtpdvpay.c
+++ b/gst/rtp/gstrtpdvpay.c
@@ -120,10 +120,10 @@
           GST_TYPE_DV_PAY_MODE, DEFAULT_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dv_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dv_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dv_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dv_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP DV Payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg722depay.c b/gst/rtp/gstrtpg722depay.c
index 31c6ab4..846251e 100644
--- a/gst/rtp/gstrtpg722depay.c
+++ b/gst/rtp/gstrtpg722depay.c
@@ -81,10 +81,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g722_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g722_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g722_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g722_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg722pay.c b/gst/rtp/gstrtpg722pay.c
index aaa3b36..c2fe88d 100644
--- a/gst/rtp/gstrtpg722pay.c
+++ b/gst/rtp/gstrtpg722pay.c
@@ -76,10 +76,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g722_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g722_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g722_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g722_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg723depay.c b/gst/rtp/gstrtpg723depay.c
index c66473c..901d9ae 100644
--- a/gst/rtp/gstrtpg723depay.c
+++ b/gst/rtp/gstrtpg723depay.c
@@ -93,10 +93,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g723_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g723_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g723_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g723_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.723 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg723pay.c b/gst/rtp/gstrtpg723pay.c
index 0937c85..2612218 100644
--- a/gst/rtp/gstrtpg723pay.c
+++ b/gst/rtp/gstrtpg723pay.c
@@ -84,10 +84,10 @@
 
   gstelement_class->change_state = gst_rtp_g723_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g723_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g723_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g723_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g723_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.723 payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg726depay.c b/gst/rtp/gstrtpg726depay.c
index efaadea..4bedb7e 100644
--- a/gst/rtp/gstrtpg726depay.c
+++ b/gst/rtp/gstrtpg726depay.c
@@ -114,10 +114,10 @@
           "Force AAL2 decoding for compatibility with bad payloaders",
           DEFAULT_FORCE_AAL2, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g726_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g726_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g726_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g726_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.726 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg726pay.c b/gst/rtp/gstrtpg726pay.c
index 7c7e9a8..09bfb5d 100644
--- a/gst/rtp/gstrtpg726pay.c
+++ b/gst/rtp/gstrtpg726pay.c
@@ -97,10 +97,10 @@
           "Force AAL2 encoding for compatibility with bad depayloaders",
           DEFAULT_FORCE_AAL2, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g726_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g726_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g726_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g726_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.726 payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg729depay.c b/gst/rtp/gstrtpg729depay.c
index 56f921a..065da28 100644
--- a/gst/rtp/gstrtpg729depay.c
+++ b/gst/rtp/gstrtpg729depay.c
@@ -93,10 +93,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g729_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g729_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g729_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g729_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.729 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpg729pay.c b/gst/rtp/gstrtpg729pay.c
index ad89734..f327c8c 100644
--- a/gst/rtp/gstrtpg729pay.c
+++ b/gst/rtp/gstrtpg729pay.c
@@ -103,10 +103,10 @@
 
   gstelement_class->change_state = gst_rtp_g729_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g729_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_g729_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g729_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_g729_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP G.729 payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpgsmdepay.c b/gst/rtp/gstrtpgsmdepay.c
index 7b781e2..ddde3f0 100644
--- a/gst/rtp/gstrtpgsmdepay.c
+++ b/gst/rtp/gstrtpgsmdepay.c
@@ -75,10 +75,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbase_depayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gsm_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gsm_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gsm_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gsm_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP GSM depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpgsmpay.c b/gst/rtp/gstrtpgsmpay.c
index 56c72b6..93888d7 100644
--- a/gst/rtp/gstrtpgsmpay.c
+++ b/gst/rtp/gstrtpgsmpay.c
@@ -74,10 +74,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gsm_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gsm_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gsm_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gsm_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP GSM payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpgstdepay.c b/gst/rtp/gstrtpgstdepay.c
index 5c1476a..7d05742 100644
--- a/gst/rtp/gstrtpgstdepay.c
+++ b/gst/rtp/gstrtpgstdepay.c
@@ -80,10 +80,10 @@
 
   gstelement_class->change_state = gst_rtp_gst_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gst_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gst_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gst_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gst_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "GStreamer depayloader", "Codec/Depayloader/Network",
diff --git a/gst/rtp/gstrtpgstpay.c b/gst/rtp/gstrtpgstpay.c
index 20076fb..f5511f4 100644
--- a/gst/rtp/gstrtpgstpay.c
+++ b/gst/rtp/gstrtpgstpay.c
@@ -126,10 +126,10 @@
 
   gstelement_class->change_state = gst_rtp_gst_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gst_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_gst_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gst_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_gst_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP GStreamer payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtph261depay.c b/gst/rtp/gstrtph261depay.c
index d50ff1c..e9040c9 100644
--- a/gst/rtp/gstrtph261depay.c
+++ b/gst/rtp/gstrtph261depay.c
@@ -105,9 +105,9 @@
 
   marker = gst_rtp_buffer_get_marker (rtp);
 
-  if (payload_len < 4) {
-    GST_WARNING_OBJECT (depay,
-        "Dropping packet with payload length invalid length");
+  if (payload_len < header_len + 1) {
+    /* Must have at least one byte payload */
+    GST_WARNING_OBJECT (depay, "Dropping packet with invalid payload length");
     return NULL;
   }
 
@@ -259,10 +259,10 @@
   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_add_static_pad_template (gstelement_class,
+      &gst_rtp_h261_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h261_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H261 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtph261pay.c b/gst/rtp/gstrtph261pay.c
index ebcf80e..4b040be 100644
--- a/gst/rtp/gstrtph261pay.c
+++ b/gst/rtp/gstrtph261pay.c
@@ -1047,10 +1047,10 @@
   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_add_static_pad_template (element_class,
+      &gst_rtp_h261_pay_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_h261_pay_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "RTP H261 packet payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtph263depay.c b/gst/rtp/gstrtph263depay.c
index 4b31b9e..0f1bed7 100644
--- a/gst/rtp/gstrtph263depay.c
+++ b/gst/rtp/gstrtph263depay.c
@@ -101,10 +101,10 @@
 
   gstelement_class->change_state = gst_rtp_h263_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H263 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtph263pay.c b/gst/rtp/gstrtph263pay.c
index f60721a..7ed2d6c 100644
--- a/gst/rtp/gstrtph263pay.c
+++ b/gst/rtp/gstrtph263pay.c
@@ -424,10 +424,10 @@
           "Disable packetization modes B and C", DEFAULT_MODE_A,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H263 packet payloader", "Codec/Payloader/Network/RTP",
@@ -770,7 +770,7 @@
 
   code = value >> 16;
 
-  GST_DEBUG ("value:0x%08x, code:0x%04x", value, code);
+  GST_LOG ("value:0x%08x, code:0x%04x", value, code);
 
   for (i = 0; i < MCBPC_I_LEN; i++) {
     if ((code & mcbpc_I[i][1]) == mcbpc_I[i][0]) {
@@ -795,7 +795,7 @@
 
   code = value >> 16;
 
-  GST_DEBUG ("value:0x%08x, code:0x%04x", value, code);
+  GST_LOG ("value:0x%08x, code:0x%04x", value, code);
 
   for (i = 0; i < MCBPC_P_LEN; i++) {
     if ((code & mcbpc_P[i][1]) == mcbpc_P[i][0]) {
@@ -820,7 +820,7 @@
 
   code = value >> 24;
 
-  GST_DEBUG ("value:0x%08x, code:0x%04x", value, code);
+  GST_LOG ("value:0x%08x, code:0x%04x", value, code);
 
   for (i = 0; i < CBPY_LEN; i++) {
     if ((code & cbpy_table[i][1]) == cbpy_table[i][0]) {
@@ -845,7 +845,7 @@
 
   code = value >> 16;
 
-  GST_DEBUG ("value:0x%08x, code:0x%04x", value, code);
+  GST_LOG ("value:0x%08x, code:0x%04x", value, code);
 
   for (i = 0; i < MVD_LEN; i++) {
     if ((code & mvd[i][1]) == mvd[i][0]) {
@@ -870,7 +870,7 @@
 
   code = value >> 16;
 
-  GST_DEBUG ("value:0x%08x, code:0x%04x", value, code);
+  GST_LOG ("value:0x%08x, code:0x%04x", value, code);
 
   for (i = 0; i < TCOEF_LEN; i++) {
     if ((code & tcoef[i][1]) == tcoef[i][0]) {
@@ -894,21 +894,21 @@
     guint rest_bits, guint8 ** orig_data, guint8 ** data_end)
 {
 
-  GST_DEBUG ("Moving window: 0x%08x from: %p for %d bits, rest_bits: %d",
-      context->window, context->win_end, n, rest_bits);
+  GST_LOG
+      ("Moving window: 0x%08x from: %p for %d bits, rest_bits: %d, data_end %p",
+      context->window, context->win_end, n, rest_bits, *data_end);
 
   if (n == 0)
     return rest_bits;
 
   while (n != 0 || context->win_end == ((*data_end) + 1)) {
-    //guint8 a = *data;
+    guint8 b = context->win_end <= *data_end ? *context->win_end : 0;
     if (rest_bits == 0) {
       if (n > 8) {
-        context->window = (context->window << 8) | *context->win_end;
+        context->window = (context->window << 8) | b;
         n -= 8;
       } else {
-        context->window =
-            (context->window << n) | (*context->win_end >> (8 - n));
+        context->window = (context->window << n) | (b >> (8 - n));
         rest_bits = 8 - n;
         if (rest_bits == 0)
           context->win_end++;
@@ -916,15 +916,14 @@
       }
     } else {
       if (n > rest_bits) {
-        context->window =
-            (context->window << rest_bits) | (*context->
-            win_end & (((guint) pow (2.0, (double) rest_bits)) - 1));
+        context->window = (context->window << rest_bits) |
+            (b & (((guint) pow (2.0, (double) rest_bits)) - 1));
         n -= rest_bits;
         rest_bits = 0;
       } else {
-        context->window =
-            (context->window << n) | ((*context->win_end & (((guint) pow (2.0,
-                            (double) rest_bits)) - 1)) >> (rest_bits - n));
+        context->window = (context->window << n) |
+            ((b & (((guint) pow (2.0, (double) rest_bits)) - 1)) >>
+            (rest_bits - n));
         rest_bits -= n;
         if (rest_bits == 0)
           context->win_end++;
@@ -937,7 +936,7 @@
 
   *orig_data = context->win_end - 4;
 
-  GST_DEBUG
+  GST_LOG
       ("Window moved to %p with value: 0x%08x and orig_data: %p rest_bits: %d",
       context->win_end, context->window, *orig_data, rest_bits);
   return rest_bits;
@@ -952,19 +951,16 @@
 gst_rtp_h263_pay_B_mbfinder (GstRtpH263PayContext * context,
     GstRtpH263PayGob * gob, GstRtpH263PayMB * macroblock, guint mba)
 {
-
   guint mb_type_index;
   guint cbpy_type_index;
   guint tcoef_type_index;
   GstRtpH263PayMB *mac;
   GstRtpH263PayBoundry boundry;
 
-
   gst_rtp_h263_pay_boundry_init (&boundry, macroblock->end,
       macroblock->end, 8 - macroblock->ebit, macroblock->ebit);
   mac = gst_rtp_h263_pay_mb_new (&boundry, mba);
 
-
   if (mac->sbit == 8) {
     mac->start++;
 //     mac->end++;
@@ -974,6 +970,9 @@
   GST_LOG ("current_pos:%p, end:%p, rest_bits:%d, window:%x",
       mac->start, mac->end, macroblock->ebit, context->window);
 
+  /* macroblock isn't needed anymore */
+  gst_rtp_h263_pay_mb_destroy (macroblock);
+
   GST_LOG ("Current pos after COD: %p", mac->end);
 
   if (context->piclayer->ptype_pictype == 0) {
@@ -985,7 +984,7 @@
     //Step 2 decode MCBPC I
     mb_type_index = gst_rtp_h263_pay_decode_mcbpc_I (context->window);
 
-    GST_DEBUG ("MCBPC index: %d", mb_type_index);
+    GST_LOG ("MCBPC index: %d", mb_type_index);
     if (mb_type_index == -1) {
       GST_ERROR ("MB index shouldn't be -1 in window: %08x", context->window);
       goto beach;
@@ -1004,7 +1003,7 @@
     //Step 3 decode CBPY I
     cbpy_type_index = gst_rtp_h263_pay_decode_cbpy (context->window, cbpy_I);
 
-    GST_DEBUG ("CBPY index: %d", cbpy_type_index);
+    GST_LOG ("CBPY index: %d", cbpy_type_index);
     if (cbpy_type_index == -1) {
       GST_ERROR ("CBPY index shouldn't be -1 in window: %08x", context->window);
       goto beach;
@@ -1017,7 +1016,7 @@
     //Step 4 decode rest of MB
     //MB type 1 and 4 have DQUANT - we store it for packaging purposes
     if (mcbpc_I[mb_type_index][5] == 4) {
-      GST_DEBUG ("Shifting DQUANT");
+      GST_LOG ("Shifting DQUANT");
 
       mac->quant = (context->window >> 30);
 
@@ -1029,7 +1028,7 @@
     last = 0;
     for (i = 0; i < N_BLOCKS; i++) {
 
-      GST_DEBUG ("Decoding INTRADC and TCOEF, i:%d", i);
+      GST_LOG ("Decoding INTRADC and TCOEF, i:%d", i);
       mac->ebit =
           gst_rtp_h263_pay_move_window_right (context, 8, mac->ebit, &mac->end,
           &gob->end);
@@ -1044,7 +1043,7 @@
         while (last == 0) {
           tcoef_type_index = gst_rtp_h263_pay_decode_tcoef (context->window);
 
-          GST_DEBUG ("TCOEF index: %d", tcoef_type_index);
+          GST_LOG ("TCOEF index: %d", tcoef_type_index);
           if (tcoef_type_index == -1) {
             GST_ERROR ("TCOEF index shouldn't be -1 in window: %08x",
                 context->window);
@@ -1077,13 +1076,13 @@
     guint ind;
 
     //Step 1 check COD
-    GST_DEBUG ("Checking for COD");
+    GST_LOG ("Checking for COD");
     if ((context->window & 0x80000000) == 0x80000000) {
       //The MB is not coded
       mac->ebit =
           gst_rtp_h263_pay_move_window_right (context, 1, mac->ebit, &mac->end,
           &gob->end);
-      GST_DEBUG ("COOOOOOOOOOOD = 1");
+      GST_LOG ("COOOOOOOOOOOD = 1");
 
       return mac;
     } else {
@@ -1096,7 +1095,7 @@
     //Step 2 decode MCBPC P
     mb_type_index = gst_rtp_h263_pay_decode_mcbpc_P (context->window);
 
-    GST_DEBUG ("MCBPC index: %d", mb_type_index);
+    GST_LOG ("MCBPC index: %d", mb_type_index);
     if (mb_type_index == -1) {
       GST_ERROR ("MB index shouldn't be -1 in window: %08x", context->window);
       goto beach;
@@ -1114,7 +1113,7 @@
     //Step 3 decode CBPY P
     cbpy_type_index = gst_rtp_h263_pay_decode_cbpy (context->window, cbpy_P);
 
-    GST_DEBUG ("CBPY index: %d", cbpy_type_index);
+    GST_LOG ("CBPY index: %d", cbpy_type_index);
     if (cbpy_type_index == -1) {
       GST_ERROR ("CBPY index shouldn't be -1 in window: %08x", context->window);
       goto beach;
@@ -1125,7 +1124,7 @@
 
     //MB type 1 and 4 have DQUANT - we add it to MB object and jump over
     if (mcbpc_P[mb_type_index][5] == 4 || mcbpc_P[mb_type_index][5] == 1) {
-      GST_DEBUG ("Shifting DQUANT");
+      GST_LOG ("Shifting DQUANT");
 
       mac->quant = context->window >> 30;
 
@@ -1169,12 +1168,12 @@
 
       //if MB type 3 or 4 then INTRADC coef are present in blocks
       if (mcbpc_P[mb_type_index][5] > 2) {
-        GST_DEBUG ("INTRADC coef: %d", i);
+        GST_LOG ("INTRADC coef: %d", i);
         mac->ebit =
             gst_rtp_h263_pay_move_window_right (context, 8, mac->ebit,
             &mac->end, &gob->end);
       } else {
-        GST_DEBUG ("INTRADC coef is not present");
+        GST_LOG ("INTRADC coef is not present");
       }
 
       //check if the block has TCOEF
@@ -1192,7 +1191,7 @@
         while (last == 0) {
           tcoef_type_index = gst_rtp_h263_pay_decode_tcoef (context->window);
 
-          GST_DEBUG ("TCOEF index: %d", tcoef_type_index);
+          GST_LOG ("TCOEF index: %d", tcoef_type_index);
           if (tcoef_type_index == -1) {
             GST_ERROR ("TCOEF index shouldn't be -1 in window: %08x",
                 context->window);
@@ -1225,7 +1224,6 @@
   return mac;
 
 beach:
-  gst_rtp_h263_pay_mb_destroy (mac);
   return NULL;
 }
 
@@ -1414,7 +1412,7 @@
 
 
     /*---------- MODE B MODE FRAGMENTATION ----------*/
-  GstRtpH263PayMB *mac = NULL;
+  GstRtpH263PayMB *mac;
   guint max_payload_size;
   GstRtpH263PayBoundry boundry;
   guint mb;
@@ -1513,17 +1511,20 @@
   mac = gst_rtp_h263_pay_mb_new (&boundry, 0);
   for (mb = 0; mb < format_props[context->piclayer->ptype_srcformat][1]; mb++) {
 
-    GST_DEBUG ("================ START MB %d =================", mb);
+    GST_LOG ("================ START MB %d =================", mb);
 
     //Find next macroblock boundaries
     ebit = mac->ebit;
     if (!(mac = gst_rtp_h263_pay_B_mbfinder (context, gob, mac, mb))) {
 
-      GST_DEBUG ("Error decoding MB - sbit: %d", 8 - ebit);
+      GST_LOG ("Error decoding MB - sbit: %d", 8 - ebit);
       GST_ERROR ("Error decoding in GOB");
 
       goto decode_error;
     }
+
+    gob->macroblocks[mb] = mac;
+
     //If mb_type == stuffing, don't increment the mb address
     if (mac->mb_type == 10) {
       mb--;
@@ -1532,8 +1533,6 @@
       gob->nmacroblocs++;
     }
 
-    gob->macroblocks[mb] = mac;
-
     if (mac->end >= gob->end) {
       GST_LOG ("No more MBs in this GOB");
       if (!mac->ebit) {
@@ -1544,7 +1543,7 @@
     }
     GST_DEBUG ("Found MB: mba: %d start: %p end: %p len: %d sbit: %d ebit: %d",
         mac->mba, mac->start, mac->end, mac->length, mac->sbit, mac->ebit);
-    GST_DEBUG ("================ END MB %d =================", mb);
+    GST_LOG ("================ END MB %d =================", mb);
   }
 
   mb = 0;
@@ -1563,6 +1562,8 @@
       //GST_DEBUG ("Pushing GOBS %d to %d because payload size is %d", first,
       //    first == mb - 1, payload_len);
 
+      // FIXME: segfault if mb == 0 (first MB is larger than max_payload_size)
+      GST_DEBUG ("Push B mode fragment from mb %d to %d", first, mb - 1);
       if (gst_rtp_h263_pay_B_fragment_push (rtph263pay, context, gob, first,
               mb - 1, &boundry)) {
         GST_ERROR ("Oooops, there was an error sending");
@@ -1581,6 +1582,7 @@
   /* Push rest */
   GST_DEBUG ("Remainder first: %d, MB: %d", first, mb);
   if (payload_len != 0) {
+    GST_DEBUG ("Push B mode fragment from mb %d to %d", first, mb - 1);
     if (gst_rtp_h263_pay_B_fragment_push (rtph263pay, context, gob, first,
             mb - 1, &boundry)) {
       GST_ERROR ("Oooops, there was an error sending!");
@@ -1590,11 +1592,9 @@
 
     /*---------- END OF MODE B FRAGMENTATION ----------*/
 
-  gst_rtp_h263_pay_mb_destroy (mac);
   return TRUE;
 
 decode_error:
-  gst_rtp_h263_pay_mb_destroy (mac);
   return FALSE;
 }
 
@@ -1687,8 +1687,8 @@
 
     gst_rtp_h263_pay_boundry_init (&bound, NULL, rtph263pay->data - 1, 0, 0);
     context->gobs =
-        (GstRtpH263PayGob **) g_malloc0 (format_props[context->piclayer->
-            ptype_srcformat][0] * sizeof (GstRtpH263PayGob *));
+        (GstRtpH263PayGob **) g_malloc0 (format_props[context->
+            piclayer->ptype_srcformat][0] * sizeof (GstRtpH263PayGob *));
 
 
     for (i = 0; i < format_props[context->piclayer->ptype_srcformat][0]; i++) {
diff --git a/gst/rtp/gstrtph263pdepay.c b/gst/rtp/gstrtph263pdepay.c
index 6aea8e1..8290614 100644
--- a/gst/rtp/gstrtph263pdepay.c
+++ b/gst/rtp/gstrtph263pdepay.c
@@ -110,10 +110,10 @@
 
   gstelement_class->change_state = gst_rtp_h263p_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263p_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263p_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263p_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263p_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H263 depayloader", "Codec/Depayloader/Network/RTP",
@@ -287,12 +287,8 @@
     goto too_small;
 
   if (P) {
-    /* FIXME, have to make the packet writable hear. Better to reset these
-     * bytes when we copy the packet below */
     rtph263pdepay->wait_start = FALSE;
     header_len -= 2;
-    payload[header_len] = 0;
-    payload[header_len + 1] = 0;
   }
 
   if (rtph263pdepay->wait_start)
@@ -304,7 +300,6 @@
   /* FIXME do not ignore the VRC header (See RFC 2429 section 4.2) */
   /* FIXME actually use the RTP picture header when it is lost in the network */
   /* for now strip off header */
-  payload += header_len;
   payload_len -= header_len;
 
   if (M) {
@@ -317,6 +312,8 @@
 
     outbuf =
         gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len);
+    if (P)
+      gst_buffer_memset (outbuf, 0, 0, 2);
     gst_adapter_push (rtph263pdepay->adapter, outbuf);
     outbuf = NULL;
 
@@ -324,6 +321,9 @@
     len = avail + payload_len;
     padlen = (len % 4) + 4;
 
+    if (avail == 0)
+      goto empty_frame;
+
     outbuf = gst_adapter_take_buffer (rtph263pdepay->adapter, avail);
     if (padlen) {
       padbuf = gst_buffer_new_and_alloc (padlen);
@@ -341,6 +341,8 @@
 
     outbuf =
         gst_rtp_buffer_get_payload_subbuffer (rtp, header_len, payload_len);
+    if (P)
+      gst_buffer_memset (outbuf, 0, 0, 2);
     gst_adapter_push (rtph263pdepay->adapter, outbuf);
   }
   return NULL;
@@ -356,6 +358,11 @@
     GST_DEBUG_OBJECT (rtph263pdepay, "waiting for picture start");
     return NULL;
   }
+empty_frame:
+  {
+    GST_WARNING_OBJECT (rtph263pdepay, "Depayloaded frame is empty, dropping");
+    return NULL;
+  }
 }
 
 static GstStateChangeReturn
diff --git a/gst/rtp/gstrtph263ppay.c b/gst/rtp/gstrtph263ppay.c
index a9fcca0..176d7cc 100644
--- a/gst/rtp/gstrtph263ppay.c
+++ b/gst/rtp/gstrtph263ppay.c
@@ -139,10 +139,10 @@
           DEFAULT_FRAGMENTATION_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263p_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h263p_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263p_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h263p_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP H263 payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtph264depay.c b/gst/rtp/gstrtph264depay.c
index 57ed524..056724c 100644
--- a/gst/rtp/gstrtph264depay.c
+++ b/gst/rtp/gstrtph264depay.c
@@ -107,10 +107,10 @@
 
   gobject_class->finalize = gst_rtp_h264_depay_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h264_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h264_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h264_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h264_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H264 depayloader", "Codec/Depayloader/Network/RTP",
@@ -1055,12 +1055,8 @@
         }
 
         outsize = gst_adapter_available (rtph264depay->adapter);
-        if (outsize > 0) {
+        if (outsize > 0)
           outbuf = gst_adapter_take_buffer (rtph264depay->adapter, outsize);
-          outbuf =
-              gst_rtp_h264_depay_handle_nal (rtph264depay, outbuf, timestamp,
-              marker);
-        }
         break;
       }
       case 26:
diff --git a/gst/rtp/gstrtph264pay.c b/gst/rtp/gstrtph264pay.c
index bcbf098..808eb1d 100644
--- a/gst/rtp/gstrtph264pay.c
+++ b/gst/rtp/gstrtph264pay.c
@@ -120,7 +120,7 @@
           "The base64 sprop-parameter-sets to set in out caps (set to NULL to "
           "extract from stream)",
           DEFAULT_SPROP_PARAMETER_SETS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | G_PARAM_DEPRECATED));
 
   g_object_class_install_property (G_OBJECT_CLASS (klass),
       PROP_CONFIG_INTERVAL,
@@ -135,10 +135,10 @@
 
   gobject_class->finalize = gst_rtp_h264_pay_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h264_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h264_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h264_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h264_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP H264 payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtph265depay.c b/gst/rtp/gstrtph265depay.c
index 469666a..f0dcb4b 100644
--- a/gst/rtp/gstrtph265depay.c
+++ b/gst/rtp/gstrtph265depay.c
@@ -124,14 +124,14 @@
 
   gobject_class->finalize = gst_rtp_h265_depay_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h265_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h265_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h265_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h265_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP H265 depayloader", "Codec/Depayloader/Network/RTP",
-      "Extracts H265 video from RTP packets (draft-ietf-payload-rtp-h265-03.txt)",
+      "Extracts H265 video from RTP packets (RFC 7798)",
       "Jurgen Slowack <jurgenslowack@gmail.com>");
   gstelement_class->change_state = gst_rtp_h265_depay_change_state;
 
@@ -754,8 +754,10 @@
   gint clock_rate;
   GstStructure *structure = gst_caps_get_structure (caps, 0);
   GstRtpH265Depay *rtph265depay;
-  const gchar *ps;
-  GstBuffer *codec_data;
+  const gchar *vps;
+  const gchar *sps;
+  const gchar *pps;
+  gchar *ps;
   GstMapInfo map;
   guint8 *ptr;
 
@@ -766,7 +768,14 @@
   depayload->clock_rate = clock_rate;
 
   /* Base64 encoded, comma separated config NALs */
-  ps = gst_structure_get_string (structure, "sprop-parameter-sets");
+  vps = gst_structure_get_string (structure, "sprop-vps");
+  sps = gst_structure_get_string (structure, "sprop-sps");
+  pps = gst_structure_get_string (structure, "sprop-pps");
+  if (vps == NULL || sps == NULL || pps == NULL) {
+    ps = NULL;
+  } else {
+    ps = g_strdup_printf ("%s,%s,%s", vps, sps, pps);
+  }
 
   /* negotiate with downstream w.r.t. output format and alignment */
   gst_rtp_h265_depay_negotiate (rtph265depay);
@@ -775,6 +784,7 @@
     /* for bytestream we only need the parameter sets but we don't error out
      * when they are not there, we assume they are in the stream. */
     gchar **params;
+    GstBuffer *codec_data;
     guint len, total;
     gint i;
 
@@ -855,10 +865,14 @@
     }
     g_strfreev (params);
 
-    if (rtph265depay->sps->len == 0 || rtph265depay->pps->len == 0)
+    if (rtph265depay->vps->len == 0 || rtph265depay->sps->len == 0 ||
+        rtph265depay->pps->len == 0) {
       goto incomplete_caps;
+    }
   }
 
+  g_free (ps);
+
   return gst_rtp_h265_set_src_caps (rtph265depay);
 
   /* ERRORS */
@@ -866,6 +880,7 @@
   {
     GST_DEBUG_OBJECT (depayload, "we have incomplete caps,"
         " doing setcaps later");
+    g_free (ps);
     return TRUE;
   }
 }
@@ -1241,12 +1256,8 @@
         }
 
         outsize = gst_adapter_available (rtph265depay->adapter);
-        if (outsize > 0) {
+        if (outsize > 0)
           outbuf = gst_adapter_take_buffer (rtph265depay->adapter, outsize);
-          outbuf =
-              gst_rtp_h265_depay_handle_nal (rtph265depay, outbuf, timestamp,
-              marker);
-        }
         break;
       }
       case 49:
diff --git a/gst/rtp/gstrtph265pay.c b/gst/rtp/gstrtph265pay.c
index e9979d4..8e9a887 100644
--- a/gst/rtp/gstrtph265pay.c
+++ b/gst/rtp/gstrtph265pay.c
@@ -53,13 +53,12 @@
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS (
-        /* Only bytestream format supported for now */
+        /* only hvc1 and byte-stream formats supported for now */
+        "video/x-h265, stream-format = (string) hvc1, alignment = (string) au; "
         /* "video/x-h265, "
-           "stream-format = (string) hvc1, alignment = (string) au; "
-           "video/x-h265, "
            "stream-format = (string) hev1, alignment = (string) au; " */
-        "video/x-h265, "
-        "stream-format = (string) byte-stream, alignment = (string) { nal, au }")
+        "video/x-h265, stream-format = (string) byte-stream, "
+        "alignment = (string) { nal, au }")
     );
 
 static GstStaticPadTemplate gst_rtp_h265_pay_src_template =
@@ -102,17 +101,15 @@
     /* "dec-parallel-cap = (string) ANY, " */
     );
 
-#define DEFAULT_SPROP_PARAMETER_SETS    NULL
 #define DEFAULT_CONFIG_INTERVAL		      0
 
 enum
 {
   PROP_0,
-  PROP_SPROP_PARAMETER_SETS,
   PROP_CONFIG_INTERVAL
 };
 
-#define IS_ACCESS_UNIT(x) (((x) > 0x00) && ((x) < 0x06))
+#define IS_ACCESS_UNIT(x) (((x) >= 0x00) && ((x) < 0x20))
 
 static void gst_rtp_h265_pay_finalize (GObject * object);
 
@@ -150,14 +147,6 @@
   gobject_class->get_property = gst_rtp_h265_pay_get_property;
 
   g_object_class_install_property (G_OBJECT_CLASS (klass),
-      PROP_SPROP_PARAMETER_SETS, g_param_spec_string ("sprop-parameter-sets",
-          "sprop-parameter-sets",
-          "The base64 sprop-parameter-sets to set in out caps (set to NULL to "
-          "extract from stream)",
-          DEFAULT_SPROP_PARAMETER_SETS,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
-
-  g_object_class_install_property (G_OBJECT_CLASS (klass),
       PROP_CONFIG_INTERVAL,
       g_param_spec_int ("config-interval",
           "VPS SPS PPS Send Interval",
@@ -170,14 +159,14 @@
 
   gobject_class->finalize = gst_rtp_h265_pay_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h265_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_h265_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h265_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_h265_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP H265 payloader",
       "Codec/Payloader/Network/RTP",
-      "Payload-encode H265 video into RTP packets (based on draft-ietf-payload-rtp-h265-03.txt)",
+      "Payload-encode H265 video into RTP packets (RFC 7798)",
       "Jurgen Slowack <jurgenslowack@gmail.com>");
 
   gstelement_class->change_state =
@@ -196,7 +185,6 @@
 gst_rtp_h265_pay_init (GstRtpH265Pay * rtph265pay)
 {
   rtph265pay->queue = g_array_new (FALSE, FALSE, sizeof (guint));
-  rtph265pay->profile = 0;
   rtph265pay->sps = g_ptr_array_new_with_free_func (
       (GDestroyNotify) gst_buffer_unref);
   rtph265pay->pps = g_ptr_array_new_with_free_func (
@@ -230,8 +218,6 @@
   g_ptr_array_free (rtph265pay->pps, TRUE);
   g_ptr_array_free (rtph265pay->vps, TRUE);
 
-  g_free (rtph265pay->sprop_parameter_sets);
-
   g_object_unref (rtph265pay->adapter);
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
@@ -253,6 +239,32 @@
   "6.2"
 };
 
+static gboolean
+parse_field (GstStructure * s, const gchar * field, gulong min, gulong max,
+    guint8 * result)
+{
+  const gchar *str;
+
+  g_assert (result != NULL);
+
+  str = gst_structure_get_string (s, field);
+  if (str != NULL && *str != '\0') {
+    gulong value;
+    gchar *end;
+
+    value = strtoul (str, &end, 10);
+    if (*end == '\0' && value >= min && value <= max) {
+      *result = (guint8) value;
+    } else {
+      return FALSE;
+    }
+  } else {
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
 static GstCaps *
 gst_rtp_h265_pay_getcaps (GstRTPBasePayload * payload, GstPad * pad,
     GstCaps * filter)
@@ -261,7 +273,6 @@
   GstCaps *allowed_caps;
   GstCaps *caps;
   GstCaps *icaps;
-  gboolean append_unrestricted;
   guint i;
 
   allowed_caps =
@@ -284,54 +295,48 @@
   }
 
   caps = gst_caps_new_empty ();
-
-  append_unrestricted = FALSE;
   for (i = 0; i < gst_caps_get_size (allowed_caps); i++) {
     GstStructure *s = gst_caps_get_structure (allowed_caps, i);
     GstStructure *new_s = gst_structure_new_empty ("video/x-h265");
-    const gchar *profile_level_id;
+    guint8 ptl[12] = { 0, };
+    guint8 value;
 
-    profile_level_id = gst_structure_get_string (s, "profile-level-id");
-
-    if (profile_level_id && strlen (profile_level_id) == 6) {   /* Code taken from gstrtph264pay.c, needs to be revised for H.265 */
+    if (parse_field (s, "profile-id", 0, 31, &value)) {
       const gchar *profile;
+
+      ptl[0] = value;
+      profile = gst_codec_utils_h265_get_profile (ptl, sizeof (ptl));
+      if (profile != NULL) {
+        GST_DEBUG_OBJECT (payload, "profile %s", profile);
+        gst_structure_set (new_s, "profile", G_TYPE_STRING, profile, NULL);
+      } else {
+        GST_WARNING_OBJECT (payload, "invalid profile-id %d in caps", value);
+      }
+    } else {
+      GST_DEBUG_OBJECT (payload, "no valid profile-id in caps");
+    }
+
+    if (parse_field (s, "tier-flag", 0, 1, &value)) {
+      const gchar *tier;
+
+      ptl[0] |= value << 5;
+      tier = gst_codec_utils_h265_get_tier (ptl, sizeof (ptl));
+      GST_DEBUG_OBJECT (payload, "tier %s", tier);
+      gst_structure_set (new_s, "tier", G_TYPE_STRING, tier, NULL);
+    } else {
+      GST_DEBUG_OBJECT (payload, "no valid tier-flag in caps");
+    }
+
+    if (parse_field (s, "level-id", 0, 255, &value)) {
       const gchar *level;
-      long int spsint;
-      guint8 sps[3];
 
-      spsint = strtol (profile_level_id, NULL, 16);
-      sps[0] = spsint >> 16;
-      sps[1] = spsint >> 8;
-      sps[2] = spsint;
-
-      profile = gst_codec_utils_h265_get_profile (sps, 3);
-      level = gst_codec_utils_h265_get_level (sps, 3);
-
-      if (profile && level) {
-        GST_LOG_OBJECT (payload, "In caps, have profile %s and level %s",
-            profile, level);
-
-        if (!strcmp (profile, "main"))
-          gst_structure_set (new_s, "profile", G_TYPE_STRING, profile, NULL);
-        else {
-          GValue val = { 0, };
-          GValue profiles = { 0, };
-
-          g_value_init (&profiles, GST_TYPE_LIST);
-          g_value_init (&val, G_TYPE_STRING);
-
-          g_value_set_static_string (&val, profile);
-          gst_value_list_append_value (&profiles, &val);
-
-          g_value_set_static_string (&val, "main");
-          gst_value_list_append_value (&profiles, &val);
-
-          gst_structure_take_value (new_s, "profile", &profiles);
-        }
-
-        if (!strcmp (level, "1"))
+      ptl[11] = value;
+      level = gst_codec_utils_h265_get_level (ptl, sizeof (ptl));
+      if (level != NULL) {
+        GST_DEBUG_OBJECT (payload, "level %s", level);
+        if (strcmp (level, "1") == 0) {
           gst_structure_set (new_s, "level", G_TYPE_STRING, level, NULL);
-        else {
+        } else {
           GValue levels = { 0, };
           GValue val = { 0, };
           int j;
@@ -348,26 +353,15 @@
           gst_structure_take_value (new_s, "level", &levels);
         }
       } else {
-        /* Invalid profile-level-id means main */
-
-        gst_structure_set (new_s, "profile", G_TYPE_STRING, "main", NULL);
+        GST_WARNING_OBJECT (payload, "invalid level-id %d in caps", value);
       }
     } else {
-      /* No profile-level-id means main or unrestricted */
-
-      gst_structure_set (new_s, "profile", G_TYPE_STRING, "main", NULL);
-      append_unrestricted = TRUE;
+      GST_DEBUG_OBJECT (payload, "no valid level-id in caps");
     }
 
     caps = gst_caps_merge_structure (caps, new_s);
   }
 
-  if (append_unrestricted) {
-    caps =
-        gst_caps_merge_structure (caps, gst_structure_new ("video/x-h265", NULL,
-            NULL));
-  }
-
   icaps = gst_caps_intersect (caps, template_caps);
   gst_caps_unref (caps);
   caps = icaps;
@@ -391,27 +385,26 @@
   return caps;
 }
 
-/* take the currently configured VPS, SPS and PPS lists and set them on the caps as
- * sprop-parameter-sets */
+/* take the currently configured VPS, SPS and PPS lists and set them on the
+ * caps */
 static gboolean
 gst_rtp_h265_pay_set_vps_sps_pps (GstRTPBasePayload * basepayload)
 {
   GstRtpH265Pay *payloader = GST_RTP_H265_PAY (basepayload);
-  gchar *profile;
   gchar *set;
-  GString *sprops;
+  GString *vps;
+  GString *sps;
+  GString *pps;
   guint count;
   gboolean res;
   GstMapInfo map;
   guint i;
 
-  sprops = g_string_new ("");
+  vps = g_string_new ("");
+  sps = g_string_new ("");
+  pps = g_string_new ("");
   count = 0;
 
-  GST_DEBUG_OBJECT (payloader,
-      "Entering function gst_rtp_h265_pay_set_vps_sps_pps");
-
-  /* build the sprop-parameter-sets */
   for (i = 0; i < payloader->vps->len; i++) {
     GstBuffer *vps_buf =
         GST_BUFFER_CAST (g_ptr_array_index (payloader->vps, i));
@@ -420,7 +413,7 @@
     set = g_base64_encode (map.data, map.size);
     gst_buffer_unmap (vps_buf, &map);
 
-    g_string_append_printf (sprops, "%s%s", count ? "," : "", set);
+    g_string_append_printf (vps, "%s%s", i ? "," : "", set);
     g_free (set);
     count++;
   }
@@ -432,7 +425,7 @@
     set = g_base64_encode (map.data, map.size);
     gst_buffer_unmap (sps_buf, &map);
 
-    g_string_append_printf (sprops, "%s%s", count ? "," : "", set);
+    g_string_append_printf (sps, "%s%s", i ? "," : "", set);
     g_free (set);
     count++;
   }
@@ -444,22 +437,23 @@
     set = g_base64_encode (map.data, map.size);
     gst_buffer_unmap (pps_buf, &map);
 
-    g_string_append_printf (sprops, "%s%s", count ? "," : "", set);
+    g_string_append_printf (pps, "%s%s", i ? "," : "", set);
     g_free (set);
     count++;
   }
 
   if (G_LIKELY (count)) {
-    /* profile is 24 bit. Force it to respect the limit */
-    profile = g_strdup_printf ("%06x", payloader->profile & 0xffffff);
     /* combine into output caps */
     res = gst_rtp_base_payload_set_outcaps (basepayload,
-        "sprop-parameter-sets", G_TYPE_STRING, sprops->str, NULL);
-    g_free (profile);
+        "sprop-vps", G_TYPE_STRING, vps->str,
+        "sprop-sps", G_TYPE_STRING, sps->str,
+        "sprop-pps", G_TYPE_STRING, pps->str, NULL);
   } else {
     res = gst_rtp_base_payload_set_outcaps (basepayload, NULL);
   }
-  g_string_free (sprops, TRUE);
+  g_string_free (vps, TRUE);
+  g_string_free (sps, TRUE);
+  g_string_free (pps, TRUE);
 
   return res;
 }
@@ -527,8 +521,7 @@
       goto wrong_version;
 
     /* profile_space | tier_flag | profile_idc */
-    rtph265pay->profile = data[1];
-    GST_DEBUG_OBJECT (rtph265pay, "profile %06x", rtph265pay->profile);
+    GST_DEBUG_OBJECT (rtph265pay, "profile %06x", data[1]);
 
     /* profile_compatibility_flags */
     for (i = 2; i < 6; i++) {
@@ -583,7 +576,7 @@
     size -= 23;
 
     if (num_arrays > 0) {
-      if (data[0] == (0x00 | 0x20)) {   /* VPS */
+      if ((data[0] & 0x3f) == 0x20) {   /* VPS */
 
         data++;
         num_vps = data[0] << 8 | data[1];
@@ -620,7 +613,7 @@
     }
 
     if (num_arrays > 0) {
-      if (data[0] == (0x00 | 0x21)) {   /* SPS */
+      if ((data[0] & 0x3f) == 0x21) {   /* SPS */
 
         data++;
         num_sps = data[0] << 8 | data[1];
@@ -657,7 +650,7 @@
     }
 
     if (num_arrays > 0) {
-      if (data[0] == (0x00 | 0x22)) {   /* PPS */
+      if ((data[0] & 0x3f) == 0x22) {   /* PPS */
 
         data++;
         num_pps = data[0] << 8 | data[1];
@@ -733,53 +726,6 @@
   }
 }
 
-static void
-gst_rtp_h265_pay_parse_sprop_parameter_sets (GstRtpH265Pay * rtph265pay)
-{
-  const gchar *ps;
-  gchar **params;
-  guint len;
-  gint i;
-  GstBuffer *buf;
-
-  ps = rtph265pay->sprop_parameter_sets;
-  if (ps == NULL)
-    return;
-
-  gst_rtp_h265_pay_clear_vps_sps_pps (rtph265pay);
-
-  params = g_strsplit (ps, ",", 0);
-  len = g_strv_length (params);
-
-  GST_DEBUG_OBJECT (rtph265pay, "we have %d params", len);
-
-  for (i = 0; params[i]; i++) {
-    gsize nal_len;
-    GstMapInfo map;
-    guint8 *nalp;
-    guint save = 0;
-    gint state = 0;
-
-    nal_len = strlen (params[i]);
-    buf = gst_buffer_new_and_alloc (nal_len);
-
-    gst_buffer_map (buf, &map, GST_MAP_WRITE);
-    nalp = map.data;
-    nal_len = g_base64_decode_step (params[i], nal_len, nalp, &state, &save);
-    gst_buffer_unmap (buf, &map);
-    gst_buffer_resize (buf, 0, nal_len);
-
-    if (!nal_len) {
-      gst_buffer_unref (buf);
-      continue;
-    }
-
-    gst_rtp_h265_add_vps_sps_pps (GST_ELEMENT (rtph265pay), rtph265pay->vps,
-        rtph265pay->sps, rtph265pay->pps, buf);
-  }
-  g_strfreev (params);
-}
-
 static guint
 next_start_code (const guint8 * data, guint size)
 {
@@ -823,16 +769,15 @@
 gst_rtp_h265_pay_decode_nal (GstRtpH265Pay * payloader,
     const guint8 * data, guint size, GstClockTime dts, GstClockTime pts)
 {
-  guint8 header, type;
+  guint8 type;
   gboolean updated;
 
   /* default is no update */
   updated = FALSE;
 
-  GST_DEBUG ("NAL payload len=%u", size);
+  GST_DEBUG_OBJECT (payloader, "NAL payload size %u", size);
 
-  header = data[0];
-  type = (header & 0x7e) >> 1;
+  type = (data[0] >> 1) & 0x3f;
 
   /* We record the timestamp of the last SPS/PPS so
    * that we can insert them at regular intervals and when needed. */
@@ -841,10 +786,9 @@
     GstBuffer *nal;
 
     /* encode the entire NAL in base64 */
-    GST_DEBUG ("Found %s %x %x %x Len=%u",
-        type == GST_H265_NAL_VPS ? "VPS" : type ==
-        GST_H265_NAL_SPS ? "SPS" : "PPS", (header >> 7), (header >> 5) & 3,
-        type, size);
+    GST_DEBUG_OBJECT (payloader, "found %s (type 0x%x), size %u",
+        type == GST_H265_NAL_VPS ? "VPS" : type == GST_H265_NAL_SPS ?
+        "SPS" : "PPS", type, size);
 
     nal = gst_buffer_new_allocate (NULL, size, NULL);
     gst_buffer_fill (nal, 0, data, size);
@@ -856,8 +800,7 @@
     if (updated && pts != -1)
       payloader->last_vps_sps_pps = pts;
   } else {
-    GST_DEBUG ("NAL: %x %x %x Len = %u", (header >> 7),
-        (header >> 5) & 3, type, size);
+    GST_DEBUG_OBJECT (payloader, "NALU type 0x%x, size %u", type, size);
   }
 
   return updated;
@@ -1020,8 +963,6 @@
 
   packet_len = gst_rtp_buffer_calc_packet_len (size, 0, 0);
 
-  GST_FIXME_OBJECT (rtph265pay, "Set RTP marker bit appropriately");
-
   if (packet_len < mtu) {
     GST_DEBUG_OBJECT (rtph265pay,
         "NAL Unit fit in one packet datasize=%d mtu=%d", size, mtu);
@@ -1034,10 +975,10 @@
 
     gst_rtp_buffer_map (outbuf, GST_MAP_WRITE, &rtp);
 
-    /* FIXME : only set the marker bit on packets containing access units */
-    /* if (IS_ACCESS_UNIT (nalType) && end_of_au) {
-       gst_rtp_buffer_set_marker (&rtp, 1);
-       } */
+    /* only set the marker bit on packets containing access units */
+    if (IS_ACCESS_UNIT (nalType) && end_of_au) {
+      gst_rtp_buffer_set_marker (&rtp, 1);
+    }
 
     /* timestamp the outbuffer */
     GST_BUFFER_PTS (outbuf) = pts;
@@ -1102,10 +1043,10 @@
       payload[0] = (nalHeader[0] & 0x81) | (49 << 1);
       payload[1] = nalHeader[1];
 
-      /* FIXME - set RTP marker bit appropriately */
-      /* if (IS_ACCESS_UNIT (nalType)) {
-         gst_rtp_buffer_set_marker (&rtp, end && end_of_au);
-         } */
+      /* set the marker bit on the last packet of an access unit */
+      if (IS_ACCESS_UNIT (nalType)) {
+        gst_rtp_buffer_set_marker (&rtp, end && end_of_au);
+      }
 
       /* FU Header */
       payload[2] = (start << 7) | (end << 6) | (nalType & 0x3f);
@@ -1261,7 +1202,7 @@
     GST_DEBUG_OBJECT (basepayload,
         "found first start at %u, bytes left %" G_GSIZE_FORMAT, next, size);
 
-    /* first pass to locate NALs and parse SPS/PPS */
+    /* first pass to locate NALs and parse VPS/SPS/PPS */
     while (size > 4) {
       /* skip start code */
       data += 3;
@@ -1288,30 +1229,12 @@
       GST_DEBUG_OBJECT (basepayload, "found next start at %u of size %u", next,
           nal_len);
 
-      if (rtph265pay->sprop_parameter_sets != NULL) {
-        /* explicitly set profile and sprop, use those */
-        if (rtph265pay->update_caps) {
-          if (!gst_rtp_base_payload_set_outcaps (basepayload,
-                  "sprop-parameter-sets", G_TYPE_STRING,
-                  rtph265pay->sprop_parameter_sets, NULL))
-            goto caps_rejected;
+      /* We know our stream is a valid H265 NAL packet,
+       * go parse it for VPS/SPS/PPS to enrich the caps */
+      /* order: make sure to check nal */
+      update = gst_rtp_h265_pay_decode_nal (rtph265pay, data, nal_len, dts, pts)
+          || update;
 
-          /* parse SPS and PPS from provided parameter set (for insertion) */
-          gst_rtp_h265_pay_parse_sprop_parameter_sets (rtph265pay);
-
-          rtph265pay->update_caps = FALSE;
-
-          GST_DEBUG ("outcaps update: sprop-parameter-sets=%s",
-              rtph265pay->sprop_parameter_sets);
-        }
-      } else {
-        /* We know our stream is a valid H265 NAL packet,
-         * go parse it for SPS/PPS to enrich the caps */
-        /* order: make sure to check nal */
-        update =
-            gst_rtp_h265_pay_decode_nal (rtph265pay, data, nal_len, dts, pts)
-            || update;
-      }
       /* move to next NAL packet */
       data += nal_len;
       size -= nal_len;
@@ -1476,11 +1399,6 @@
   rtph265pay = GST_RTP_H265_PAY (object);
 
   switch (prop_id) {
-    case PROP_SPROP_PARAMETER_SETS:
-      g_free (rtph265pay->sprop_parameter_sets);
-      rtph265pay->sprop_parameter_sets = g_value_dup_string (value);
-      rtph265pay->update_caps = TRUE;
-      break;
     case PROP_CONFIG_INTERVAL:
       rtph265pay->vps_sps_pps_interval = g_value_get_int (value);
       break;
@@ -1499,9 +1417,6 @@
   rtph265pay = GST_RTP_H265_PAY (object);
 
   switch (prop_id) {
-    case PROP_SPROP_PARAMETER_SETS:
-      g_value_set_string (value, rtph265pay->sprop_parameter_sets);
-      break;
     case PROP_CONFIG_INTERVAL:
       g_value_set_int (value, rtph265pay->vps_sps_pps_interval);
       break;
diff --git a/gst/rtp/gstrtph265pay.h b/gst/rtp/gstrtph265pay.h
index 80d3c12..cd42fba 100644
--- a/gst/rtp/gstrtph265pay.h
+++ b/gst/rtp/gstrtph265pay.h
@@ -51,7 +51,6 @@
 {
   GstRTPBasePayload payload;
 
-  guint profile;
   GPtrArray *sps, *pps, *vps;
 
   GstH265StreamFormat stream_format;
@@ -59,9 +58,6 @@
   guint nal_length_size;
   GArray *queue;
 
-  gchar *sprop_parameter_sets;
-  gboolean update_caps;
-
   GstAdapter *adapter;
 
   gint vps_sps_pps_interval;
diff --git a/gst/rtp/gstrtpilbcdepay.c b/gst/rtp/gstrtpilbcdepay.c
index 9af6d29..3df87d8 100644
--- a/gst/rtp/gstrtpilbcdepay.c
+++ b/gst/rtp/gstrtpilbcdepay.c
@@ -112,10 +112,10 @@
           GST_TYPE_ILBC_MODE, DEFAULT_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ilbc_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ilbc_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ilbc_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ilbc_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP iLBC depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpilbcpay.c b/gst/rtp/gstrtpilbcpay.c
index ffe9ea9..cbc7d93 100644
--- a/gst/rtp/gstrtpilbcpay.c
+++ b/gst/rtp/gstrtpilbcpay.c
@@ -69,10 +69,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ilbc_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_ilbc_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ilbc_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_ilbc_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP iLBC Payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpj2kcommon.h b/gst/rtp/gstrtpj2kcommon.h
new file mode 100644
index 0000000..09f1bbb
--- /dev/null
+++ b/gst/rtp/gstrtpj2kcommon.h
@@ -0,0 +1,102 @@
+/* GStreamer
+* Copyright (C) 2009 Wim Taymans <wim.taymans@gmail.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_J2K_COMMON_H__
+#define __GST_RTP_J2K_COMMON_H__
+
+
+
+/* Sampling values from RFC 5371 for JPEG 2000 over RTP : https://datatracker.ietf.org/doc/rfc5371/C
+
+RGB:  standard Red, Green, Blue color space.
+
+BGR:  standard Blue, Green, Red color space.
+
+RGBA:  standard Red, Green, Blue, Alpha color space.
+
+BGRA:  standard Blue, Green, Red, Alpha color space.
+
+YCbCr-4:4:4:  standard YCbCr color space; no subsampling.
+
+YCbCr-4:2:2:  standard YCbCr color space; Cb and Cr are subsampled horizontally by 1/2.
+
+YCbCr-4:2:0:  standard YCbCr color space; Cb and Cr are subsampled horizontally and vertically by 1/2.
+
+YCbCr-4:1:1:  standard YCbCr color space; Cb and Cr are subsampled vertically by 1/4.
+
+GRAYSCALE:  basically, a single component image of just multilevels of grey.
+*/
+
+
+#define GST_RTP_J2K_RGB       "RGB"
+#define GST_RTP_J2K_BGR       "BGR"
+#define GST_RTP_J2K_RGBA      "RGBA"
+#define GST_RTP_J2K_BGRA      "BGRA"
+#define GST_RTP_J2K_YBRA   	  "YCbCrA"
+#define GST_RTP_J2K_YBR444    "YCbCr-4:4:4"
+#define GST_RTP_J2K_YBR422    "YCbCr-4:2:2"
+#define GST_RTP_J2K_YBR420    "YCbCr-4:2:0"
+#define GST_RTP_J2K_YBR410    "YCbCr-4:1:0"
+#define GST_RTP_J2K_GRAYSCALE "GRAYSCALE"
+
+#define GST_RTP_J2K_SAMPLING_LIST "sampling = (string) {\"RGB\", \"BGR\", \"RGBA\", \"BGRA\", \"YCbCrA\", \"YCbCr-4:4:4\", \"YCbCr-4:2:2\", \"YCbCr-4:2:0\", \"YCbCr-4:1:1\", \"GRAYSCALE\"}"
+
+typedef enum
+{
+
+  GST_RTP_SAMPLING_NONE,
+  GST_RTP_SAMPLING_RGB,
+  GST_RTP_SAMPLING_BGR,
+  GST_RTP_SAMPLING_RGBA,
+  GST_RTP_SAMPLING_BGRA,
+  GST_RTP_SAMPLING_YBRA,
+  GST_RTP_SAMPLING_YBR444,
+  GST_RTP_SAMPLING_YBR422,
+  GST_RTP_SAMPLING_YBR420,
+  GST_RTP_SAMPLING_YBR410,
+  GST_RTP_SAMPLING_GRAYSCALE
+} GstRtpSampling;
+
+
+/*
+* GstRtpJ2KMarker:
+* @GST_J2K_MARKER: Prefix for JPEG 2000 marker
+* @GST_J2K_MARKER_SOC: Start of Codestream
+* @GST_J2K_MARKER_SOT: Start of tile
+* @GST_J2K_MARKER_EOC: End of Codestream
+*
+* Identifiers for markers in JPEG 2000 code streams
+*/
+typedef enum
+{
+  GST_J2K_MARKER = 0xFF,
+  GST_J2K_MARKER_SOC = 0x4F,
+  GST_J2K_MARKER_SOT = 0x90,
+  GST_J2K_MARKER_SOP = 0x91,
+  GST_J2K_MARKER_EPH = 0x92,
+  GST_J2K_MARKER_SOD = 0x93,
+  GST_J2K_MARKER_EOC = 0xD9
+} GstRtpJ2KMarker;
+
+
+#define GST_RTP_J2K_HEADER_SIZE 8
+
+
+#endif /* __GST_RTP_J2K_COMMON_H__ */
diff --git a/gst/rtp/gstrtpj2kdepay.c b/gst/rtp/gstrtpj2kdepay.c
index f132811..6f1b1b2 100644
--- a/gst/rtp/gstrtpj2kdepay.c
+++ b/gst/rtp/gstrtpj2kdepay.c
@@ -17,6 +17,17 @@
  * Boston, MA 02110-1301, USA.
  */
 
+
+ /**
+ * SECTION:element-rtpj2kdepay
+ *
+ * Depayload an RTP-payloaded JPEG 2000 image into RTP packets according to RFC 5371
+ * and RFC 5372.
+ * For detailed information see: https://datatracker.ietf.org/doc/rfc5371/
+ * and https://datatracker.ietf.org/doc/rfc5372/
+ */
+
+
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
 #endif
@@ -25,6 +36,7 @@
 #include <gst/video/video.h>
 
 #include <string.h>
+#include "gstrtpj2kcommon.h"
 #include "gstrtpj2kdepay.h"
 #include "gstrtputils.h"
 
@@ -35,28 +47,24 @@
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("image/x-jpc")
+    GST_STATIC_CAPS ("image/x-jpc, "
+        "colorspace = (string) { sRGB, sYUV, GRAY }")
     );
 
 static GstStaticPadTemplate gst_rtp_j2k_depay_sink_template =
-GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("application/x-rtp, "
-        "media = (string) \"video\", "
-        "clock-rate = (int) 90000, " "encoding-name = (string) \"JPEG2000\"")
+        "media = (string) \"video\", " "clock-rate = (int) 90000, "
+        GST_RTP_J2K_SAMPLING_LIST ","
+        "encoding-name = (string) \"JPEG2000\";"
+        "application/x-rtp, "
+        "media = (string) \"video\", " "clock-rate = (int) 90000, "
+        "colorspace = (string) { sRGB, sYUV, GRAY }, "
+        "encoding-name = (string) \"JPEG2000\";")
     );
 
-typedef enum
-{
-  J2K_MARKER = 0xFF,
-  J2K_MARKER_SOC = 0x4F,
-  J2K_MARKER_SOT = 0x90,
-  J2K_MARKER_SOP = 0x91,
-  J2K_MARKER_SOD = 0x93,
-  J2K_MARKER_EOC = 0xD9
-} RtpJ2KMarker;
-
 enum
 {
   PROP_0,
@@ -98,10 +106,10 @@
   gobject_class->set_property = gst_rtp_j2k_depay_set_property;
   gobject_class->get_property = gst_rtp_j2k_depay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_j2k_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_j2k_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_j2k_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_j2k_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP JPEG 2000 depayloader", "Codec/Depayloader/Network/RTP",
@@ -175,10 +183,12 @@
 static gboolean
 gst_rtp_j2k_depay_setcaps (GstRTPBaseDepayload * depayload, GstCaps * caps)
 {
-  GstStructure *structure;
+  GstStructure *structure = NULL;
   gint clock_rate;
-  GstCaps *outcaps;
-  gboolean res;
+  GstCaps *outcaps = NULL;
+  gboolean res = FALSE;
+  const gchar *colorspace = NULL;
+  const gchar *sampling = NULL;
 
   structure = gst_caps_get_structure (caps, 0);
 
@@ -186,10 +196,35 @@
     clock_rate = 90000;
   depayload->clock_rate = clock_rate;
 
-  outcaps =
-      gst_caps_new_simple ("image/x-jpc", "framerate", GST_TYPE_FRACTION, 0, 1,
-      "fields", G_TYPE_INT, 1, "colorspace", G_TYPE_STRING, "sYUV", NULL);
+  sampling = gst_structure_get_string (structure, "sampling");
+  if (sampling) {
+    if (!strcmp (sampling, GST_RTP_J2K_RGB) ||
+        !strcmp (sampling, GST_RTP_J2K_RGBA) ||
+        !strcmp (sampling, GST_RTP_J2K_BGR) ||
+        !strcmp (sampling, GST_RTP_J2K_BGRA))
+      colorspace = "sRGB";
+    else if (!strcmp (sampling, GST_RTP_J2K_GRAYSCALE))
+      colorspace = "GRAY";
+    else
+      colorspace = "sYUV";
+  } else {
+    GST_ELEMENT_WARNING (depayload, STREAM, DEMUX, NULL,
+        ("Non-compliant stream: sampling field missing. Frames my appear incorrect"));
+    colorspace = gst_structure_get_string (structure, "colorspace");
+    if (!strcmp (colorspace, "GRAY")) {
+      sampling = GST_RTP_J2K_GRAYSCALE;
+    }
+  }
+
+  outcaps = gst_caps_new_simple ("image/x-jpc",
+      "framerate", GST_TYPE_FRACTION, 0, 1,
+      "fields", G_TYPE_INT, 1, "colorspace", G_TYPE_STRING, colorspace, NULL);
+
+  if (sampling)
+    gst_caps_set_simple (outcaps, "sampling", G_TYPE_STRING, sampling, NULL);
+
   res = gst_pad_set_caps (depayload->srcpad, outcaps);
+
   gst_caps_unref (outcaps);
 
   return res;
@@ -302,10 +337,10 @@
       if (map.size < 12)
         goto invalid_tile;
 
-      if (map.data[0] == 0xff && map.data[1] == J2K_MARKER_SOT) {
+      if (map.data[0] == GST_J2K_MARKER && map.data[1] == GST_J2K_MARKER_SOT) {
         guint Psot, nPsot;
 
-        if (end[0] == 0xff && end[1] == J2K_MARKER_EOC)
+        if (end[0] == GST_J2K_MARKER && end[1] == GST_J2K_MARKER_EOC)
           nPsot = avail - 2;
         else
           nPsot = avail;
@@ -380,9 +415,9 @@
      * marker */
     gst_adapter_copy (rtpj2kdepay->f_adapter, end, avail - 2, 2);
 
-    if (end[0] != 0xff && end[1] != 0xd9) {
-      end[0] = 0xff;
-      end[1] = 0xd9;
+    if (end[0] != GST_J2K_MARKER && end[1] != GST_J2K_MARKER_EOC) {
+      end[0] = GST_J2K_MARKER;
+      end[1] = GST_J2K_MARKER_EOC;
 
       GST_DEBUG_OBJECT (rtpj2kdepay, "no EOC marker, adding one");
 
@@ -433,7 +468,7 @@
   payload_len = gst_rtp_buffer_get_payload_len (rtp);
 
   /* we need at least a header */
-  if (payload_len < 8)
+  if (payload_len < GST_RTP_J2K_HEADER_SIZE)
     goto empty_packet;
 
   rtptime = gst_rtp_buffer_get_timestamp (rtp);
@@ -464,7 +499,7 @@
 
   tile = (payload[2] << 8) | payload[3];
   frag_offset = (payload[5] << 16) | (payload[6] << 8) | payload[7];
-  j2klen = payload_len - 8;
+  j2klen = payload_len - GST_RTP_J2K_HEADER_SIZE;
 
   GST_DEBUG_OBJECT (rtpj2kdepay, "MHF %u, tile %u, frag %u, expected %u", MHF,
       tile, frag_offset, rtpj2kdepay->next_frag);
@@ -481,19 +516,19 @@
   }
 
   /* check for sync code */
-  if (j2klen > 2 && payload[8] == 0xff) {
-    guint marker = payload[9];
+  if (j2klen > 2 && payload[GST_RTP_J2K_HEADER_SIZE] == GST_J2K_MARKER) {
+    guint marker = payload[GST_RTP_J2K_HEADER_SIZE + 1];
 
     /* packets must start with SOC, SOT or SOP */
     switch (marker) {
-      case J2K_MARKER_SOC:
+      case GST_J2K_MARKER_SOC:
         GST_DEBUG_OBJECT (rtpj2kdepay, "found SOC packet");
         /* flush the previous frame, should have happened when the timestamp
          * changed above. */
         gst_rtp_j2k_depay_flush_frame (depayload);
         rtpj2kdepay->have_sync = TRUE;
         break;
-      case J2K_MARKER_SOT:
+      case GST_J2K_MARKER_SOT:
         /* flush the previous tile */
         gst_rtp_j2k_depay_flush_tile (depayload);
         GST_DEBUG_OBJECT (rtpj2kdepay, "found SOT packet");
@@ -501,7 +536,7 @@
         /* we sync on the tile now */
         rtpj2kdepay->last_tile = tile;
         break;
-      case J2K_MARKER_SOP:
+      case GST_J2K_MARKER_SOP:
         GST_DEBUG_OBJECT (rtpj2kdepay, "found SOP packet");
         /* flush the previous PU */
         gst_rtp_j2k_depay_flush_pu (depayload);
diff --git a/gst/rtp/gstrtpj2kdepay.h b/gst/rtp/gstrtpj2kdepay.h
index e5b9d6b..ebc7433 100644
--- a/gst/rtp/gstrtpj2kdepay.h
+++ b/gst/rtp/gstrtpj2kdepay.h
@@ -25,7 +25,6 @@
 #include <gst/rtp/gstrtpbasedepayload.h>
 
 G_BEGIN_DECLS
-
 #define GST_TYPE_RTP_J2K_DEPAY \
   (gst_rtp_j2k_depay_get_type())
 #define GST_RTP_J2K_DEPAY(obj) \
@@ -36,7 +35,6 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_J2K_DEPAY))
 #define GST_IS_RTP_J2K_DEPAY_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_J2K_DEPAY))
-
 typedef struct _GstRtpJ2KDepay GstRtpJ2KDepay;
 typedef struct _GstRtpJ2KDepayClass GstRtpJ2KDepayClass;
 
@@ -71,5 +69,4 @@
 gboolean gst_rtp_j2k_depay_plugin_init (GstPlugin * plugin);
 
 G_END_DECLS
-
 #endif /* __GST_RTP_J2K_DEPAY_H__ */
diff --git a/gst/rtp/gstrtpj2kpay.c b/gst/rtp/gstrtpj2kpay.c
index 964a090..41e5ea6 100644
--- a/gst/rtp/gstrtpj2kpay.c
+++ b/gst/rtp/gstrtpj2kpay.c
@@ -17,15 +17,20 @@
  * Boston, MA 02110-1301, USA.
  */
 
-/**
+ /**
  * SECTION:element-rtpj2kpay
  *
- * Payload encode JPEG 2000 pictures into RTP packets according to RFC 5371.
- * For detailed information see: http://www.rfc-editor.org/rfc/rfc5371.txt
+ * Payload encode JPEG 2000 images into RTP packets according to RFC 5371
+ * and RFC 5372.
+ * For detailed information see: https://datatracker.ietf.org/doc/rfc5371/
+ * and https://datatracker.ietf.org/doc/rfc5372/
  *
- * The payloader takes a JPEG 2000 picture, scans the header for packetization
- * units and constructs the RTP packet header followed by the actual JPEG 2000
- * codestream.
+ * The payloader takes a JPEG 2000 image, scans it for "packetization
+ * units" and constructs the RTP packet header followed by the JPEG 2000
+ * codestream. A "packetization unit" is defined as either a JPEG 2000 main header,
+ * a JPEG 2000 tile-part header, or a JPEG 2000 packet.
+ *
+ *
  */
 
 #ifdef HAVE_CONFIG_H
@@ -35,7 +40,7 @@
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/video/video.h>
-
+#include "gstrtpj2kcommon.h"
 #include "gstrtpj2kpay.h"
 #include "gstrtputils.h"
 
@@ -43,9 +48,10 @@
 GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("image/x-jpc")
+    GST_STATIC_CAPS ("image/x-jpc, " GST_RTP_J2K_SAMPLING_LIST)
     );
 
+
 static GstStaticPadTemplate gst_rtp_j2k_pay_src_template =
 GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
@@ -54,31 +60,12 @@
         "  media = (string) \"video\", "
         "  payload = (int) " GST_RTP_PAYLOAD_DYNAMIC_STRING ", "
         "  clock-rate = (int) 90000, "
-        "  encoding-name = (string) \"JPEG2000\"")
+        GST_RTP_J2K_SAMPLING_LIST "," "  encoding-name = (string) \"JPEG2000\"")
     );
 
 GST_DEBUG_CATEGORY_STATIC (rtpj2kpay_debug);
 #define GST_CAT_DEFAULT (rtpj2kpay_debug)
 
-/*
- * RtpJ2KMarker:
- * @J2K_MARKER: Prefix for JPEG 2000 marker
- * @J2K_MARKER_SOC: Start of Codestream
- * @J2K_MARKER_SOT: Start of tile
- * @J2K_MARKER_EOC: End of Codestream
- *
- * Identifers for markers in JPEG 2000 codestreams
- */
-typedef enum
-{
-  J2K_MARKER = 0xFF,
-  J2K_MARKER_SOC = 0x4F,
-  J2K_MARKER_SOT = 0x90,
-  J2K_MARKER_SOP = 0x91,
-  J2K_MARKER_EPH = 0x92,
-  J2K_MARKER_SOD = 0x93,
-  J2K_MARKER_EOC = 0xD9
-} RtpJ2KMarker;
 
 enum
 {
@@ -97,8 +84,6 @@
   guint offset:24;
 } RtpJ2KHeader;
 
-#define HEADER_SIZE 8
-
 static void gst_rtp_j2k_pay_set_property (GObject * object, guint prop_id,
     const GValue * value, GParamSpec * pspec);
 static void gst_rtp_j2k_pay_get_property (GObject * object, guint prop_id,
@@ -127,10 +112,10 @@
   gobject_class->set_property = gst_rtp_j2k_pay_set_property;
   gobject_class->get_property = gst_rtp_j2k_pay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_j2k_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_j2k_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_j2k_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_j2k_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP JPEG 2000 payloader", "Codec/Payloader/Network/RTP",
@@ -153,24 +138,29 @@
 gst_rtp_j2k_pay_setcaps (GstRTPBasePayload * basepayload, GstCaps * caps)
 {
   GstStructure *caps_structure = gst_caps_get_structure (caps, 0);
-  GstRtpJ2KPay *pay;
-  gint width = 0, height = 0;
   gboolean res;
+  gint width = 0, height = 0;
+  const gchar *sampling = NULL;
 
-  pay = GST_RTP_J2K_PAY (basepayload);
+  gboolean has_width = gst_structure_get_int (caps_structure, "width", &width);
+  gboolean has_height =
+      gst_structure_get_int (caps_structure, "height", &height);
 
-  /* these properties are not mandatory, we can get them from the stream */
-  if (gst_structure_get_int (caps_structure, "height", &height)) {
-    pay->height = height;
-  }
-  if (gst_structure_get_int (caps_structure, "width", &width)) {
-    pay->width = width;
-  }
+
+  /* sampling is a required field */
+  sampling = gst_structure_get_string (caps_structure, "sampling");
 
   gst_rtp_base_payload_set_options (basepayload, "video", TRUE, "JPEG2000",
       90000);
-  res = gst_rtp_base_payload_set_outcaps (basepayload, NULL);
 
+  if (has_width && has_height)
+    res = gst_rtp_base_payload_set_outcaps (basepayload,
+        "sampling", G_TYPE_STRING, sampling, "width", G_TYPE_INT, width,
+        "height", G_TYPE_INT, height, NULL);
+  else
+    res =
+        gst_rtp_base_payload_set_outcaps (basepayload, "sampling",
+        G_TYPE_STRING, sampling, NULL);
   return res;
 }
 
@@ -181,34 +171,42 @@
   return data[offset] << 8 | data[offset + 1];
 }
 
-static RtpJ2KMarker
+
+static GstRtpJ2KMarker
 gst_rtp_j2k_pay_scan_marker (const guint8 * data, guint size, guint * offset)
 {
-  while ((data[(*offset)++] != J2K_MARKER) && ((*offset) < size));
+  while ((data[(*offset)++] != GST_J2K_MARKER) && ((*offset) < size));
 
   if (G_UNLIKELY ((*offset) >= size)) {
-    return J2K_MARKER_EOC;
+    return GST_J2K_MARKER_EOC;
   } else {
     guint8 marker = data[(*offset)++];
-    return marker;
+    return (GstRtpJ2KMarker) marker;
   }
 }
 
 typedef struct
 {
   RtpJ2KHeader header;
+  gboolean multi_tile;
   gboolean bitstream;
-  guint n_tiles;
   guint next_sot;
   gboolean force_packet;
 } RtpJ2KState;
 
+
+/* Note: The standard recommends that headers be put in their own RTP packets, so we follow
+ * this recommendation in the code. Also, this method groups together all J2K packets
+ * for a tile part and treats this group as a packetization unit. According to the RFC,
+ * only an individual J2K packet is considered a packetization unit.
+ */
+
 static guint
 find_pu_end (GstRtpJ2KPay * pay, const guint8 * data, guint size,
     guint offset, RtpJ2KState * state)
 {
   gboolean cut_sop = FALSE;
-  RtpJ2KMarker marker;
+  GstRtpJ2KMarker marker;
 
   /* parse the j2k header for 'start of codestream' */
   GST_LOG_OBJECT (pay, "checking from offset %u", offset);
@@ -218,13 +216,13 @@
     if (state->bitstream) {
       /* parsing bitstream, only look for SOP */
       switch (marker) {
-        case J2K_MARKER_SOP:
+        case GST_J2K_MARKER_SOP:
           GST_LOG_OBJECT (pay, "found SOP at %u", offset);
           if (cut_sop)
             return offset - 2;
           cut_sop = TRUE;
           break;
-        case J2K_MARKER_EPH:
+        case GST_J2K_MARKER_EPH:
           /* just skip over EPH */
           GST_LOG_OBJECT (pay, "found EPH at %u", offset);
           break;
@@ -233,7 +231,7 @@
             GST_LOG_OBJECT (pay, "reached next SOT at %u", offset);
             state->bitstream = FALSE;
             state->force_packet = TRUE;
-            if (marker == J2K_MARKER_EOC && state->next_sot + 2 <= size)
+            if (marker == GST_J2K_MARKER_EOC && state->next_sot + 2 <= size)
               /* include EOC but never go past the max size */
               return state->next_sot + 2;
             else
@@ -243,16 +241,20 @@
       }
     } else {
       switch (marker) {
-        case J2K_MARKER_SOC:
+        case GST_J2K_MARKER_SOC:
           GST_LOG_OBJECT (pay, "found SOC at %u", offset);
-          state->header.MHF = 1;
+          /* start off by assuming that we will fit the entire header
+             into the RTP payload */
+          state->header.MHF = 3;
           break;
-        case J2K_MARKER_SOT:
+        case GST_J2K_MARKER_SOT:
         {
-          guint len, Psot;
+          guint len, Psot, tile;
 
           GST_LOG_OBJECT (pay, "found SOT at %u", offset);
-          /* we found SOT but also had a header first */
+          /* SOT for first tile part in code stream:
+             force close of current RTP packet, so that it
+             only contains main header  */
           if (state->header.MHF) {
             state->force_packet = TRUE;
             return offset - 2;
@@ -266,17 +268,28 @@
           if (offset + len >= size)
             return size;
 
-          if (state->n_tiles == 0)
-            /* first tile, T is valid */
-            state->header.T = 0;
-          else
-            /* more tiles, T becomes invalid */
-            state->header.T = 1;
-          state->header.tile = GST_READ_UINT16_BE (&data[offset + 2]);
-          state->n_tiles++;
+          /* Isot */
+          tile = GST_READ_UINT16_BE (&data[offset + 2]);
 
-          /* get offset of next tile, if it's 0, it goes all the way to the end of
-           * the data */
+          if (!state->multi_tile) {
+            /* we have detected multiple tiles in this rtp packet : tile bit is now invalid */
+            if (state->header.T == 0 && state->header.tile != tile) {
+              state->header.T = 1;
+              state->multi_tile = TRUE;
+            } else {
+              state->header.T = 0;
+            }
+          }
+          state->header.tile = tile;
+
+          /* Note: Tile parts from multiple tiles in single RTP packet 
+             will make T invalid.
+             This cannot happen in our case since we always
+             send tile headers in their own RTP packets, so we cannot mix
+             tile parts in a single RTP packet  */
+
+          /* Psot: offset of next tile. If it's 0, next tile goes all the way
+             to the end of the data */
           Psot = GST_READ_UINT32_BE (&data[offset + 4]);
           if (Psot == 0)
             state->next_sot = size;
@@ -288,10 +301,8 @@
               Psot, state->next_sot);
           break;
         }
-        case J2K_MARKER_SOD:
+        case GST_J2K_MARKER_SOD:
           GST_LOG_OBJECT (pay, "found SOD at %u", offset);
-          /* can't have more tiles now */
-          state->n_tiles = 0;
           /* go to bitstream parsing */
           state->bitstream = TRUE;
           /* cut at the next SOP or else include all data */
@@ -300,7 +311,7 @@
            * spec recommends packing headers separately */
           state->force_packet = TRUE;
           break;
-        case J2K_MARKER_EOC:
+        case GST_J2K_MARKER_EOC:
           GST_LOG_OBJECT (pay, "found EOC at %u", offset);
           return offset;
         default:
@@ -346,17 +357,18 @@
   state.header.tp = 0;          /* only progressive scan */
   state.header.MHF = 0;         /* no header */
   state.header.mh_id = 0;       /* always 0 for now */
-  state.header.T = 1;           /* invalid tile */
+  state.header.T = 1;           /* invalid tile, because we always begin with the main header */
   state.header.priority = 255;  /* always 255 for now */
-  state.header.tile = 0;        /* no tile number */
+  state.header.tile = 0xffff;   /* no tile number */
   state.header.offset = 0;      /* offset of 0 */
+  state.multi_tile = FALSE;
   state.bitstream = FALSE;
-  state.n_tiles = 0;
   state.next_sot = 0;
   state.force_packet = FALSE;
 
   /* get max packet length */
-  max_size = gst_rtp_buffer_calc_payload_len (mtu - HEADER_SIZE, 0, 0);
+  max_size =
+      gst_rtp_buffer_calc_payload_len (mtu - GST_RTP_J2K_HEADER_SIZE, 0, 0);
 
   list = gst_buffer_list_new_sized ((mtu / max_size) + 1);
 
@@ -411,7 +423,8 @@
 
       /* calculate the packet size */
       packet_size =
-          gst_rtp_buffer_calc_packet_len (pu_size + HEADER_SIZE, 0, 0);
+          gst_rtp_buffer_calc_packet_len (pu_size + GST_RTP_J2K_HEADER_SIZE, 0,
+          0);
 
       if (packet_size > mtu) {
         GST_DEBUG_OBJECT (pay, "needed packet size %u clamped to MTU %u",
@@ -424,10 +437,10 @@
 
       /* get total payload size and data size */
       payload_size = gst_rtp_buffer_calc_payload_len (packet_size, 0, 0);
-      data_size = payload_size - HEADER_SIZE;
+      data_size = payload_size - GST_RTP_J2K_HEADER_SIZE;
 
       /* make buffer for header */
-      outbuf = gst_rtp_buffer_new_allocate (HEADER_SIZE, 0, 0);
+      outbuf = gst_rtp_buffer_new_allocate (GST_RTP_J2K_HEADER_SIZE, 0, 0);
 
       GST_BUFFER_PTS (outbuf) = timestamp;
 
@@ -437,18 +450,26 @@
       header = gst_rtp_buffer_get_payload (&rtp);
 
       pu_size -= data_size;
-      if (pu_size == 0) {
-        /* reached the end of a packetization unit */
-        if (state.header.MHF) {
-          /* we were doing a header, see if all fit in one packet or if
-           * we had to fragment it */
-          if (offset == 0)
-            state.header.MHF = 3;
-          else
-            state.header.MHF = 2;
+
+      /* reached the end of a packetization unit */
+      if (pu_size == 0 && end >= map.size) {
+        gst_rtp_buffer_set_marker (&rtp, TRUE);
+      }
+      /* If we were processing a header, see if all fits in one RTP packet
+         or if we have to fragment it */
+      if (state.header.MHF) {
+        switch (state.header.MHF) {
+          case 3:
+            if (pu_size > 0)
+              state.header.MHF = 1;
+            break;
+          case 1:
+            if (pu_size == 0)
+              state.header.MHF = 2;
+            break;
+          default:
+            break;
         }
-        if (end >= map.size)
-          gst_rtp_buffer_set_marker (&rtp, TRUE);
       }
 
       /*
@@ -491,10 +512,18 @@
 
       gst_buffer_list_add (list, outbuf);
 
-      /* reset header for next round */
-      state.header.MHF = 0;
-      state.header.T = 1;
-      state.header.tile = 0;
+      /* reset multi_tile */
+      state.multi_tile = FALSE;
+
+
+      /* set MHF to zero if there is no more main header to process */
+      if (state.header.MHF & 2)
+        state.header.MHF = 0;
+
+      /* tile is valid, if there is no more header to process */
+      if (!state.header.MHF)
+        state.header.T = 0;
+
 
       offset += data_size;
       state.header.offset = offset;
diff --git a/gst/rtp/gstrtpj2kpay.h b/gst/rtp/gstrtpj2kpay.h
index 7160a62..14f5295 100644
--- a/gst/rtp/gstrtpj2kpay.h
+++ b/gst/rtp/gstrtpj2kpay.h
@@ -24,7 +24,6 @@
 #include <gst/rtp/gstrtpbasepayload.h>
 
 G_BEGIN_DECLS
-
 #define GST_TYPE_RTP_J2K_PAY \
   (gst_rtp_j2k_pay_get_type())
 #define GST_RTP_J2K_PAY(obj) \
@@ -35,7 +34,6 @@
   (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_RTP_J2K_PAY))
 #define GST_IS_RTP_J2K_PAY_CLASS(klass) \
   (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_RTP_J2K_PAY))
-
 typedef struct _GstRtpJ2KPay GstRtpJ2KPay;
 typedef struct _GstRtpJ2KPayClass GstRtpJ2KPayClass;
 
@@ -57,5 +55,4 @@
 gboolean gst_rtp_j2k_pay_plugin_init (GstPlugin * plugin);
 
 G_END_DECLS
-
 #endif /* __GST_RTP_J2K_PAY_H__ */
diff --git a/gst/rtp/gstrtpjpegdepay.c b/gst/rtp/gstrtpjpegdepay.c
index d968781..c4e2e8e 100644
--- a/gst/rtp/gstrtpjpegdepay.c
+++ b/gst/rtp/gstrtpjpegdepay.c
@@ -94,10 +94,10 @@
 
   gobject_class->finalize = gst_rtp_jpeg_depay_finalize;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jpeg_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jpeg_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jpeg_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jpeg_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP JPEG depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpjpegpay.c b/gst/rtp/gstrtpjpegpay.c
index a109020..7940cb6 100644
--- a/gst/rtp/gstrtpjpegpay.c
+++ b/gst/rtp/gstrtpjpegpay.c
@@ -261,10 +261,10 @@
   gobject_class->set_property = gst_rtp_jpeg_pay_set_property;
   gobject_class->get_property = gst_rtp_jpeg_pay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jpeg_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jpeg_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jpeg_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jpeg_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP JPEG payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpklvdepay.c b/gst/rtp/gstrtpklvdepay.c
index 583356b..eeefe7e 100644
--- a/gst/rtp/gstrtpklvdepay.c
+++ b/gst/rtp/gstrtpklvdepay.c
@@ -85,10 +85,8 @@
 
   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_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "RTP KLV Depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpklvpay.c b/gst/rtp/gstrtpklvpay.c
index a27d95e..5a07d2c 100644
--- a/gst/rtp/gstrtpklvpay.c
+++ b/gst/rtp/gstrtpklvpay.c
@@ -74,10 +74,8 @@
 
   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_add_static_pad_template (element_class, &src_template);
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "RTP KLV Payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp1sdepay.c b/gst/rtp/gstrtpmp1sdepay.c
index f6c71b9..31a3108 100644
--- a/gst/rtp/gstrtpmp1sdepay.c
+++ b/gst/rtp/gstrtpmp1sdepay.c
@@ -81,10 +81,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_mp1s_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp1s_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp1s_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp1s_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG1 System Stream depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp2tdepay.c b/gst/rtp/gstrtpmp2tdepay.c
index 6f4d933..f8e0d0c 100644
--- a/gst/rtp/gstrtpmp2tdepay.c
+++ b/gst/rtp/gstrtpmp2tdepay.c
@@ -99,10 +99,10 @@
   gobject_class->set_property = gst_rtp_mp2t_depay_set_property;
   gobject_class->get_property = gst_rtp_mp2t_depay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp2t_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp2t_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp2t_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp2t_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG Transport Stream depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp2tpay.c b/gst/rtp/gstrtpmp2tpay.c
index 3ddb429..12f948e 100644
--- a/gst/rtp/gstrtpmp2tpay.c
+++ b/gst/rtp/gstrtpmp2tpay.c
@@ -76,10 +76,10 @@
   gstrtpbasepayload_class->set_caps = gst_rtp_mp2t_pay_setcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_mp2t_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp2t_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp2t_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp2t_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp2t_pay_src_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG2 Transport Stream payloader", "Codec/Payloader/Network/RTP",
       "Payload-encodes MPEG2 TS into RTP packets (RFC 2250)",
diff --git a/gst/rtp/gstrtpmp4adepay.c b/gst/rtp/gstrtpmp4adepay.c
index 40080f1..5a5f341 100644
--- a/gst/rtp/gstrtpmp4adepay.c
+++ b/gst/rtp/gstrtpmp4adepay.c
@@ -37,7 +37,7 @@
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
     GST_STATIC_CAPS ("audio/mpeg,"
-        "mpegversion = (int) 4," "framed = (boolean) true, "
+        "mpegversion = (int) 4," "framed = (boolean) { false, true }, "
         "stream-format = (string) raw")
     );
 
@@ -90,10 +90,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_mp4a_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4a_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4a_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4a_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 audio depayloader", "Codec/Depayloader/Network/RTP",
@@ -109,6 +109,7 @@
 gst_rtp_mp4a_depay_init (GstRtpMP4ADepay * rtpmp4adepay)
 {
   rtpmp4adepay->adapter = gst_adapter_new ();
+  rtpmp4adepay->framed = FALSE;
 }
 
 static void
@@ -142,6 +143,8 @@
 
   rtpmp4adepay = GST_RTP_MP4A_DEPAY (depayload);
 
+  rtpmp4adepay->framed = FALSE;
+
   structure = gst_caps_get_structure (caps, 0);
 
   if (!gst_structure_get_int (structure, "clock-rate", &clock_rate))
@@ -153,7 +156,7 @@
 
   srccaps = gst_caps_new_simple ("audio/mpeg",
       "mpegversion", G_TYPE_INT, 4,
-      "framed", G_TYPE_BOOLEAN, TRUE, "channels", G_TYPE_INT, channels,
+      "framed", G_TYPE_BOOLEAN, FALSE, "channels", G_TYPE_INT, channels,
       "stream-format", G_TYPE_STRING, "raw", NULL);
 
   if ((str = gst_structure_get_string (structure, "config"))) {
@@ -310,6 +313,25 @@
 
   outbuf = gst_rtp_buffer_get_payload_buffer (rtp);
 
+  if (!rtpmp4adepay->framed) {
+    if (gst_rtp_buffer_get_marker (rtp)) {
+      GstCaps *caps;
+
+      rtpmp4adepay->framed = TRUE;
+
+      gst_rtp_base_depayload_push (depayload, outbuf);
+
+      caps = gst_pad_get_current_caps (depayload->srcpad);
+      caps = gst_caps_make_writable (caps);
+      gst_caps_set_simple (caps, "framed", G_TYPE_BOOLEAN, TRUE, NULL);
+      gst_pad_set_caps (depayload->srcpad, caps);
+      gst_caps_unref (caps);
+      return NULL;
+    } else {
+      return outbuf;
+    }
+  }
+
   outbuf = gst_buffer_make_writable (outbuf);
   GST_BUFFER_PTS (outbuf) = GST_BUFFER_PTS (rtp->buffer);
   gst_adapter_push (rtpmp4adepay->adapter, outbuf);
@@ -422,6 +444,7 @@
       gst_adapter_clear (rtpmp4adepay->adapter);
       rtpmp4adepay->frame_len = 0;
       rtpmp4adepay->numSubFrames = 0;
+      rtpmp4adepay->framed = FALSE;
       break;
     default:
       break;
diff --git a/gst/rtp/gstrtpmp4adepay.h b/gst/rtp/gstrtpmp4adepay.h
index b44349f..31eaf56 100644
--- a/gst/rtp/gstrtpmp4adepay.h
+++ b/gst/rtp/gstrtpmp4adepay.h
@@ -45,6 +45,8 @@
   GstAdapter *adapter;
   guint8 numSubFrames;
   guint frame_len;
+
+  gboolean framed;
 };
 
 struct _GstRtpMP4ADepayClass
diff --git a/gst/rtp/gstrtpmp4apay.c b/gst/rtp/gstrtpmp4apay.c
index b42cffd..64b4baa 100644
--- a/gst/rtp/gstrtpmp4apay.c
+++ b/gst/rtp/gstrtpmp4apay.c
@@ -84,10 +84,10 @@
   gstrtpbasepayload_class->set_caps = gst_rtp_mp4a_pay_setcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_mp4a_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4a_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4a_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4a_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4a_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp4gdepay.c b/gst/rtp/gstrtpmp4gdepay.c
index c8c79c9..d7d91c4 100644
--- a/gst/rtp/gstrtpmp4gdepay.c
+++ b/gst/rtp/gstrtpmp4gdepay.c
@@ -162,10 +162,10 @@
   gstrtpbasedepayload_class->set_caps = gst_rtp_mp4g_depay_setcaps;
   gstrtpbasedepayload_class->handle_event = gst_rtp_mp4g_depay_handle_event;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4g_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4g_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4g_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4g_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 ES depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp4gpay.c b/gst/rtp/gstrtpmp4gpay.c
index 366ebf5..7333b49 100644
--- a/gst/rtp/gstrtpmp4gpay.c
+++ b/gst/rtp/gstrtpmp4gpay.c
@@ -107,10 +107,10 @@
   gstrtpbasepayload_class->handle_buffer = gst_rtp_mp4g_pay_handle_buffer;
   gstrtpbasepayload_class->sink_event = gst_rtp_mp4g_pay_sink_event;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4g_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4g_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4g_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4g_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 ES payloader",
@@ -134,7 +134,6 @@
   GST_DEBUG_OBJECT (rtpmp4gpay, "reset");
 
   gst_adapter_clear (rtpmp4gpay->adapter);
-  rtpmp4gpay->offset = 0;
 }
 
 static void
@@ -540,10 +539,7 @@
     GST_BUFFER_PTS (outbuf) = rtpmp4gpay->first_timestamp;
     GST_BUFFER_DURATION (outbuf) = rtpmp4gpay->first_duration;
 
-    if (rtpmp4gpay->frame_len) {
-      GST_BUFFER_OFFSET (outbuf) = rtpmp4gpay->offset;
-      rtpmp4gpay->offset += rtpmp4gpay->frame_len;
-    }
+    GST_BUFFER_OFFSET (outbuf) = GST_BUFFER_OFFSET_NONE;
 
     if (rtpmp4gpay->discont) {
       GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT);
diff --git a/gst/rtp/gstrtpmp4gpay.h b/gst/rtp/gstrtpmp4gpay.h
index 7506fad..14fd68a 100644
--- a/gst/rtp/gstrtpmp4gpay.h
+++ b/gst/rtp/gstrtpmp4gpay.h
@@ -48,8 +48,6 @@
   GstClockTime  first_timestamp;
   GstClockTime  first_duration;
   gboolean      discont;
-  GstClockTime  duration;
-  guint64       offset;
 
   gint          rate;
   gchar        *params;
diff --git a/gst/rtp/gstrtpmp4vdepay.c b/gst/rtp/gstrtpmp4vdepay.c
index a62d64a..49b6f0f 100644
--- a/gst/rtp/gstrtpmp4vdepay.c
+++ b/gst/rtp/gstrtpmp4vdepay.c
@@ -86,10 +86,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_mp4v_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4v_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4v_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4v_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 video depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmp4vpay.c b/gst/rtp/gstrtpmp4vpay.c
index 5509579..671f353 100644
--- a/gst/rtp/gstrtpmp4vpay.c
+++ b/gst/rtp/gstrtpmp4vpay.c
@@ -95,10 +95,10 @@
   gobject_class->set_property = gst_rtp_mp4v_pay_set_property;
   gobject_class->get_property = gst_rtp_mp4v_pay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4v_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mp4v_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4v_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mp4v_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG4 Video payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmpadepay.c b/gst/rtp/gstrtpmpadepay.c
index ccb4633..d580770 100644
--- a/gst/rtp/gstrtpmpadepay.c
+++ b/gst/rtp/gstrtpmpadepay.c
@@ -71,10 +71,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG audio depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmpapay.c b/gst/rtp/gstrtpmpapay.c
index fe2f3a7..6e6054d 100644
--- a/gst/rtp/gstrtpmpapay.c
+++ b/gst/rtp/gstrtpmpapay.c
@@ -87,10 +87,10 @@
 
   gstelement_class->change_state = gst_rtp_mpa_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG audio payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmparobustdepay.c b/gst/rtp/gstrtpmparobustdepay.c
index 02155e5..702d2b0 100644
--- a/gst/rtp/gstrtpmparobustdepay.c
+++ b/gst/rtp/gstrtpmparobustdepay.c
@@ -111,10 +111,10 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_rtp_mpa_robust_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_robust_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpa_robust_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_robust_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpa_robust_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG audio depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmpvdepay.c b/gst/rtp/gstrtpmpvdepay.c
index ff98fc0..81b5e22 100644
--- a/gst/rtp/gstrtpmpvdepay.c
+++ b/gst/rtp/gstrtpmpvdepay.c
@@ -70,10 +70,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpv_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpv_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpv_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpv_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG video depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpmpvpay.c b/gst/rtp/gstrtpmpvpay.c
index 40bda45..d16b3a0 100644
--- a/gst/rtp/gstrtpmpvpay.c
+++ b/gst/rtp/gstrtpmpvpay.c
@@ -85,10 +85,10 @@
 
   gstelement_class->change_state = gst_rtp_mpv_pay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpv_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_mpv_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpv_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_mpv_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP MPEG2 ES video payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpopusdepay.c b/gst/rtp/gstrtpopusdepay.c
index b9d529e..afa6ba7 100644
--- a/gst/rtp/gstrtpopusdepay.c
+++ b/gst/rtp/gstrtpopusdepay.c
@@ -67,10 +67,10 @@
   element_class = GST_ELEMENT_CLASS (klass);
   gstbasertpdepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_opus_depay_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_opus_depay_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_opus_depay_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_opus_depay_sink_template);
   gst_element_class_set_static_metadata (element_class,
       "RTP Opus packet depayloader", "Codec/Depayloader/Network/RTP",
       "Extracts Opus audio from RTP packets",
diff --git a/gst/rtp/gstrtpopuspay.c b/gst/rtp/gstrtpopuspay.c
index 1c6fb51..1a6eb80 100644
--- a/gst/rtp/gstrtpopuspay.c
+++ b/gst/rtp/gstrtpopuspay.c
@@ -76,10 +76,10 @@
   gstbasertppayload_class->get_caps = gst_rtp_opus_pay_getcaps;
   gstbasertppayload_class->handle_buffer = gst_rtp_opus_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_opus_pay_src_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_opus_pay_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_opus_pay_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_opus_pay_sink_template);
 
   gst_element_class_set_static_metadata (element_class,
       "RTP Opus payloader",
diff --git a/gst/rtp/gstrtppcmadepay.c b/gst/rtp/gstrtppcmadepay.c
index 5556dc0..4d13528 100644
--- a/gst/rtp/gstrtppcmadepay.c
+++ b/gst/rtp/gstrtppcmadepay.c
@@ -79,10 +79,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcma_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcma_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcma_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcma_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP PCMA depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtppcmapay.c b/gst/rtp/gstrtppcmapay.c
index 0860d76..7c0ca16 100644
--- a/gst/rtp/gstrtppcmapay.c
+++ b/gst/rtp/gstrtppcmapay.c
@@ -66,10 +66,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcma_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcma_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcma_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcma_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP PCMA payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtppcmudepay.c b/gst/rtp/gstrtppcmudepay.c
index 450ca9e..f854315 100644
--- a/gst/rtp/gstrtppcmudepay.c
+++ b/gst/rtp/gstrtppcmudepay.c
@@ -80,10 +80,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasedepayload_class = (GstRTPBaseDepayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcmu_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcmu_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcmu_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcmu_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP PCMU depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtppcmupay.c b/gst/rtp/gstrtppcmupay.c
index b4beb96..03bcd7d 100644
--- a/gst/rtp/gstrtppcmupay.c
+++ b/gst/rtp/gstrtppcmupay.c
@@ -66,10 +66,10 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcmu_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_pcmu_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcmu_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_pcmu_pay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP PCMU payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpqcelpdepay.c b/gst/rtp/gstrtpqcelpdepay.c
index 58815dc..924d71e 100644
--- a/gst/rtp/gstrtpqcelpdepay.c
+++ b/gst/rtp/gstrtpqcelpdepay.c
@@ -98,10 +98,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_qcelp_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_qcelp_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_qcelp_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_qcelp_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP QCELP depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpqdmdepay.c b/gst/rtp/gstrtpqdmdepay.c
index fc12c79..898663a 100644
--- a/gst/rtp/gstrtpqdmdepay.c
+++ b/gst/rtp/gstrtpqdmdepay.c
@@ -84,10 +84,10 @@
 
   gstelement_class->change_state = gst_rtp_qdm2_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_qdm2_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_qdm2_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_qdm2_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_qdm2_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP QDM2 depayloader",
diff --git a/gst/rtp/gstrtpsbcdepay.c b/gst/rtp/gstrtpsbcdepay.c
index 4863fc8..7f8ba39 100644
--- a/gst/rtp/gstrtpsbcdepay.c
+++ b/gst/rtp/gstrtpsbcdepay.c
@@ -76,10 +76,10 @@
   gstbasertpdepayload_class->set_caps = gst_rtp_sbc_depay_setcaps;
   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));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_sbc_depay_sink_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_sbc_depay_src_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_sbc_depay_sink_template);
 
   GST_DEBUG_CATEGORY_INIT (rtpsbcdepay_debug, "rtpsbcdepay", 0,
       "SBC Audio RTP Depayloader");
diff --git a/gst/rtp/gstrtpsbcpay.c b/gst/rtp/gstrtpsbcpay.c
index b012407..794a817 100644
--- a/gst/rtp/gstrtpsbcpay.c
+++ b/gst/rtp/gstrtpsbcpay.c
@@ -157,6 +157,8 @@
       bitpool, channel_mode);
 
   sbcpay->frame_length = frame_len;
+  sbcpay->frame_duration = ((blocks * subbands) * GST_SECOND) / rate;
+  sbcpay->last_timestamp = GST_CLOCK_TIME_NONE;
 
   gst_rtp_base_payload_set_options (payload, "audio", TRUE, "SBC", rate);
 
@@ -214,9 +216,12 @@
       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;
-  GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes", payload_length);
+  GST_BUFFER_PTS (outbuf) = sbcpay->last_timestamp;
+  GST_BUFFER_DURATION (outbuf) = frame_count * sbcpay->frame_duration;
+  GST_DEBUG_OBJECT (sbcpay, "Pushing %d bytes: %" GST_TIME_FORMAT,
+      payload_length, GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)));
+
+  sbcpay->last_timestamp += frame_count * sbcpay->frame_duration;
 
   return gst_rtp_base_payload_push (GST_RTP_BASE_PAYLOAD (sbcpay), outbuf);
 }
@@ -230,7 +235,19 @@
   /* FIXME check for negotiation */
 
   sbcpay = GST_RTP_SBC_PAY (payload);
-  sbcpay->timestamp = GST_BUFFER_PTS (buffer);
+
+  if (GST_BUFFER_IS_DISCONT (buffer)) {
+    /* Try to flush whatever's left */
+    gst_rtp_sbc_pay_flush_buffers (sbcpay);
+    /* Drop the rest */
+    gst_adapter_flush (sbcpay->adapter,
+        gst_adapter_available (sbcpay->adapter));
+    /* Reset timestamps */
+    sbcpay->last_timestamp = GST_CLOCK_TIME_NONE;
+  }
+
+  if (sbcpay->last_timestamp == GST_CLOCK_TIME_NONE)
+    sbcpay->last_timestamp = GST_BUFFER_PTS (buffer);
 
   gst_adapter_push (sbcpay->adapter, buffer);
 
@@ -293,10 +310,10 @@
           "(-1 for maximum allowed by the mtu)",
           -1, G_MAXINT, DEFAULT_MIN_FRAMES, G_PARAM_READWRITE));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_sbc_pay_sink_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_sbc_pay_src_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_sbc_pay_sink_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_sbc_pay_src_factory);
 
   gst_element_class_set_static_metadata (element_class, "RTP packet payloader",
       "Codec/Payloader/Network", "Payload SBC audio as RTP packets",
@@ -347,7 +364,7 @@
 {
   self->adapter = gst_adapter_new ();
   self->frame_length = 0;
-  self->timestamp = 0;
+  self->last_timestamp = GST_CLOCK_TIME_NONE;
 
   self->min_frames = DEFAULT_MIN_FRAMES;
 }
diff --git a/gst/rtp/gstrtpsbcpay.h b/gst/rtp/gstrtpsbcpay.h
index 42cf02e..76ee66d 100644
--- a/gst/rtp/gstrtpsbcpay.h
+++ b/gst/rtp/gstrtpsbcpay.h
@@ -46,9 +46,10 @@
 	GstRTPBasePayload base;
 
 	GstAdapter *adapter;
-	GstClockTime timestamp;
+	GstClockTime last_timestamp;
 
 	guint frame_length;
+        GstClockTime frame_duration;
 
 	guint min_frames;
 };
diff --git a/gst/rtp/gstrtpsirendepay.c b/gst/rtp/gstrtpsirendepay.c
index d5e95eb..15b7109 100644
--- a/gst/rtp/gstrtpsirendepay.c
+++ b/gst/rtp/gstrtpsirendepay.c
@@ -67,10 +67,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_siren_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_siren_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_siren_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_siren_depay_sink_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Siren packet depayloader", "Codec/Depayloader/Network/RTP",
       "Extracts Siren audio from RTP packets",
diff --git a/gst/rtp/gstrtpsirenpay.c b/gst/rtp/gstrtpsirenpay.c
index 2277fec..04f9aa8 100644
--- a/gst/rtp/gstrtpsirenpay.c
+++ b/gst/rtp/gstrtpsirenpay.c
@@ -65,10 +65,10 @@
 
   gstrtpbasepayload_class->set_caps = gst_rtp_siren_pay_setcaps;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_siren_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_siren_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_siren_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_siren_pay_src_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Payloader for Siren Audio", "Codec/Payloader/Network/RTP",
       "Packetize Siren audio streams into RTP packets",
diff --git a/gst/rtp/gstrtpspeexdepay.c b/gst/rtp/gstrtpspeexdepay.c
index eb9d8e4..b6577e5 100644
--- a/gst/rtp/gstrtpspeexdepay.c
+++ b/gst/rtp/gstrtpspeexdepay.c
@@ -79,10 +79,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_speex_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_speex_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_speex_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_speex_depay_sink_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Speex depayloader", "Codec/Depayloader/Network/RTP",
       "Extracts Speex audio from RTP packets",
diff --git a/gst/rtp/gstrtpspeexpay.c b/gst/rtp/gstrtpspeexpay.c
index 4ba86ba..8a64a02 100644
--- a/gst/rtp/gstrtpspeexpay.c
+++ b/gst/rtp/gstrtpspeexpay.c
@@ -80,10 +80,10 @@
   gstrtpbasepayload_class->get_caps = gst_rtp_speex_pay_getcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_speex_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_speex_pay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_speex_pay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_speex_pay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_speex_pay_src_template);
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Speex payloader", "Codec/Payloader/Network/RTP",
       "Payload-encodes Speex audio into a RTP packet",
diff --git a/gst/rtp/gstrtpstreamdepay.c b/gst/rtp/gstrtpstreamdepay.c
index 699b15c..34500e9 100644
--- a/gst/rtp/gstrtpstreamdepay.c
+++ b/gst/rtp/gstrtpstreamdepay.c
@@ -76,10 +76,8 @@
   GST_DEBUG_CATEGORY_INIT (gst_rtp_stream_depay_debug, "rtpstreamdepay", 0,
       "RTP stream depayloader");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Stream Depayloading", "Codec/Depayloader/Network",
diff --git a/gst/rtp/gstrtpstreampay.c b/gst/rtp/gstrtpstreampay.c
index 117f678..87848c4 100644
--- a/gst/rtp/gstrtpstreampay.c
+++ b/gst/rtp/gstrtpstreampay.c
@@ -80,10 +80,8 @@
       "Payloads RTP/RTCP packets for streaming protocols according to RFC4571",
       "Sebastian Dröge <sebastian@centricular.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 }
 
 static void
diff --git a/gst/rtp/gstrtpsv3vdepay.c b/gst/rtp/gstrtpsv3vdepay.c
index 7900dec..932eb1e 100644
--- a/gst/rtp/gstrtpsv3vdepay.c
+++ b/gst/rtp/gstrtpsv3vdepay.c
@@ -80,10 +80,10 @@
 
   gstelement_class->change_state = gst_rtp_sv3v_depay_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_sv3v_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_sv3v_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_sv3v_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_sv3v_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP SVQ3 depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtptheoradepay.c b/gst/rtp/gstrtptheoradepay.c
index 0a9f228..edc50cf 100644
--- a/gst/rtp/gstrtptheoradepay.c
+++ b/gst/rtp/gstrtptheoradepay.c
@@ -96,10 +96,10 @@
   gstrtpbasedepayload_class->set_caps = gst_rtp_theora_depay_setcaps;
   gstrtpbasedepayload_class->packet_lost = gst_rtp_theora_depay_packet_lost;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_theora_depay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_theora_depay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_theora_depay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_theora_depay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Theora depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtptheorapay.c b/gst/rtp/gstrtptheorapay.c
index c2b4640..b6c5bde 100644
--- a/gst/rtp/gstrtptheorapay.c
+++ b/gst/rtp/gstrtptheorapay.c
@@ -119,10 +119,10 @@
   gobject_class->set_property = gst_rtp_theora_pay_set_property;
   gobject_class->get_property = gst_rtp_theora_pay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_theora_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_theora_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_theora_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_theora_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Theora payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpvorbisdepay.c b/gst/rtp/gstrtpvorbisdepay.c
index bd2f78f..762750a 100644
--- a/gst/rtp/gstrtpvorbisdepay.c
+++ b/gst/rtp/gstrtpvorbisdepay.c
@@ -90,10 +90,10 @@
   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,
-      gst_static_pad_template_get (&gst_rtp_vorbis_depay_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vorbis_depay_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vorbis_depay_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vorbis_depay_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Vorbis depayloader", "Codec/Depayloader/Network/RTP",
@@ -612,20 +612,12 @@
   {
     GST_ELEMENT_WARNING (rtpvorbisdepay, STREAM, DECODE,
         (NULL), ("Could not switch codebooks"));
-    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));
-    if (payload_buffer) {
-      gst_buffer_unmap (payload_buffer, &map);
-      gst_buffer_unref (payload_buffer);
-    }
     return NULL;
   }
 ignore_reserved:
diff --git a/gst/rtp/gstrtpvorbispay.c b/gst/rtp/gstrtpvorbispay.c
index 2557bb5..1a698c0 100644
--- a/gst/rtp/gstrtpvorbispay.c
+++ b/gst/rtp/gstrtpvorbispay.c
@@ -110,10 +110,10 @@
   gobject_class->set_property = gst_rtp_vorbis_pay_set_property;
   gobject_class->get_property = gst_rtp_vorbis_pay_get_property;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vorbis_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vorbis_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vorbis_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vorbis_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Vorbis payloader",
diff --git a/gst/rtp/gstrtpvp8depay.c b/gst/rtp/gstrtpvp8depay.c
index 4357a5f..9fb631a 100644
--- a/gst/rtp/gstrtpvp8depay.c
+++ b/gst/rtp/gstrtpvp8depay.c
@@ -73,10 +73,10 @@
       (GstRTPBaseDepayloadClass *) (gst_rtp_vp8_depay_class);
 
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp8_depay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp8_depay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp8_depay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp8_depay_src_template);
 
   gst_element_class_set_static_metadata (element_class, "RTP VP8 depayloader",
       "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpvp8pay.c b/gst/rtp/gstrtpvp8pay.c
index d7576ab..c5494d0 100644
--- a/gst/rtp/gstrtpvp8pay.c
+++ b/gst/rtp/gstrtpvp8pay.c
@@ -119,10 +119,10 @@
           GST_TYPE_RTP_VP8_PAY_PICTURE_ID_MODE, DEFAULT_PICTURE_ID_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp8_pay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp8_pay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp8_pay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp8_pay_src_template);
 
   gst_element_class_set_static_metadata (element_class, "RTP VP8 payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpvp9depay.c b/gst/rtp/gstrtpvp9depay.c
index 8624192..ad1b220 100644
--- a/gst/rtp/gstrtpvp9depay.c
+++ b/gst/rtp/gstrtpvp9depay.c
@@ -74,10 +74,10 @@
       (GstRTPBaseDepayloadClass *) (gst_rtp_vp9_depay_class);
 
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp9_depay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp9_depay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp9_depay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp9_depay_src_template);
 
   gst_element_class_set_static_metadata (element_class, "RTP VP9 depayloader",
       "Codec/Depayloader/Network/RTP",
@@ -165,9 +165,6 @@
     }
   }
 
-  /* flexible-mode not implemented */
-  g_assert (!f_bit);
-
   /* Check L optional header layer indices */
   if (l_bit) {
     hdrsize++;
@@ -176,6 +173,24 @@
       hdrsize++;
   }
 
+  if (p_bit && f_bit) {
+    /* At least one P_DIFF|N, up to three times */
+    for (gint i = 0; i < 3; i++) {
+      guint p_diff, n_bit;
+
+      if (G_UNLIKELY (size < hdrsize + 1))
+        goto too_small;
+
+      p_diff = data[hdrsize] >> 1;
+      n_bit = data[hdrsize] & 0x1;
+      GST_TRACE_OBJECT (self, "P_DIFF[%d]=%d", i, p_diff);
+      hdrsize++;
+
+      if (!n_bit)
+        break;
+    }
+  }
+
   /* Check V optional Scalability Structure */
   if (v_bit) {
     guint n_s, y_bit, g_bit;
@@ -247,7 +262,6 @@
     GstBuffer *out;
     gboolean key_frame_first_layer = !p_bit && spatial_layer == 0;
 
-
     if (gst_adapter_available (self->adapter) < 10)
       goto too_small;
 
diff --git a/gst/rtp/gstrtpvp9pay.c b/gst/rtp/gstrtpvp9pay.c
index 9f80fe5..945affb 100644
--- a/gst/rtp/gstrtpvp9pay.c
+++ b/gst/rtp/gstrtpvp9pay.c
@@ -120,10 +120,10 @@
           GST_TYPE_RTP_VP9_PAY_PICTURE_ID_MODE, DEFAULT_PICTURE_ID_MODE,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp9_pay_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_rtp_vp9_pay_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp9_pay_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_rtp_vp9_pay_src_template);
 
   gst_element_class_set_static_metadata (element_class, "RTP VP9 payloader",
       "Codec/Payloader/Network/RTP",
diff --git a/gst/rtp/gstrtpvrawdepay.c b/gst/rtp/gstrtpvrawdepay.c
index b5e6dfd..28848fb 100644
--- a/gst/rtp/gstrtpvrawdepay.c
+++ b/gst/rtp/gstrtpvrawdepay.c
@@ -88,10 +88,10 @@
       gst_rtp_vraw_depay_process_packet;
   gstrtpbasedepayload_class->handle_event = gst_rtp_vraw_depay_handle_event;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vraw_depay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vraw_depay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vraw_depay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vraw_depay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Raw Video depayloader", "Codec/Depayloader/Network/RTP",
diff --git a/gst/rtp/gstrtpvrawpay.c b/gst/rtp/gstrtpvrawpay.c
index 0843486..1936743 100644
--- a/gst/rtp/gstrtpvrawpay.c
+++ b/gst/rtp/gstrtpvrawpay.c
@@ -110,10 +110,10 @@
   gstrtpbasepayload_class->set_caps = gst_rtp_vraw_pay_setcaps;
   gstrtpbasepayload_class->handle_buffer = gst_rtp_vraw_pay_handle_buffer;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vraw_pay_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_vraw_pay_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vraw_pay_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_vraw_pay_sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Raw Video payloader", "Codec/Payloader/Network/RTP",
diff --git a/gst/rtpmanager/Makefile.am b/gst/rtpmanager/Makefile.am
index ea593ef..222a8c7 100644
--- a/gst/rtpmanager/Makefile.am
+++ b/gst/rtpmanager/Makefile.am
@@ -35,6 +35,6 @@
 	$(GST_NET_CFLAGS) $(WARNING_CFLAGS) $(ERROR_CFLAGS)
 libgstrtpmanager_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_NET_LIBS) -lgstrtp-@GST_API_VERSION@ \
-	$(GST_BASE_LIBS) $(GST_LIBS_LIBS)
+	$(GST_BASE_LIBS) $(GST_LIBS)
 libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstrtpmanager_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/rtpmanager/Makefile.in b/gst/rtpmanager/Makefile.in
index 2d27258..b3ab0b4 100644
--- a/gst/rtpmanager/Makefile.in
+++ b/gst/rtpmanager/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -163,7 +164,8 @@
 LTLIBRARIES = $(plugin_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libgstrtpmanager_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1)
 am_libgstrtpmanager_la_OBJECTS = libgstrtpmanager_la-gstrtpmanager.lo \
 	libgstrtpmanager_la-gstrtpbin.lo \
 	libgstrtpmanager_la-gstrtpdtmfmux.lo \
@@ -355,6 +357,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -461,6 +464,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -528,6 +534,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -615,7 +622,7 @@
 
 libgstrtpmanager_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \
 	$(GST_NET_LIBS) -lgstrtp-@GST_API_VERSION@ \
-	$(GST_BASE_LIBS) $(GST_LIBS_LIBS)
+	$(GST_BASE_LIBS) $(GST_LIBS)
 
 libgstrtpmanager_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
 libgstrtpmanager_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
diff --git a/gst/rtpmanager/gstrtpbin.c b/gst/rtpmanager/gstrtpbin.c
index b627757..648adb9 100644
--- a/gst/rtpmanager/gstrtpbin.c
+++ b/gst/rtpmanager/gstrtpbin.c
@@ -298,6 +298,8 @@
 #define DEFAULT_MAX_RTCP_RTP_TIME_DIFF 1000
 #define DEFAULT_MAX_DROPOUT_TIME     60000
 #define DEFAULT_MAX_MISORDER_TIME    2000
+#define DEFAULT_RFC7273_SYNC         FALSE
+#define DEFAULT_MAX_STREAMS          G_MAXUINT
 
 enum
 {
@@ -320,7 +322,9 @@
   PROP_RTCP_SYNC_SEND_TIME,
   PROP_MAX_RTCP_RTP_TIME_DIFF,
   PROP_MAX_DROPOUT_TIME,
-  PROP_MAX_MISORDER_TIME
+  PROP_MAX_MISORDER_TIME,
+  PROP_RFC7273_SYNC,
+  PROP_MAX_STREAMS
 };
 
 #define GST_RTP_BIN_RTCP_SYNC_TYPE (gst_rtp_bin_rtcp_sync_get_type())
@@ -1068,7 +1072,7 @@
 get_current_times (GstRtpBin * bin, GstClockTime * running_time,
     guint64 * ntpnstime)
 {
-  guint64 ntpns;
+  guint64 ntpns = -1;
   GstClock *clock;
   GstClockTime base_time, rt, clock_time;
 
@@ -1581,6 +1585,9 @@
 
   rtpbin = session->bin;
 
+  if (g_slist_length (session->streams) >= rtpbin->max_streams)
+    goto max_streams;
+
   if (!(buffer = gst_element_factory_make ("rtpjitterbuffer", NULL)))
     goto no_jitterbuffer;
 
@@ -1621,6 +1628,7 @@
       rtpbin->max_rtcp_rtp_time_diff, NULL);
   g_object_set (buffer, "max-dropout-time", rtpbin->max_dropout_time,
       "max-misorder-time", rtpbin->max_misorder_time, NULL);
+  g_object_set (buffer, "rfc7273-sync", rtpbin->rfc7273_sync, NULL);
 
   g_signal_emit (rtpbin, gst_rtp_bin_signals[SIGNAL_NEW_JITTERBUFFER], 0,
       buffer, session->id, ssrc);
@@ -1656,6 +1664,12 @@
   return stream;
 
   /* ERRORS */
+max_streams:
+  {
+    GST_WARNING_OBJECT (rtpbin, "stream exeeds maximum (%d)",
+        rtpbin->max_streams);
+    return NULL;
+  }
 no_jitterbuffer:
   {
     g_warning ("rtpbin: could not create rtpjitterbuffer element");
@@ -2314,26 +2328,38 @@
           0, G_MAXUINT, DEFAULT_MAX_MISORDER_TIME,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_RFC7273_SYNC,
+      g_param_spec_boolean ("rfc7273-sync", "Sync on RFC7273 clock",
+          "Synchronize received streams to the RFC7273 clock "
+          "(requires clock and offset to be provided)", DEFAULT_RFC7273_SYNC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
+  g_object_class_install_property (gobject_class, PROP_MAX_STREAMS,
+      g_param_spec_uint ("max-streams", "Max Streams",
+          "The maximum number of streams to create for one session",
+          0, G_MAXUINT, DEFAULT_MAX_STREAMS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_rtp_bin_change_state);
   gstelement_class->request_new_pad =
       GST_DEBUG_FUNCPTR (gst_rtp_bin_request_new_pad);
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_rtp_bin_release_pad);
 
   /* sink pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_recv_rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_recv_rtcp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_send_rtp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_recv_rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_recv_rtcp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_send_rtp_sink_template);
 
   /* src pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_recv_rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_send_rtcp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpbin_send_rtp_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_recv_rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_send_rtcp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpbin_send_rtp_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP Bin",
       "Filter/Network/RTP",
@@ -2383,6 +2409,8 @@
   rtpbin->max_rtcp_rtp_time_diff = DEFAULT_MAX_RTCP_RTP_TIME_DIFF;
   rtpbin->max_dropout_time = DEFAULT_MAX_DROPOUT_TIME;
   rtpbin->max_misorder_time = DEFAULT_MAX_MISORDER_TIME;
+  rtpbin->rfc7273_sync = DEFAULT_RFC7273_SYNC;
+  rtpbin->max_streams = DEFAULT_MAX_STREAMS;
 
   /* some default SDES entries */
   cname = g_strdup_printf ("user%u@host-%x", g_random_int (), g_random_int ());
@@ -2596,9 +2624,17 @@
       GST_RTP_BIN_UNLOCK (rtpbin);
       gst_rtp_bin_propagate_property_to_jitterbuffer (rtpbin,
           "max-misorder-time", value);
-      gst_rtp_bin_propagate_property_to_session (rtpbin, "max-dropout-time",
+      gst_rtp_bin_propagate_property_to_session (rtpbin, "max-misorder-time",
           value);
       break;
+    case PROP_RFC7273_SYNC:
+      rtpbin->rfc7273_sync = g_value_get_boolean (value);
+      gst_rtp_bin_propagate_property_to_jitterbuffer (rtpbin,
+          "rfc7273-sync", value);
+      break;
+    case PROP_MAX_STREAMS:
+      rtpbin->max_streams = g_value_get_uint (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2681,6 +2717,11 @@
     case PROP_MAX_MISORDER_TIME:
       g_value_set_uint (value, rtpbin->max_misorder_time);
       break;
+    case PROP_RFC7273_SYNC:
+      g_value_set_boolean (value, rtpbin->rfc7273_sync);
+      break;
+    case PROP_MAX_STREAMS:
+      g_value_set_uint (value, rtpbin->max_streams);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/gst/rtpmanager/gstrtpbin.h b/gst/rtpmanager/gstrtpbin.h
index 01539d2..fb13a47 100644
--- a/gst/rtpmanager/gstrtpbin.h
+++ b/gst/rtpmanager/gstrtpbin.h
@@ -73,6 +73,8 @@
   gint            max_rtcp_rtp_time_diff;
   guint32         max_dropout_time;
   guint32         max_misorder_time;
+  gboolean        rfc7273_sync;
+  guint           max_streams;
 
   /* a list of session */
   GSList         *sessions;
diff --git a/gst/rtpmanager/gstrtpdtmfmux.c b/gst/rtpmanager/gstrtpdtmfmux.c
index 9a9c5d9..cc6d747 100644
--- a/gst/rtpmanager/gstrtpdtmfmux.c
+++ b/gst/rtpmanager/gstrtpdtmfmux.c
@@ -84,8 +84,8 @@
   gstelement_class = (GstElementClass *) klass;
   gstrtpmux_class = (GstRTPMuxClass *) klass;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&priority_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &priority_sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP muxer",
       "Codec/Muxer",
diff --git a/gst/rtpmanager/gstrtpjitterbuffer.c b/gst/rtpmanager/gstrtpjitterbuffer.c
index e201723..e1c315c 100644
--- a/gst/rtpmanager/gstrtpjitterbuffer.c
+++ b/gst/rtpmanager/gstrtpjitterbuffer.c
@@ -7,6 +7,9 @@
  *  Copyright 2007 Wim Taymans <wim.taymans@gmail.com>
  *  Copyright 2015 Kurento (http://kurento.org/)
  *   @author: Miguel París <mparisdiaz@gmail.com>
+ *  Copyright 2016 Pexip AS
+ *   @author: Havard Graff <havard@pexip.com>
+ *   @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
@@ -100,8 +103,10 @@
 #endif
 
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
 #include <gst/rtp/gstrtpbuffer.h>
+#include <gst/net/net.h>
 
 #include "gstrtpjitterbuffer.h"
 #include "rtpjitterbuffer.h"
@@ -138,9 +143,12 @@
 #define DEFAULT_RTX_MIN_RETRY_TIMEOUT   -1
 #define DEFAULT_RTX_RETRY_PERIOD    -1
 #define DEFAULT_RTX_MAX_RETRIES    -1
+#define DEFAULT_RTX_DEADLINE       -1
+#define DEFAULT_RTX_STATS_TIMEOUT   1000
 #define DEFAULT_MAX_RTCP_RTP_TIME_DIFF 1000
 #define DEFAULT_MAX_DROPOUT_TIME    60000
 #define DEFAULT_MAX_MISORDER_TIME   2000
+#define DEFAULT_RFC7273_SYNC        FALSE
 
 #define DEFAULT_AUTO_RTX_DELAY (20 * GST_MSECOND)
 #define DEFAULT_AUTO_RTX_TIMEOUT (40 * GST_MSECOND)
@@ -163,20 +171,30 @@
   PROP_RTX_MIN_RETRY_TIMEOUT,
   PROP_RTX_RETRY_PERIOD,
   PROP_RTX_MAX_RETRIES,
+  PROP_RTX_DEADLINE,
+  PROP_RTX_STATS_TIMEOUT,
   PROP_STATS,
   PROP_MAX_RTCP_RTP_TIME_DIFF,
   PROP_MAX_DROPOUT_TIME,
-  PROP_MAX_MISORDER_TIME
+  PROP_MAX_MISORDER_TIME,
+  PROP_RFC7273_SYNC
 };
 
-#define JBUF_LOCK(priv)   (g_mutex_lock (&(priv)->jbuf_lock))
+#define JBUF_LOCK(priv)   G_STMT_START {			\
+    GST_TRACE("Locking from thread %p", g_thread_self());	\
+    (g_mutex_lock (&(priv)->jbuf_lock));			\
+    GST_TRACE("Locked from thread %p", g_thread_self());	\
+  } G_STMT_END
 
 #define JBUF_LOCK_CHECK(priv,label) G_STMT_START {    \
   JBUF_LOCK (priv);                                   \
   if (G_UNLIKELY (priv->srcresult != GST_FLOW_OK))    \
     goto label;                                       \
 } G_STMT_END
-#define JBUF_UNLOCK(priv) (g_mutex_unlock (&(priv)->jbuf_lock))
+#define JBUF_UNLOCK(priv) G_STMT_START {			\
+    GST_TRACE ("Unlocking from thread %p", g_thread_self ());	\
+    (g_mutex_unlock (&(priv)->jbuf_lock));			\
+} G_STMT_END
 
 #define JBUF_WAIT_TIMER(priv)   G_STMT_START {            \
   GST_DEBUG ("waiting timer");                            \
@@ -225,6 +243,14 @@
   }                                                      \
 } G_STMT_END
 
+#define GST_BUFFER_IS_RETRANSMISSION(buffer) \
+  GST_BUFFER_FLAG_IS_SET (buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION)
+
+typedef struct TimerQueue
+{
+  GQueue *timers;
+  GHashTable *hashtable;
+} TimerQueue;
 
 struct _GstRtpJitterBufferPrivate
 {
@@ -263,6 +289,8 @@
   gint rtx_min_retry_timeout;
   gint rtx_retry_period;
   gint rtx_max_retries;
+  guint rtx_stats_timeout;
+  gint rtx_deadline_ms;
   gint max_rtcp_rtp_time_diff;
   guint32 max_dropout_time;
   guint32 max_misorder_time;
@@ -279,6 +307,7 @@
   GstClockTime ips_dts;
   guint64 ips_rtptime;
   GstClockTime packet_spacing;
+  gint equidistant;
 
   GQueue gap_packets;
 
@@ -287,6 +316,7 @@
   guint32 next_in_seqnum;
 
   GArray *timers;
+  TimerQueue *rtx_stats_timers;
 
   /* start and stop ranges */
   GstClockTime npt_start;
@@ -322,6 +352,8 @@
   GstBuffer *last_sr;
 
   /* some accounting */
+  guint64 num_pushed;
+  guint64 num_lost;
   guint64 num_late;
   guint64 num_duplicates;
   guint64 num_rtx_requests;
@@ -358,6 +390,7 @@
   GstClockTime rtx_retry;
   GstClockTime rtx_last;
   guint num_rtx_retry;
+  guint num_rtx_received;
 } TimerData;
 
 #define GST_RTP_JITTER_BUFFER_GET_PRIVATE(o) \
@@ -413,6 +446,8 @@
 static void gst_rtp_jitter_buffer_release_pad (GstElement * element,
     GstPad * pad);
 static GstClock *gst_rtp_jitter_buffer_provide_clock (GstElement * element);
+static gboolean gst_rtp_jitter_buffer_set_clock (GstElement * element,
+    GstClock * clock);
 
 /* pad overrides */
 static GstCaps *gst_rtp_jitter_buffer_getcaps (GstPad * pad, GstCaps * filter);
@@ -457,6 +492,12 @@
 static GstStructure *gst_rtp_jitter_buffer_create_stats (GstRtpJitterBuffer *
     jitterbuffer);
 
+static void update_rtx_stats (GstRtpJitterBuffer * jitterbuffer,
+    TimerData * timer, GstClockTime dts, gboolean success);
+
+static TimerQueue *timer_queue_new (void);
+static void timer_queue_free (TimerQueue * queue);
+
 static void
 gst_rtp_jitter_buffer_class_init (GstRtpJitterBufferClass * klass)
 {
@@ -601,13 +642,15 @@
    * this much packet reordering.
    *
    * When -1 is used, the value will be estimated based on observed packet
-   * reordering.
+   * reordering. When 0 is used packet reordering alone will not cause a
+   * retransmission event (Since 1.10).
    *
    * Since: 1.2
    */
   g_object_class_install_property (gobject_class, PROP_RTX_DELAY_REORDER,
       g_param_spec_int ("rtx-delay-reorder", "RTX Delay Reorder",
-          "Sending retransmission event when this much reordering (-1 automatic)",
+          "Sending retransmission event when this much reordering "
+          "(0 disable, -1 automatic)",
           -1, G_MAXINT, DEFAULT_RTX_DELAY_REORDER,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
   /**
@@ -673,6 +716,35 @@
           "The maximum number of retries to request a retransmission. "
           "(-1 not limited)", -1, G_MAXINT, DEFAULT_RTX_MAX_RETRIES,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstRtpJitterBuffer:rtx-deadline:
+   *
+   * The deadline for a valid RTX request in ms.
+   *
+   * How long the RTX RTCP will be valid for.
+   * When -1 is used, the size of the jitterbuffer will be used.
+   *
+   * Since: 1.10
+   */
+  g_object_class_install_property (gobject_class, PROP_RTX_DEADLINE,
+      g_param_spec_int ("rtx-deadline", "RTX Deadline (ms)",
+          "The deadline for a valid RTX request in milliseconds. "
+          "(-1 automatic)", -1, G_MAXINT, DEFAULT_RTX_DEADLINE,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+/**
+   * GstRtpJitterBuffer::rtx-stats-timeout:
+   *
+   * The time to wait for a retransmitted packet after it has been
+   * considered lost in order to collect RTX statistics.
+   *
+   * Since: 1.10
+   */
+  g_object_class_install_property (gobject_class, PROP_RTX_STATS_TIMEOUT,
+      g_param_spec_uint ("rtx-stats-timeout", "RTX Statistics Timeout",
+          "The time to wait for a retransmitted packet after it has been "
+          "considered lost in order to collect statistics (ms)",
+          0, G_MAXUINT, DEFAULT_RTX_STATS_TIMEOUT,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
   g_object_class_install_property (gobject_class, PROP_MAX_DROPOUT_TIME,
       g_param_spec_uint ("max-dropout-time", "Max dropout time",
@@ -695,6 +767,34 @@
    * <listitem>
    *   <para>
    *   #guint64
+   *   <classname>&quot;num-pushed&quot;</classname>:
+   *   the number of packets pushed out.
+   *   </para>
+   * </listitem>
+   * <listitem>
+   *   <para>
+   *   #guint64
+   *   <classname>&quot;num-lost&quot;</classname>:
+   *   the number of packets considered lost.
+   *   </para>
+   * </listitem>
+   * <listitem>
+   *   <para>
+   *   #guint64
+   *   <classname>&quot;num-late&quot;</classname>:
+   *   the number of packets arriving too late.
+   *   </para>
+   * </listitem>
+   * <listitem>
+   *   <para>
+   *   #guint64
+   *   <classname>&quot;num-duplicates&quot;</classname>:
+   *   the number of duplicate packets.
+   *   </para>
+   * </listitem>
+   * <listitem>
+   *   <para>
+   *   #guint64
    *   <classname>&quot;rtx-count&quot;</classname>:
    *   the number of retransmissions requested.
    *   </para>
@@ -745,6 +845,12 @@
           DEFAULT_MAX_RTCP_RTP_TIME_DIFF,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_RFC7273_SYNC,
+      g_param_spec_boolean ("rfc7273-sync", "Sync on RFC7273 clock",
+          "Synchronize received streams to the RFC7273 clock "
+          "(requires clock and offset to be provided)", DEFAULT_RFC7273_SYNC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRtpJitterBuffer::request-pt-map:
    * @buffer: the object which received the signal
@@ -820,13 +926,15 @@
       GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_release_pad);
   gstelement_class->provide_clock =
       GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_provide_clock);
+  gstelement_class->set_clock =
+      GST_DEBUG_FUNCPTR (gst_rtp_jitter_buffer_set_clock);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jitter_buffer_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jitter_buffer_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_jitter_buffer_sink_rtcp_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jitter_buffer_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jitter_buffer_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_jitter_buffer_sink_rtcp_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP packet jitter-buffer", "Filter/Network/RTP",
@@ -862,6 +970,8 @@
   priv->rtx_min_retry_timeout = DEFAULT_RTX_MIN_RETRY_TIMEOUT;
   priv->rtx_retry_period = DEFAULT_RTX_RETRY_PERIOD;
   priv->rtx_max_retries = DEFAULT_RTX_MAX_RETRIES;
+  priv->rtx_deadline_ms = DEFAULT_RTX_DEADLINE;
+  priv->rtx_stats_timeout = DEFAULT_RTX_STATS_TIMEOUT;
   priv->max_rtcp_rtp_time_diff = DEFAULT_MAX_RTCP_RTP_TIME_DIFF;
   priv->max_dropout_time = DEFAULT_MAX_DROPOUT_TIME;
   priv->max_misorder_time = DEFAULT_MAX_MISORDER_TIME;
@@ -870,12 +980,14 @@
   priv->last_rtptime = -1;
   priv->avg_jitter = 0;
   priv->timers = g_array_new (FALSE, TRUE, sizeof (TimerData));
+  priv->rtx_stats_timers = timer_queue_new ();
   priv->jbuf = rtp_jitter_buffer_new ();
   g_mutex_init (&priv->jbuf_lock);
   g_cond_init (&priv->jbuf_timer);
   g_cond_init (&priv->jbuf_event);
   g_cond_init (&priv->jbuf_query);
   g_queue_init (&priv->gap_packets);
+  gst_segment_init (&priv->segment, GST_FORMAT_TIME);
 
   /* reset skew detection initialy */
   rtp_jitter_buffer_reset_skew (priv->jbuf);
@@ -972,6 +1084,7 @@
   priv = jitterbuffer->priv;
 
   g_array_free (priv->timers, TRUE);
+  timer_queue_free (priv->rtx_stats_timers);
   g_mutex_clear (&priv->jbuf_lock);
   g_cond_clear (&priv->jbuf_timer);
   g_cond_clear (&priv->jbuf_event);
@@ -1129,6 +1242,16 @@
   return gst_system_clock_obtain ();
 }
 
+static gboolean
+gst_rtp_jitter_buffer_set_clock (GstElement * element, GstClock * clock)
+{
+  GstRtpJitterBuffer *jitterbuffer = GST_RTP_JITTER_BUFFER (element);
+
+  rtp_jitter_buffer_set_pipeline_clock (jitterbuffer->priv->jbuf, clock);
+
+  return GST_ELEMENT_CLASS (parent_class)->set_clock (element, clock);
+}
+
 static void
 gst_rtp_jitter_buffer_clear_pt_map (GstRtpJitterBuffer * jitterbuffer)
 {
@@ -1234,6 +1357,7 @@
   guint val;
   gint payload = -1;
   GstClockTime tval;
+  const gchar *ts_refclk, *mediaclk;
 
   priv = jitterbuffer->priv;
 
@@ -1266,6 +1390,8 @@
 
   rtp_jitter_buffer_set_clock_rate (priv->jbuf, priv->clock_rate);
 
+  gst_rtp_packet_rate_ctx_reset (&priv->packet_rate_ctx, priv->clock_rate);
+
   /* The clock base is the RTP timestamp corrsponding to the npt-start value. We
    * can use this to track the amount of time elapsed on the sender. */
   if (gst_structure_get_uint (caps_struct, "clock-base", &val))
@@ -1310,6 +1436,75 @@
       "npt start/stop: %" GST_TIME_FORMAT "-%" GST_TIME_FORMAT,
       GST_TIME_ARGS (priv->npt_start), GST_TIME_ARGS (priv->npt_stop));
 
+  if ((ts_refclk = gst_structure_get_string (caps_struct, "a-ts-refclk"))) {
+    GstClock *clock = NULL;
+    guint64 clock_offset = -1;
+
+    GST_DEBUG_OBJECT (jitterbuffer, "Have timestamp reference clock %s",
+        ts_refclk);
+
+    if (g_str_has_prefix (ts_refclk, "ntp=")) {
+      if (g_str_has_prefix (ts_refclk, "ntp=/traceable/")) {
+        GST_FIXME_OBJECT (jitterbuffer, "Can't handle traceable NTP clocks");
+      } else {
+        const gchar *host, *portstr;
+        gchar *hostname;
+        guint port;
+
+        host = ts_refclk + sizeof ("ntp=") - 1;
+        if (host[0] == '[') {
+          /* IPv6 */
+          portstr = strchr (host, ']');
+          if (portstr && portstr[1] == ':')
+            portstr = portstr + 1;
+          else
+            portstr = NULL;
+        } else {
+          portstr = strrchr (host, ':');
+        }
+
+
+        if (!portstr || sscanf (portstr, ":%u", &port) != 1)
+          port = 123;
+
+        if (portstr)
+          hostname = g_strndup (host, (portstr - host));
+        else
+          hostname = g_strdup (host);
+
+        clock = gst_ntp_clock_new (NULL, hostname, port, 0);
+        g_free (hostname);
+      }
+    } else if (g_str_has_prefix (ts_refclk, "ptp=IEEE1588-2008:")) {
+      const gchar *domainstr =
+          ts_refclk + sizeof ("ptp=IEEE1588-2008:XX-XX-XX-XX-XX-XX-XX-XX") - 1;
+      guint domain;
+
+      if (domainstr[0] != ':' || sscanf (domainstr, ":%u", &domain) != 1)
+        domain = 0;
+
+      clock = gst_ptp_clock_new (NULL, domain);
+    } else {
+      GST_FIXME_OBJECT (jitterbuffer, "Unsupported timestamp reference clock");
+    }
+
+    if ((mediaclk = gst_structure_get_string (caps_struct, "a-mediaclk"))) {
+      GST_DEBUG_OBJECT (jitterbuffer, "Got media clock %s", mediaclk);
+
+      if (!g_str_has_prefix (mediaclk, "direct=")
+          || sscanf (mediaclk, "direct=%" G_GUINT64_FORMAT, &clock_offset) != 1)
+        GST_FIXME_OBJECT (jitterbuffer, "Unsupported media clock");
+      if (strstr (mediaclk, "rate=") != NULL) {
+        GST_FIXME_OBJECT (jitterbuffer, "Rate property not supported");
+        clock_offset = -1;
+      }
+    }
+
+    rtp_jitter_buffer_set_media_clock (priv->jbuf, clock, clock_offset);
+  } else {
+    rtp_jitter_buffer_set_media_clock (priv->jbuf, NULL, -1);
+  }
+
   return TRUE;
 
   /* ERRORS */
@@ -1372,6 +1567,7 @@
   priv->last_dts = -1;
   priv->last_rtptime = -1;
   priv->last_in_dts = 0;
+  priv->equidistant = 0;
   GST_DEBUG_OBJECT (jitterbuffer, "flush and reset jitterbuffer");
   rtp_jitter_buffer_flush (priv->jbuf, (GFunc) free_item, NULL);
   rtp_jitter_buffer_disable_buffering (priv->jbuf, FALSE);
@@ -1559,15 +1755,22 @@
       break;
     }
     case GST_EVENT_SEGMENT:
-      gst_event_copy_segment (event, &priv->segment);
+    {
+      GstSegment segment;
+      gst_event_copy_segment (event, &segment);
 
       /* we need time for now */
-      if (priv->segment.format != GST_FORMAT_TIME)
-        goto newseg_wrong_format;
+      if (segment.format != GST_FORMAT_TIME) {
+        GST_DEBUG_OBJECT (jitterbuffer, "ignoring non-TIME newsegment");
+        gst_event_unref (event);
 
-      GST_DEBUG_OBJECT (jitterbuffer,
-          "segment:  %" GST_SEGMENT_FORMAT, &priv->segment);
+        gst_segment_init (&segment, GST_FORMAT_TIME);
+        event = gst_event_new_segment (&segment);
+      }
+
+      priv->segment = segment;
       break;
+    }
     case GST_EVENT_EOS:
       priv->eos = TRUE;
       rtp_jitter_buffer_disable_buffering (priv->jbuf, TRUE);
@@ -1579,19 +1782,11 @@
 
   GST_DEBUG_OBJECT (jitterbuffer, "adding event");
   item = alloc_item (event, ITEM_TYPE_EVENT, -1, -1, -1, 0, -1);
-  rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL);
+  rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL, -1);
   if (head)
     JBUF_SIGNAL_EVENT (priv);
 
   return TRUE;
-
-  /* ERRORS */
-newseg_wrong_format:
-  {
-    GST_DEBUG_OBJECT (jitterbuffer, "received non TIME newsegment");
-    gst_event_unref (event);
-    return FALSE;
-  }
 }
 
 static gboolean
@@ -1792,8 +1987,70 @@
   return timestamp;
 }
 
+static TimerQueue *
+timer_queue_new (void)
+{
+  TimerQueue *queue;
+
+  queue = g_slice_new (TimerQueue);
+  queue->timers = g_queue_new ();
+  queue->hashtable = g_hash_table_new (NULL, NULL);
+
+  return queue;
+}
+
+static void
+timer_queue_free (TimerQueue * queue)
+{
+  if (!queue)
+    return;
+
+  g_hash_table_destroy (queue->hashtable);
+  g_queue_free_full (queue->timers, g_free);
+  g_slice_free (TimerQueue, queue);
+}
+
+static void
+timer_queue_append (TimerQueue * queue, const TimerData * timer,
+    GstClockTime timeout, gboolean lost)
+{
+  TimerData *copy;
+
+  copy = g_memdup (timer, sizeof (*timer));
+  copy->timeout = timeout;
+  copy->type = lost ? TIMER_TYPE_LOST : TIMER_TYPE_EXPECTED;
+  copy->idx = -1;
+
+  GST_LOG ("Append rtx-stats timer #%d, %" GST_TIME_FORMAT,
+      copy->seqnum, GST_TIME_ARGS (copy->timeout));
+  g_queue_push_tail (queue->timers, copy);
+  g_hash_table_insert (queue->hashtable, GINT_TO_POINTER (copy->seqnum), copy);
+}
+
+static void
+timer_queue_clear_until (TimerQueue * queue, GstClockTime timeout)
+{
+  TimerData *test;
+
+  test = g_queue_peek_head (queue->timers);
+  while (test && test->timeout < timeout) {
+    GST_LOG ("Pop rtx-stats timer #%d, %" GST_TIME_FORMAT " < %"
+        GST_TIME_FORMAT, test->seqnum, GST_TIME_ARGS (test->timeout),
+        GST_TIME_ARGS (timeout));
+    g_hash_table_remove (queue->hashtable, GINT_TO_POINTER (test->seqnum));
+    g_free (g_queue_pop_head (queue->timers));
+    test = g_queue_peek_head (queue->timers);
+  }
+}
+
 static TimerData *
-find_timer (GstRtpJitterBuffer * jitterbuffer, TimerType type, guint16 seqnum)
+timer_queue_find (TimerQueue * queue, guint16 seqnum)
+{
+  return g_hash_table_lookup (queue->hashtable, GINT_TO_POINTER (seqnum));
+}
+
+static TimerData *
+find_timer (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum)
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   TimerData *timer = NULL;
@@ -1802,7 +2059,7 @@
   len = priv->timers->len;
   for (i = 0; i < len; i++) {
     TimerData *test = &g_array_index (priv->timers, TimerData, i);
-    if (test->seqnum == seqnum && test->type == type) {
+    if (test->seqnum == seqnum) {
       timer = test;
       break;
     }
@@ -1883,7 +2140,9 @@
     timer->rtx_delay = delay;
     timer->rtx_retry = 0;
   }
+  timer->rtx_last = GST_CLOCK_TIME_NONE;
   timer->num_rtx_retry = 0;
+  timer->num_rtx_received = 0;
   recalculate_timer (jitterbuffer, timer);
   JBUF_SIGNAL_TIMER (priv);
 
@@ -1907,18 +2166,24 @@
   oldseq = timer->seqnum;
 
   GST_DEBUG_OBJECT (jitterbuffer,
-      "replace timer for seqnum %d->%d to %" GST_TIME_FORMAT,
-      oldseq, seqnum, GST_TIME_ARGS (timeout + delay));
+      "replace timer %d for seqnum %d->%d timeout %" GST_TIME_FORMAT
+      "->%" GST_TIME_FORMAT, timer->type, oldseq, seqnum,
+      GST_TIME_ARGS (timer->timeout), GST_TIME_ARGS (timeout + delay));
 
   timer->timeout = timeout + delay;
   timer->seqnum = seqnum;
   if (reset) {
+    GST_DEBUG_OBJECT (jitterbuffer, "reset rtx delay %" GST_TIME_FORMAT
+        "->%" GST_TIME_FORMAT, GST_TIME_ARGS (timer->rtx_delay),
+        GST_TIME_ARGS (delay));
     timer->rtx_base = timeout;
     timer->rtx_delay = delay;
     timer->rtx_retry = 0;
   }
-  if (seqchange)
+  if (seqchange) {
     timer->num_rtx_retry = 0;
+    timer->num_rtx_received = 0;
+  }
 
   if (priv->clock_id) {
     /* we changed the seqnum and there is a timer currently waiting with this
@@ -1939,7 +2204,7 @@
   TimerData *timer;
 
   /* find the seqnum timer */
-  timer = find_timer (jitterbuffer, type, seqnum);
+  timer = find_timer (jitterbuffer, seqnum);
   if (timer == NULL) {
     timer = add_timer (jitterbuffer, type, seqnum, 0, timeout, 0, -1);
   } else {
@@ -1954,6 +2219,9 @@
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
   guint idx;
 
+  if (timer->idx == -1)
+    return;
+
   if (priv->clock_id && priv->timer_seqnum == timer->seqnum)
     unschedule_current_timer (jitterbuffer);
 
@@ -2031,37 +2299,30 @@
  */
 static void
 update_timers (GstRtpJitterBuffer * jitterbuffer, guint16 seqnum,
-    GstClockTime dts, gboolean do_next_seqnum)
+    GstClockTime dts, gboolean do_next_seqnum, gboolean is_rtx,
+    TimerData * timer)
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
-  TimerData *timer = NULL;
-  gint i, len;
 
-  /* go through all timers and unschedule the ones with a large gap, also find
-   * the timer for the seqnum */
-  len = priv->timers->len;
-  for (i = 0; i < len; i++) {
-    TimerData *test = &g_array_index (priv->timers, TimerData, i);
-    gint gap;
+  /* go through all timers and unschedule the ones with a large gap */
+  if (priv->do_retransmission && priv->rtx_delay_reorder > 0) {
+    gint i, len;
+    len = priv->timers->len;
+    for (i = 0; i < len; i++) {
+      TimerData *test = &g_array_index (priv->timers, TimerData, i);
+      gint gap;
 
-    gap = gst_rtp_buffer_compare_seqnum (test->seqnum, seqnum);
+      gap = gst_rtp_buffer_compare_seqnum (test->seqnum, seqnum);
 
-    GST_DEBUG_OBJECT (jitterbuffer, "%d, %d, #%d<->#%d gap %d", i,
-        test->type, test->seqnum, seqnum, gap);
+      GST_DEBUG_OBJECT (jitterbuffer, "%d, #%d<->#%d gap %d",
+          test->type, test->seqnum, seqnum, gap);
 
-    if (gap == 0) {
-      GST_DEBUG ("found timer for current seqnum");
-      /* the timer for the current seqnum */
-      timer = test;
-      /* when no retransmission, we can stop now, we only need to find the
-       * timer for the current seqnum */
-      if (!priv->do_retransmission)
-        break;
-    } else if (gap > priv->rtx_delay_reorder) {
-      /* max gap, we exceeded the max reorder distance and we don't expect the
-       * missing packet to be this reordered */
-      if (test->num_rtx_retry == 0 && test->type == TIMER_TYPE_EXPECTED)
-        reschedule_timer (jitterbuffer, test, test->seqnum, -1, 0, FALSE);
+      if (gap > priv->rtx_delay_reorder) {
+        /* max gap, we exceeded the max reorder distance and we don't expect the
+         * missing packet to be this reordered */
+        if (test->num_rtx_retry == 0 && test->type == TIMER_TYPE_EXPECTED)
+          reschedule_timer (jitterbuffer, test, test->seqnum, -1, 0, FALSE);
+      }
     }
   }
 
@@ -2070,43 +2331,23 @@
 
   if (timer && timer->type != TIMER_TYPE_DEADLINE) {
     if (timer->num_rtx_retry > 0) {
-      GstClockTime rtx_last, delay;
+      if (is_rtx) {
+        update_rtx_stats (jitterbuffer, timer, dts, TRUE);
+        /* don't try to estimate the next seqnum because this is a retransmitted
+         * packet and it probably did not arrive with the expected packet
+         * spacing. */
+        do_next_seqnum = FALSE;
+      }
 
-      /* we scheduled a retry for this packet and now we have it */
-      priv->num_rtx_success++;
-      /* all the previous retry attempts failed */
-      priv->num_rtx_failed += timer->num_rtx_retry - 1;
-      /* number of retries before receiving the packet */
-      if (priv->avg_rtx_num == 0.0)
-        priv->avg_rtx_num = timer->num_rtx_retry;
-      else
-        priv->avg_rtx_num = (timer->num_rtx_retry + 7 * priv->avg_rtx_num) / 8;
-      /* calculate the delay between retransmission request and receiving this
-       * packet, start with when we scheduled this timeout last */
-      rtx_last = timer->rtx_last;
-      if (dts != GST_CLOCK_TIME_NONE && dts > rtx_last) {
-        /* we have a valid delay if this packet arrived after we scheduled the
-         * request */
-        delay = dts - rtx_last;
-        if (priv->avg_rtx_rtt == 0)
-          priv->avg_rtx_rtt = delay;
-        else
-          priv->avg_rtx_rtt = (delay + 7 * priv->avg_rtx_rtt) / 8;
-      } else
-        delay = 0;
-
-      GST_LOG_OBJECT (jitterbuffer,
-          "RTX success %" G_GUINT64_FORMAT ", failed %" G_GUINT64_FORMAT
-          ", requests %" G_GUINT64_FORMAT ", dups %" G_GUINT64_FORMAT
-          ", avg-num %g, delay %" GST_TIME_FORMAT ", avg-rtt %" GST_TIME_FORMAT,
-          priv->num_rtx_success, priv->num_rtx_failed, priv->num_rtx_requests,
-          priv->num_duplicates, priv->avg_rtx_num, GST_TIME_ARGS (delay),
-          GST_TIME_ARGS (priv->avg_rtx_rtt));
-
-      /* don't try to estimate the next seqnum because this is a retransmitted
-       * packet and it probably did not arrive with the expected packet
-       * spacing. */
-      do_next_seqnum = FALSE;
+      if (!is_rtx || timer->num_rtx_retry > 1) {
+        /* Store timer in order to record stats when/if the retransmitted
+         * packet arrives. We should also store timer information if we've
+         * requested retransmission more than once since we may receive
+         * several retransmitted packets. For accuracy we should update the
+         * stats also when the redundant retransmitted packets arrives. */
+        timer_queue_append (priv->rtx_stats_timers, timer,
+            dts + priv->rtx_stats_timeout * GST_MSECOND, FALSE);
+      }
     }
   }
 
@@ -2119,6 +2360,12 @@
     delay = get_rtx_delay (priv);
 
     /* and update/install timer for next seqnum */
+    GST_DEBUG_OBJECT (jitterbuffer, "Add RTX timer #%d, expected %"
+        GST_TIME_FORMAT ", delay %" GST_TIME_FORMAT ", packet-spacing %"
+        GST_TIME_FORMAT ", jitter %" GST_TIME_FORMAT, priv->next_in_seqnum,
+        GST_TIME_ARGS (expected), GST_TIME_ARGS (delay),
+        GST_TIME_ARGS (priv->packet_spacing), GST_TIME_ARGS (priv->avg_jitter));
+
     if (timer) {
       reschedule_timer (jitterbuffer, timer, priv->next_in_seqnum, expected,
           delay, TRUE);
@@ -2178,8 +2425,9 @@
     guint16 seqnum, GstClockTime dts, gint gap)
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
-  GstClockTime total_duration, duration, expected_dts;
+  GstClockTime duration, expected_dts, delay;
   TimerType type;
+  gboolean equidistant = priv->equidistant > 0;
 
   GST_DEBUG_OBJECT (jitterbuffer,
       "dts %" GST_TIME_FORMAT ", last %" GST_TIME_FORMAT,
@@ -2190,68 +2438,80 @@
     return;
   }
 
-  /* the total duration spanned by the missing packets */
-  if (dts >= priv->last_in_dts)
-    total_duration = dts - priv->last_in_dts;
-  else
-    total_duration = 0;
+  if (equidistant) {
+    GstClockTime total_duration;
+    /* the total duration spanned by the missing packets */
+    if (dts >= priv->last_in_dts)
+      total_duration = dts - priv->last_in_dts;
+    else
+      total_duration = 0;
 
-  /* interpolate between the current time and the last time based on
-   * number of packets we are missing, this is the estimated duration
-   * for the missing packet based on equidistant packet spacing. */
-  duration = total_duration / (gap + 1);
+    /* interpolate between the current time and the last time based on
+     * number of packets we are missing, this is the estimated duration
+     * for the missing packet based on equidistant packet spacing. */
+    duration = total_duration / (gap + 1);
 
-  GST_DEBUG_OBJECT (jitterbuffer, "duration %" GST_TIME_FORMAT,
-      GST_TIME_ARGS (duration));
+    GST_DEBUG_OBJECT (jitterbuffer, "duration %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (duration));
 
-  if (total_duration > priv->latency_ns) {
-    GstClockTime gap_time;
-    guint lost_packets;
+    if (total_duration > priv->latency_ns) {
+      GstClockTime gap_time;
+      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;
-    } else {
-      gap_time = total_duration - priv->latency_ns;
-      lost_packets = gap;
+      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;
+      } 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_INFO_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 - 1, 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 */
+      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;
+      }
     }
 
-    /* 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,
-        "lost packets (%d, #%d->#%d) duration too large %" GST_TIME_FORMAT
-        " > %" GST_TIME_FORMAT ", consider %u lost (%" GST_TIME_FORMAT ")",
-        gap, expected, seqnum - 1, 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 */
-    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 + duration;
+  } else {
+    /* If we cannot assume equidistant packet spacing, the only thing we now
+     * for sure is that the missing packets have expected dts not later than
+     * the last received dts. */
+    duration = 0;
+    expected_dts = dts;
   }
 
-  expected_dts = priv->last_in_dts + duration;
+  delay = 0;
 
   if (priv->do_retransmission) {
-    TimerData *timer;
+    TimerData *timer = find_timer (jitterbuffer, expected);
 
     type = TIMER_TYPE_EXPECTED;
+    delay = get_rtx_delay (priv);
+
     /* if we had a timer for the first missing packet, update it. */
-    if ((timer = find_timer (jitterbuffer, type, expected))) {
+    if (timer && timer->type == TIMER_TYPE_EXPECTED) {
       GstClockTime timeout = timer->timeout;
 
       timer->duration = duration;
-      if (timeout > (expected_dts + timer->rtx_retry)) {
-        GstClockTime delay = timeout - expected_dts - timer->rtx_retry;
+      if (timeout > (expected_dts + delay) && timer->num_rtx_retry == 0) {
         reschedule_timer (jitterbuffer, timer, timer->seqnum, expected_dts,
             delay, TRUE);
       }
@@ -2263,7 +2523,7 @@
   }
 
   while (gst_rtp_buffer_compare_seqnum (expected, seqnum) > 0) {
-    add_timer (jitterbuffer, type, expected, 0, expected_dts, 0, duration);
+    add_timer (jitterbuffer, type, expected, 0, expected_dts, delay, duration);
     expected_dts += duration;
     expected++;
   }
@@ -2271,7 +2531,7 @@
 
 static void
 calculate_jitter (GstRtpJitterBuffer * jitterbuffer, GstClockTime dts,
-    guint rtptime)
+    guint32 rtptime)
 {
   gint32 rtpdiff;
   GstClockTimeDiff dtsdiff, rtpdiffns, diff;
@@ -2292,6 +2552,15 @@
   else
     rtpdiff = 0;
 
+  /* Guess whether stream currently uses equidistant packet spacing. If we
+   * often see identical timestamps it means the packets are not
+   * equidistant. */
+  if (rtptime == priv->last_rtptime)
+    priv->equidistant -= 2;
+  else
+    priv->equidistant += 1;
+  priv->equidistant = CLAMP (priv->equidistant, -7, 7);
+
   priv->last_dts = dts;
   priv->last_rtptime = rtptime;
 
@@ -2457,6 +2726,7 @@
   GstMessage *msg = NULL;
   gboolean estimated_dts = FALSE;
   guint32 packet_rate, max_dropout, max_misorder;
+  TimerData *timer = NULL;
 
   jitterbuffer = GST_RTP_JITTER_BUFFER_CAST (parent);
 
@@ -2500,8 +2770,9 @@
   }
 
   GST_DEBUG_OBJECT (jitterbuffer,
-      "Received packet #%d at time %" GST_TIME_FORMAT ", discont %d", seqnum,
-      GST_TIME_ARGS (dts), GST_BUFFER_IS_DISCONT (buffer));
+      "Received packet #%d at time %" GST_TIME_FORMAT ", discont %d, rtx %d",
+      seqnum, GST_TIME_ARGS (dts), GST_BUFFER_IS_DISCONT (buffer),
+      GST_BUFFER_IS_RETRANSMISSION (buffer));
 
   JBUF_LOCK_CHECK (priv, out_flushing);
 
@@ -2531,13 +2802,16 @@
 
     if (G_UNLIKELY (priv->clock_rate == -1))
       goto no_clock_rate;
+
+    gst_rtp_packet_rate_ctx_reset (&priv->packet_rate_ctx, priv->clock_rate);
   }
 
   /* don't accept more data on EOS */
   if (G_UNLIKELY (priv->eos))
     goto have_eos;
 
-  calculate_jitter (jitterbuffer, dts, rtptime);
+  if (!GST_BUFFER_IS_RETRANSMISSION (buffer))
+    calculate_jitter (jitterbuffer, dts, rtptime);
 
   if (priv->seqnum_base != -1) {
     gint gap;
@@ -2662,7 +2936,7 @@
           RTPJitterBufferItem *item;
 
           item = alloc_item (l->data, ITEM_TYPE_EVENT, -1, -1, -1, 0, -1);
-          rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL);
+          rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL, -1);
         }
         g_list_free (events);
 
@@ -2682,8 +2956,10 @@
         for (l = buffers; l; l = l->next) {
           ret = gst_rtp_jitter_buffer_chain (pad, parent, l->data);
           l->data = NULL;
-          if (ret != GST_FLOW_OK)
+          if (ret != GST_FLOW_OK) {
+            l = l->next;
             break;
+          }
         }
         for (; l; l = l->next)
           gst_buffer_unref (l->data);
@@ -2725,6 +3001,14 @@
     priv->next_in_seqnum = (seqnum + 1) & 0xffff;
   }
 
+  timer = find_timer (jitterbuffer, seqnum);
+  if (GST_BUFFER_IS_RETRANSMISSION (buffer)) {
+    if (!timer)
+      timer = timer_queue_find (priv->rtx_stats_timers, seqnum);
+    if (timer)
+      timer->num_rtx_received++;
+  }
+
   /* let's check if this buffer is too late, we can only accept packets with
    * bigger seqnum than the one we last pushed. */
   if (G_LIKELY (priv->last_popped_seqnum != -1)) {
@@ -2733,8 +3017,19 @@
     gap = gst_rtp_buffer_compare_seqnum (priv->last_popped_seqnum, seqnum);
 
     /* priv->last_popped_seqnum >= seqnum, we're too late. */
-    if (G_UNLIKELY (gap <= 0))
+    if (G_UNLIKELY (gap <= 0)) {
+      if (priv->do_retransmission) {
+        if (GST_BUFFER_IS_RETRANSMISSION (buffer) && timer) {
+          update_rtx_stats (jitterbuffer, timer, dts, FALSE);
+          /* Only count the retranmitted packet too late if it has been
+           * considered lost. If the original packet arrived before the
+           * retransmitted we just count it as a duplicate. */
+          if (timer->type != TIMER_TYPE_LOST)
+            goto rtx_duplicate;
+        }
+      }
       goto too_late;
+    }
   }
 
   if (already_lost (jitterbuffer, seqnum))
@@ -2757,7 +3052,7 @@
         old_item = rtp_jitter_buffer_pop (priv->jbuf, &percent);
         GST_DEBUG_OBJECT (jitterbuffer, "Queue full, dropping old packet %p",
             old_item);
-        priv->next_seqnum = (old_item->seqnum + 1) & 0xffff;
+        priv->next_seqnum = (old_item->seqnum + old_item->count) & 0xffff;
         free_item (old_item);
       }
       /* we might have removed some head buffers, signal the pushing thread to
@@ -2781,11 +3076,16 @@
    * FALSE if a packet with the same seqnum was already in the queue, meaning we
    * have a duplicate. */
   if (G_UNLIKELY (!rtp_jitter_buffer_insert (priv->jbuf, item,
-              &head, &percent)))
+              &head, &percent,
+              gst_element_get_base_time (GST_ELEMENT_CAST (jitterbuffer))))) {
+    if (GST_BUFFER_IS_RETRANSMISSION (buffer) && timer)
+      update_rtx_stats (jitterbuffer, timer, dts, FALSE);
     goto duplicate;
+  }
 
   /* update timers */
-  update_timers (jitterbuffer, seqnum, dts, do_next_seqnum);
+  update_timers (jitterbuffer, seqnum, dts, do_next_seqnum,
+      GST_BUFFER_IS_RETRANSMISSION (buffer), timer);
 
   /* we had an unhandled SR, handle it now */
   if (priv->last_sr)
@@ -2872,6 +3172,14 @@
     free_item (item);
     goto finished;
   }
+rtx_duplicate:
+  {
+    GST_DEBUG_OBJECT (jitterbuffer,
+        "Duplicate RTX packet #%d detected, dropping", seqnum);
+    priv->num_duplicates++;
+    gst_buffer_unref (buffer);
+    goto finished;
+  }
 }
 
 static GstClockTime
@@ -3055,6 +3363,7 @@
           "Pushing buffer %d, dts %" GST_TIME_FORMAT ", pts %" GST_TIME_FORMAT,
           seqnum, GST_TIME_ARGS (GST_BUFFER_DTS (outbuf)),
           GST_TIME_ARGS (GST_BUFFER_PTS (outbuf)));
+      priv->num_pushed++;
       result = gst_pad_push (priv->srcpad, outbuf);
 
       JBUF_LOCK_CHECK (priv, out_flushing);
@@ -3063,7 +3372,7 @@
     case ITEM_TYPE_EVENT:
       /* We got not enough consecutive packets with a huge gap, we can
        * as well just drop them here now on EOS */
-      if (GST_EVENT_TYPE (outevent) == GST_EVENT_EOS) {
+      if (outevent && GST_EVENT_TYPE (outevent) == GST_EVENT_EOS) {
         GST_DEBUG_OBJECT (jitterbuffer, "Clearing gap packets on EOS");
         g_queue_foreach (&priv->gap_packets, (GFunc) gst_buffer_unref, NULL);
         g_queue_clear (&priv->gap_packets);
@@ -3074,7 +3383,7 @@
 
       if (do_push)
         gst_pad_push_event (priv->srcpad, outevent);
-      else
+      else if (outevent)
         gst_event_unref (outevent);
 
       result = GST_FLOW_OK;
@@ -3234,6 +3543,78 @@
   return rtx_retry_period;
 }
 
+/*
+  1. For *larger* rtx-rtt, weigh a new measurement as before (1/8th)
+  2. For *smaller* rtx-rtt, be a bit more conservative and weigh a bit less (1/16th)
+  3. For very large measurements (> avg * 2), consider them "outliers"
+     and count them a lot less (1/48th)
+*/
+static void
+update_avg_rtx_rtt (GstRtpJitterBufferPrivate * priv, GstClockTime rtt)
+{
+  gint weight;
+
+  if (priv->avg_rtx_rtt == 0) {
+    priv->avg_rtx_rtt = rtt;
+    return;
+  }
+
+  if (rtt > 2 * priv->avg_rtx_rtt)
+    weight = 48;
+  else if (rtt > priv->avg_rtx_rtt)
+    weight = 8;
+  else
+    weight = 16;
+
+  priv->avg_rtx_rtt = (rtt + (weight - 1) * priv->avg_rtx_rtt) / weight;
+}
+
+static void
+update_rtx_stats (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
+    GstClockTime dts, gboolean success)
+{
+  GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
+  GstClockTime delay;
+
+  if (success) {
+    /* we scheduled a retry for this packet and now we have it */
+    priv->num_rtx_success++;
+    /* all the previous retry attempts failed */
+    priv->num_rtx_failed += timer->num_rtx_retry - 1;
+  } else {
+    /* All retries failed or was too late */
+    priv->num_rtx_failed += timer->num_rtx_retry;
+  }
+
+  /* number of retries before (hopefully) receiving the packet */
+  if (priv->avg_rtx_num == 0.0)
+    priv->avg_rtx_num = timer->num_rtx_retry;
+  else
+    priv->avg_rtx_num = (timer->num_rtx_retry + 7 * priv->avg_rtx_num) / 8;
+
+  /* Calculate the delay between retransmission request and receiving this
+   * packet. We have a valid delay if and only if this packet is a response to
+   * our last request. If not we don't know if this is a response to an
+   * earlier request and delay could be way off. For RTT is more important
+   * with correct values than to update for every packet. */
+  if (timer->num_rtx_retry == timer->num_rtx_received &&
+      dts != GST_CLOCK_TIME_NONE && dts > timer->rtx_last) {
+    delay = dts - timer->rtx_last;
+    update_avg_rtx_rtt (priv, delay);
+  } else {
+    delay = 0;
+  }
+
+  GST_LOG_OBJECT (jitterbuffer,
+      "RTX #%d, result %d, success %" G_GUINT64_FORMAT ", failed %"
+      G_GUINT64_FORMAT ", requests %" G_GUINT64_FORMAT ", dups %"
+      G_GUINT64_FORMAT ", avg-num %g, delay %" GST_TIME_FORMAT ", avg-rtt %"
+      GST_TIME_FORMAT, timer->seqnum, success, priv->num_rtx_success,
+      priv->num_rtx_failed, priv->num_rtx_requests, priv->num_duplicates,
+      priv->avg_rtx_num, GST_TIME_ARGS (delay),
+      GST_TIME_ARGS (priv->avg_rtx_rtt));
+}
+
 /* the timeout for when we expected a packet expired */
 static gboolean
 do_expected_timeout (GstRtpJitterBuffer * jitterbuffer, TimerData * timer,
@@ -3243,6 +3624,7 @@
   GstEvent *event;
   guint delay, delay_ms, avg_rtx_rtt_ms;
   guint rtx_retry_timeout_ms, rtx_retry_period_ms;
+  guint rtx_deadline_ms;
   GstClockTime rtx_retry_period;
   GstClockTime rtx_retry_timeout;
   GstClock *clock;
@@ -3253,16 +3635,14 @@
   rtx_retry_timeout = get_rtx_retry_timeout (priv);
   rtx_retry_period = get_rtx_retry_period (priv, rtx_retry_timeout);
 
-  GST_DEBUG_OBJECT (jitterbuffer, "timeout %" GST_TIME_FORMAT ", period %"
-      GST_TIME_FORMAT, GST_TIME_ARGS (rtx_retry_timeout),
-      GST_TIME_ARGS (rtx_retry_period));
-
   delay = timer->rtx_delay + timer->rtx_retry;
 
   delay_ms = GST_TIME_AS_MSECONDS (delay);
   rtx_retry_timeout_ms = GST_TIME_AS_MSECONDS (rtx_retry_timeout);
   rtx_retry_period_ms = GST_TIME_AS_MSECONDS (rtx_retry_period);
   avg_rtx_rtt_ms = GST_TIME_AS_MSECONDS (priv->avg_rtx_rtt);
+  rtx_deadline_ms =
+      priv->rtx_deadline_ms != -1 ? priv->rtx_deadline_ms : priv->latency_ms;
 
   event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
       gst_structure_new ("GstRTPRetransmissionRequest",
@@ -3272,9 +3652,10 @@
           "retry", G_TYPE_UINT, timer->num_rtx_retry,
           "frequency", G_TYPE_UINT, rtx_retry_timeout_ms,
           "period", G_TYPE_UINT, rtx_retry_period_ms,
-          "deadline", G_TYPE_UINT, priv->latency_ms,
+          "deadline", G_TYPE_UINT, rtx_deadline_ms,
           "packet-spacing", G_TYPE_UINT64, priv->packet_spacing,
           "avg-rtt", G_TYPE_UINT, avg_rtx_rtt_ms, NULL));
+  GST_DEBUG_OBJECT (jitterbuffer, "Request RTX: %" GST_PTR_FORMAT, event);
 
   priv->num_rtx_requests++;
   timer->num_rtx_retry++;
@@ -3296,7 +3677,8 @@
       GST_TIME_ARGS (timer->rtx_retry), timer->num_rtx_retry);
   if ((priv->rtx_max_retries != -1
           && timer->num_rtx_retry >= priv->rtx_max_retries)
-      || (timer->rtx_retry + timer->rtx_delay > rtx_retry_period)) {
+      || (timer->rtx_retry + timer->rtx_delay > rtx_retry_period)
+      || (timer->rtx_base + rtx_retry_period < now)) {
     GST_DEBUG_OBJECT (jitterbuffer, "reschedule as LOST timer");
     /* too many retransmission request, we now convert the timer
      * to a lost timer, leave the num_rtx_retry as it is for stats */
@@ -3320,17 +3702,12 @@
     GstClockTime now)
 {
   GstRtpJitterBufferPrivate *priv = jitterbuffer->priv;
-  GstClockTime duration, timestamp;
   guint seqnum, lost_packets, num_rtx_retry, next_in_seqnum;
   gboolean head;
-  GstEvent *event;
+  GstEvent *event = NULL;
   RTPJitterBufferItem *item;
 
   seqnum = timer->seqnum;
-  timestamp = apply_offset (jitterbuffer, timer->timeout);
-  duration = timer->duration;
-  if (duration == GST_CLOCK_TIME_NONE && priv->packet_spacing > 0)
-    duration = priv->packet_spacing;
   lost_packets = MAX (timer->num, 1);
   num_rtx_retry = timer->num_rtx_retry;
 
@@ -3341,28 +3718,44 @@
   else
     GST_DEBUG_OBJECT (jitterbuffer, "Packet #%d lost", seqnum);
 
-  priv->num_late += lost_packets;
+  priv->num_lost += lost_packets;
   priv->num_rtx_failed += num_rtx_retry;
 
   next_in_seqnum = (seqnum + lost_packets) & 0xffff;
 
   /* we now only accept seqnum bigger than this */
-  if (gst_rtp_buffer_compare_seqnum (priv->next_in_seqnum, next_in_seqnum) > 0)
+  if (gst_rtp_buffer_compare_seqnum (priv->next_in_seqnum, next_in_seqnum) > 0) {
     priv->next_in_seqnum = next_in_seqnum;
+    priv->last_in_dts = apply_offset (jitterbuffer, timer->timeout);
+  }
 
-  /* create paket lost event */
-  event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
-      gst_structure_new ("GstRTPPacketLost",
-          "seqnum", G_TYPE_UINT, (guint) seqnum,
-          "timestamp", G_TYPE_UINT64, timestamp,
-          "duration", G_TYPE_UINT64, duration,
-          "retry", G_TYPE_UINT, num_rtx_retry, NULL));
-
+  /* Avoid creating events if we don't need it. Note that we still need to create
+   * the lost *ITEM* since it will be used to notify the outgoing thread of
+   * lost items (so that we can set discont flags and such) */
+  if (priv->do_lost) {
+    GstClockTime duration, timestamp;
+    /* create paket lost event */
+    timestamp = apply_offset (jitterbuffer, timer->timeout);
+    duration = timer->duration;
+    if (duration == GST_CLOCK_TIME_NONE && priv->packet_spacing > 0)
+      duration = priv->packet_spacing;
+    event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM,
+        gst_structure_new ("GstRTPPacketLost",
+            "seqnum", G_TYPE_UINT, (guint) seqnum,
+            "timestamp", G_TYPE_UINT64, timestamp,
+            "duration", G_TYPE_UINT64, duration,
+            "retry", G_TYPE_UINT, num_rtx_retry, NULL));
+  }
   item = alloc_item (event, ITEM_TYPE_LOST, -1, -1, seqnum, lost_packets, -1);
-  rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL);
+  rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL, -1);
 
-  /* remove timer now */
+  if (GST_CLOCK_TIME_IS_VALID (timer->rtx_last)) {
+    /* Store info to update stats if the packet arrives too late */
+    timer_queue_append (priv->rtx_stats_timers, timer,
+        now + priv->rtx_stats_timeout * GST_MSECOND, TRUE);
+  }
   remove_timer (jitterbuffer, timer);
+
   if (head)
     JBUF_SIGNAL_EVENT (priv);
 
@@ -3463,41 +3856,62 @@
     GST_DEBUG_OBJECT (jitterbuffer, "now %" GST_TIME_FORMAT,
         GST_TIME_ARGS (now));
 
+    /* Clear expired rtx-stats timers */
+    if (priv->do_retransmission)
+      timer_queue_clear_until (priv->rtx_stats_timers, now);
+
+    /* Iterate "normal" timers */
     len = priv->timers->len;
-    for (i = 0; i < len; i++) {
+    for (i = 0; i < len;) {
       TimerData *test = &g_array_index (priv->timers, TimerData, i);
       GstClockTime test_timeout = get_timeout (jitterbuffer, test);
       gboolean save_best = FALSE;
 
-      GST_DEBUG_OBJECT (jitterbuffer, "%d, %d, %d, %" GST_TIME_FORMAT,
-          i, test->type, test->seqnum, GST_TIME_ARGS (test_timeout));
+      GST_DEBUG_OBJECT (jitterbuffer,
+          "%d, %d, %d, %" GST_TIME_FORMAT " diff:%" GST_STIME_FORMAT, i,
+          test->type, test->seqnum, GST_TIME_ARGS (test_timeout),
+          GST_STIME_ARGS ((gint64) (test_timeout - now)));
 
-      /* find the smallest timeout */
-      if (timer == NULL) {
-        save_best = TRUE;
-      } else if (timer_timeout == -1) {
-        /* we already have an immediate timeout, the new timer must be an
-         * immediate timer with smaller seqnum to become the best */
-        if (test_timeout == -1
-            && (gst_rtp_buffer_compare_seqnum (test->seqnum,
-                    timer->seqnum) > 0))
+      /* Weed out anything too late */
+      if (test->type == TIMER_TYPE_LOST &&
+          (test_timeout == -1 || test_timeout <= now)) {
+        GST_DEBUG_OBJECT (jitterbuffer, "Weeding out late entry");
+        do_lost_timeout (jitterbuffer, test, now);
+        if (!priv->timer_running)
+          break;
+        /* We don't move the iterator forward since we just removed the current entry,
+         * but we update the termination condition */
+        len = priv->timers->len;
+      } else {
+        /* find the smallest timeout */
+        if (timer == NULL) {
           save_best = TRUE;
-      } else if (test_timeout == -1) {
-        /* first immediate timer */
-        save_best = TRUE;
-      } else if (test_timeout < timer_timeout) {
-        /* earlier timer */
-        save_best = TRUE;
-      } else if (test_timeout == timer_timeout
-          && (gst_rtp_buffer_compare_seqnum (test->seqnum,
-                  timer->seqnum) > 0)) {
-        /* same timer, smaller seqnum */
-        save_best = TRUE;
-      }
-      if (save_best) {
-        GST_DEBUG_OBJECT (jitterbuffer, "new best %d", i);
-        timer = test;
-        timer_timeout = test_timeout;
+        } else if (timer_timeout == -1) {
+          /* we already have an immediate timeout, the new timer must be an
+           * immediate timer with smaller seqnum to become the best */
+          if (test_timeout == -1
+              && (gst_rtp_buffer_compare_seqnum (test->seqnum,
+                      timer->seqnum) > 0))
+            save_best = TRUE;
+        } else if (test_timeout == -1) {
+          /* first immediate timer */
+          save_best = TRUE;
+        } else if (test_timeout < timer_timeout) {
+          /* earlier timer */
+          save_best = TRUE;
+        } else if (test_timeout == timer_timeout
+            && (gst_rtp_buffer_compare_seqnum (test->seqnum,
+                    timer->seqnum) > 0)) {
+          /* same timer, smaller seqnum */
+          save_best = TRUE;
+        }
+
+        if (save_best) {
+          GST_DEBUG_OBJECT (jitterbuffer, "new best %d", i);
+          timer = test;
+          timer_timeout = test_timeout;
+        }
+        i++;
       }
     }
     if (timer && !priv->blocked) {
@@ -3508,6 +3922,9 @@
       GstClockTimeDiff clock_jitter;
 
       if (timer_timeout == -1 || timer_timeout <= now) {
+        /* We have normally removed all lost timers in the loop above */
+        g_assert (timer->type != TIMER_TYPE_LOST);
+
         do_timeout (jitterbuffer, timer, now);
         /* check here, do_timeout could have released the lock */
         if (!priv->timer_running)
@@ -3828,7 +4245,7 @@
             RTP_JITTER_BUFFER_MODE_BUFFER) {
           GST_DEBUG_OBJECT (jitterbuffer, "adding serialized query");
           item = alloc_item (query, ITEM_TYPE_QUERY, -1, -1, -1, 0, -1);
-          rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL);
+          rtp_jitter_buffer_insert (priv->jbuf, item, &head, NULL, -1);
           if (head)
             JBUF_SIGNAL_EVENT (priv);
           JBUF_WAIT_QUERY (priv, out_flushing);
@@ -4051,6 +4468,16 @@
       priv->rtx_max_retries = g_value_get_int (value);
       JBUF_UNLOCK (priv);
       break;
+    case PROP_RTX_DEADLINE:
+      JBUF_LOCK (priv);
+      priv->rtx_deadline_ms = g_value_get_int (value);
+      JBUF_UNLOCK (priv);
+      break;
+    case PROP_RTX_STATS_TIMEOUT:
+      JBUF_LOCK (priv);
+      priv->rtx_stats_timeout = g_value_get_uint (value);
+      JBUF_UNLOCK (priv);
+      break;
     case PROP_MAX_RTCP_RTP_TIME_DIFF:
       JBUF_LOCK (priv);
       priv->max_rtcp_rtp_time_diff = g_value_get_int (value);
@@ -4066,6 +4493,12 @@
       priv->max_misorder_time = g_value_get_uint (value);
       JBUF_UNLOCK (priv);
       break;
+    case PROP_RFC7273_SYNC:
+      JBUF_LOCK (priv);
+      rtp_jitter_buffer_set_rfc7273_sync (priv->jbuf,
+          g_value_get_boolean (value));
+      JBUF_UNLOCK (priv);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -4167,6 +4600,16 @@
       g_value_set_int (value, priv->rtx_max_retries);
       JBUF_UNLOCK (priv);
       break;
+    case PROP_RTX_DEADLINE:
+      JBUF_LOCK (priv);
+      g_value_set_int (value, priv->rtx_deadline_ms);
+      JBUF_UNLOCK (priv);
+      break;
+    case PROP_RTX_STATS_TIMEOUT:
+      JBUF_LOCK (priv);
+      g_value_set_uint (value, priv->rtx_stats_timeout);
+      JBUF_UNLOCK (priv);
+      break;
     case PROP_STATS:
       g_value_take_boxed (value,
           gst_rtp_jitter_buffer_create_stats (jitterbuffer));
@@ -4186,6 +4629,12 @@
       g_value_set_uint (value, priv->max_misorder_time);
       JBUF_UNLOCK (priv);
       break;
+    case PROP_RFC7273_SYNC:
+      JBUF_LOCK (priv);
+      g_value_set_boolean (value,
+          rtp_jitter_buffer_get_rfc7273_sync (priv->jbuf));
+      JBUF_UNLOCK (priv);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -4195,15 +4644,21 @@
 static GstStructure *
 gst_rtp_jitter_buffer_create_stats (GstRtpJitterBuffer * jbuf)
 {
+  GstRtpJitterBufferPrivate *priv = jbuf->priv;
   GstStructure *s;
 
-  JBUF_LOCK (jbuf->priv);
+  JBUF_LOCK (priv);
   s = gst_structure_new ("application/x-rtp-jitterbuffer-stats",
-      "rtx-count", G_TYPE_UINT64, jbuf->priv->num_rtx_requests,
-      "rtx-success-count", G_TYPE_UINT64, jbuf->priv->num_rtx_success,
-      "rtx-per-packet", G_TYPE_DOUBLE, jbuf->priv->avg_rtx_num,
-      "rtx-rtt", G_TYPE_UINT64, jbuf->priv->avg_rtx_rtt, NULL);
-  JBUF_UNLOCK (jbuf->priv);
+      "num-pushed", G_TYPE_UINT64, priv->num_pushed,
+      "num-lost", G_TYPE_UINT64, priv->num_lost,
+      "num-late", G_TYPE_UINT64, priv->num_late,
+      "num-duplicates", G_TYPE_UINT64, priv->num_duplicates,
+      "avg-jitter", G_TYPE_UINT64, priv->avg_jitter,
+      "rtx-count", G_TYPE_UINT64, priv->num_rtx_requests,
+      "rtx-success-count", G_TYPE_UINT64, priv->num_rtx_success,
+      "rtx-per-packet", G_TYPE_DOUBLE, priv->avg_rtx_num,
+      "rtx-rtt", G_TYPE_UINT64, priv->avg_rtx_rtt, NULL);
+  JBUF_UNLOCK (priv);
 
   return s;
 }
diff --git a/gst/rtpmanager/gstrtpmux.c b/gst/rtpmanager/gstrtpmux.c
index e4b6dd5..faf4a62 100644
--- a/gst/rtpmanager/gstrtpmux.c
+++ b/gst/rtpmanager/gstrtpmux.c
@@ -125,10 +125,8 @@
   gstelement_class = (GstElementClass *) 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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP muxer",
       "Codec/Muxer",
diff --git a/gst/rtpmanager/gstrtpptdemux.c b/gst/rtpmanager/gstrtpptdemux.c
index d764bee..9020a44 100644
--- a/gst/rtpmanager/gstrtpptdemux.c
+++ b/gst/rtpmanager/gstrtpptdemux.c
@@ -206,10 +206,10 @@
 
   klass->clear_pt_map = GST_DEBUG_FUNCPTR (gst_rtp_pt_demux_clear_pt_map);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_pt_demux_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_pt_demux_src_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_pt_demux_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_pt_demux_src_template);
 
   gst_element_class_set_static_metadata (gstelement_klass, "RTP Demux",
       "Demux/Network/RTP",
diff --git a/gst/rtpmanager/gstrtprtxqueue.c b/gst/rtpmanager/gstrtprtxqueue.c
index 0566f74..2b1c544 100644
--- a/gst/rtpmanager/gstrtprtxqueue.c
+++ b/gst/rtpmanager/gstrtprtxqueue.c
@@ -101,10 +101,8 @@
           DEFAULT_MAX_SIZE_PACKETS,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Retransmission Queue", "Codec",
diff --git a/gst/rtpmanager/gstrtprtxreceive.c b/gst/rtpmanager/gstrtprtxreceive.c
index 4773722..91edda2 100644
--- a/gst/rtpmanager/gstrtprtxreceive.c
+++ b/gst/rtpmanager/gstrtprtxreceive.c
@@ -198,10 +198,8 @@
           "correctly associated with retransmission requests", 0, G_MAXUINT,
           0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Retransmission receiver", "Codec",
@@ -474,6 +472,7 @@
 
   gst_buffer_copy_into (new_buffer, rtp->buffer,
       GST_BUFFER_COPY_FLAGS | GST_BUFFER_COPY_TIMESTAMPS, 0, -1);
+  GST_BUFFER_FLAG_SET (new_buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION);
 
   return new_buffer;
 }
diff --git a/gst/rtpmanager/gstrtprtxsend.c b/gst/rtpmanager/gstrtprtxsend.c
index 54c0a0c..5fb400d 100644
--- a/gst/rtpmanager/gstrtprtxsend.c
+++ b/gst/rtpmanager/gstrtprtxsend.c
@@ -191,10 +191,8 @@
           " Number of retransmission packets sent", 0, G_MAXUINT,
           0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTP Retransmission Sender", "Codec",
diff --git a/gst/rtpmanager/gstrtpsession.c b/gst/rtpmanager/gstrtpsession.c
index 4c41c5d..3688e85 100644
--- a/gst/rtpmanager/gstrtpsession.c
+++ b/gst/rtpmanager/gstrtpsession.c
@@ -773,22 +773,22 @@
   klass->clear_pt_map = GST_DEBUG_FUNCPTR (gst_rtp_session_clear_pt_map);
 
   /* sink pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_recv_rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_recv_rtcp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_send_rtp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_recv_rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_recv_rtcp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_send_rtp_sink_template);
 
   /* src pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_recv_rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_sync_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_send_rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtpsession_send_rtcp_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_recv_rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_sync_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_send_rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &rtpsession_send_rtcp_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP Session",
       "Filter/Network/RTP",
@@ -1016,7 +1016,7 @@
 get_current_times (GstRtpSession * rtpsession, GstClockTime * running_time,
     guint64 * ntpnstime)
 {
-  guint64 ntpns;
+  guint64 ntpns = -1;
   GstClock *clock;
   GstClockTime base_time, rt, clock_time;
 
@@ -1074,6 +1074,17 @@
     *ntpnstime = ntpns;
 }
 
+/* must be called with GST_RTP_SESSION_LOCK */
+static void
+signal_waiting_rtcp_thread_unlocked (GstRtpSession * rtpsession)
+{
+  if (rtpsession->priv->wait_send) {
+    GST_LOG_OBJECT (rtpsession, "signal RTCP thread");
+    rtpsession->priv->wait_send = FALSE;
+    GST_RTP_SESSION_SIGNAL (rtpsession);
+  }
+}
+
 static void
 rtcp_thread (GstRtpSession * rtpsession)
 {
@@ -1194,8 +1205,7 @@
 
   GST_RTP_SESSION_LOCK (rtpsession);
   rtpsession->priv->stop_thread = TRUE;
-  rtpsession->priv->wait_send = FALSE;
-  GST_RTP_SESSION_SIGNAL (rtpsession);
+  signal_waiting_rtcp_thread_unlocked (rtpsession);
   if (rtpsession->priv->id)
     gst_clock_id_unschedule (rtpsession->priv->id);
   GST_RTP_SESSION_UNLOCK (rtpsession);
@@ -1333,11 +1343,7 @@
   GST_RTP_SESSION_LOCK (rtpsession);
   if ((rtp_src = rtpsession->send_rtp_src))
     gst_object_ref (rtp_src);
-  if (rtpsession->priv->wait_send) {
-    GST_LOG_OBJECT (rtpsession, "signal RTCP thread");
-    rtpsession->priv->wait_send = FALSE;
-    GST_RTP_SESSION_SIGNAL (rtpsession);
-  }
+  signal_waiting_rtcp_thread_unlocked (rtpsession);
   GST_RTP_SESSION_UNLOCK (rtpsession);
 
   if (rtp_src) {
@@ -1901,11 +1907,7 @@
   GST_LOG_OBJECT (rtpsession, "received RTP packet");
 
   GST_RTP_SESSION_LOCK (rtpsession);
-  if (rtpsession->priv->wait_send) {
-    GST_LOG_OBJECT (rtpsession, "signal RTCP thread");
-    rtpsession->priv->wait_send = FALSE;
-    GST_RTP_SESSION_SIGNAL (rtpsession);
-  }
+  signal_waiting_rtcp_thread_unlocked (rtpsession);
   GST_RTP_SESSION_UNLOCK (rtpsession);
 
   /* get NTP time when this packet was captured, this depends on the timestamp. */
@@ -1990,11 +1992,7 @@
   GST_LOG_OBJECT (rtpsession, "received RTCP packet");
 
   GST_RTP_SESSION_LOCK (rtpsession);
-  if (rtpsession->priv->wait_send) {
-    GST_LOG_OBJECT (rtpsession, "signal RTCP thread");
-    rtpsession->priv->wait_send = FALSE;
-    GST_RTP_SESSION_SIGNAL (rtpsession);
-  }
+  signal_waiting_rtcp_thread_unlocked (rtpsession);
   GST_RTP_SESSION_UNLOCK (rtpsession);
 
   current_time = gst_clock_get_time (priv->sysclock);
diff --git a/gst/rtpmanager/gstrtpssrcdemux.c b/gst/rtpmanager/gstrtpssrcdemux.c
index 762e959..c4a3c43 100644
--- a/gst/rtpmanager/gstrtpssrcdemux.c
+++ b/gst/rtpmanager/gstrtpssrcdemux.c
@@ -421,14 +421,14 @@
   gstrtpssrcdemux_klass->clear_ssrc =
       GST_DEBUG_FUNCPTR (gst_rtp_ssrc_demux_clear_ssrc);
 
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_ssrc_demux_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_ssrc_demux_rtcp_sink_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_ssrc_demux_src_template));
-  gst_element_class_add_pad_template (gstelement_klass,
-      gst_static_pad_template_get (&rtp_ssrc_demux_rtcp_src_template));
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_ssrc_demux_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_ssrc_demux_rtcp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_ssrc_demux_src_template);
+  gst_element_class_add_static_pad_template (gstelement_klass,
+      &rtp_ssrc_demux_rtcp_src_template);
 
   gst_element_class_set_static_metadata (gstelement_klass, "RTP SSRC Demux",
       "Demux/Network/RTP",
diff --git a/gst/rtpmanager/rtpjitterbuffer.c b/gst/rtpmanager/rtpjitterbuffer.c
index f867546..0ffbe54 100644
--- a/gst/rtpmanager/rtpjitterbuffer.c
+++ b/gst/rtpmanager/rtpjitterbuffer.c
@@ -85,6 +85,8 @@
 static void
 rtp_jitter_buffer_init (RTPJitterBuffer * jbuf)
 {
+  g_mutex_init (&jbuf->clock_lock);
+
   jbuf->packets = g_queue_new ();
   jbuf->mode = RTP_JITTER_BUFFER_MODE_SLAVE;
 
@@ -98,8 +100,19 @@
 
   jbuf = RTP_JITTER_BUFFER_CAST (object);
 
+  if (jbuf->media_clock_synced_id)
+    g_signal_handler_disconnect (jbuf->media_clock,
+        jbuf->media_clock_synced_id);
+  if (jbuf->media_clock)
+    gst_object_unref (jbuf->media_clock);
+
+  if (jbuf->pipeline_clock)
+    gst_object_unref (jbuf->pipeline_clock);
+
   g_queue_free (jbuf->packets);
 
+  g_mutex_clear (&jbuf->clock_lock);
+
   G_OBJECT_CLASS (rtp_jitter_buffer_parent_class)->finalize (object);
 }
 
@@ -199,6 +212,110 @@
   return jbuf->clock_rate;
 }
 
+static void
+media_clock_synced_cb (GstClock * clock, gboolean synced,
+    RTPJitterBuffer * jbuf)
+{
+  GstClockTime internal, external;
+
+  g_mutex_lock (&jbuf->clock_lock);
+  if (jbuf->pipeline_clock) {
+    internal = gst_clock_get_internal_time (jbuf->media_clock);
+    external = gst_clock_get_time (jbuf->pipeline_clock);
+
+    gst_clock_set_calibration (jbuf->media_clock, internal, external, 1, 1);
+  }
+  g_mutex_unlock (&jbuf->clock_lock);
+}
+
+/**
+ * rtp_jitter_buffer_set_media_clock:
+ * @jbuf: an #RTPJitterBuffer
+ * @clock: (transfer full): media #GstClock
+ * @clock_offset: RTP time at clock epoch or -1
+ *
+ * Sets the media clock for the media and the clock offset
+ *
+ */
+void
+rtp_jitter_buffer_set_media_clock (RTPJitterBuffer * jbuf, GstClock * clock,
+    guint64 clock_offset)
+{
+  g_mutex_lock (&jbuf->clock_lock);
+  if (jbuf->media_clock) {
+    if (jbuf->media_clock_synced_id)
+      g_signal_handler_disconnect (jbuf->media_clock,
+          jbuf->media_clock_synced_id);
+    jbuf->media_clock_synced_id = 0;
+    gst_object_unref (jbuf->media_clock);
+  }
+  jbuf->media_clock = clock;
+  jbuf->media_clock_offset = clock_offset;
+
+  if (jbuf->pipeline_clock && jbuf->media_clock &&
+      jbuf->pipeline_clock != jbuf->media_clock) {
+    jbuf->media_clock_synced_id =
+        g_signal_connect (jbuf->media_clock, "synced",
+        G_CALLBACK (media_clock_synced_cb), jbuf);
+    if (gst_clock_is_synced (jbuf->media_clock)) {
+      GstClockTime internal, external;
+
+      internal = gst_clock_get_internal_time (jbuf->media_clock);
+      external = gst_clock_get_time (jbuf->pipeline_clock);
+
+      gst_clock_set_calibration (jbuf->media_clock, internal, external, 1, 1);
+    }
+
+    gst_clock_set_master (jbuf->media_clock, jbuf->pipeline_clock);
+  }
+  g_mutex_unlock (&jbuf->clock_lock);
+}
+
+/**
+ * rtp_jitter_buffer_set_pipeline_clock:
+ * @jbuf: an #RTPJitterBuffer
+ * @clock: pipeline #GstClock
+ *
+ * Sets the pipeline clock
+ *
+ */
+void
+rtp_jitter_buffer_set_pipeline_clock (RTPJitterBuffer * jbuf, GstClock * clock)
+{
+  g_mutex_lock (&jbuf->clock_lock);
+  if (jbuf->pipeline_clock)
+    gst_object_unref (jbuf->pipeline_clock);
+  jbuf->pipeline_clock = clock ? gst_object_ref (clock) : NULL;
+
+  if (jbuf->pipeline_clock && jbuf->media_clock &&
+      jbuf->pipeline_clock != jbuf->media_clock) {
+    if (gst_clock_is_synced (jbuf->media_clock)) {
+      GstClockTime internal, external;
+
+      internal = gst_clock_get_internal_time (jbuf->media_clock);
+      external = gst_clock_get_time (jbuf->pipeline_clock);
+
+      gst_clock_set_calibration (jbuf->media_clock, internal, external, 1, 1);
+    }
+
+    gst_clock_set_master (jbuf->media_clock, jbuf->pipeline_clock);
+  }
+  g_mutex_unlock (&jbuf->clock_lock);
+}
+
+gboolean
+rtp_jitter_buffer_get_rfc7273_sync (RTPJitterBuffer * jbuf)
+{
+  return jbuf->rfc7273_sync;
+}
+
+void
+rtp_jitter_buffer_set_rfc7273_sync (RTPJitterBuffer * jbuf,
+    gboolean rfc7273_sync)
+{
+  jbuf->rfc7273_sync = rfc7273_sync;
+}
+
 /**
  * rtp_jitter_buffer_reset_skew:
  * @jbuf: an #RTPJitterBuffer
@@ -211,6 +328,7 @@
   jbuf->base_time = -1;
   jbuf->base_rtptime = -1;
   jbuf->base_extrtp = -1;
+  jbuf->media_clock_base_time = -1;
   jbuf->ext_rtptime = -1;
   jbuf->last_rtptime = -1;
   jbuf->window_pos = 0;
@@ -220,6 +338,7 @@
   jbuf->prev_send_diff = -1;
   jbuf->prev_out_time = -1;
   jbuf->need_resync = TRUE;
+
   GST_DEBUG ("reset skew correction");
 }
 
@@ -241,6 +360,7 @@
     GstClockTime gstrtptime, guint64 ext_rtptime, gboolean reset_skew)
 {
   jbuf->base_time = time;
+  jbuf->media_clock_base_time = -1;
   jbuf->base_rtptime = gstrtptime;
   jbuf->base_extrtp = ext_rtptime;
   jbuf->prev_out_time = -1;
@@ -406,55 +526,18 @@
  * Returns: @time adjusted with the clock skew.
  */
 static GstClockTime
-calculate_skew (RTPJitterBuffer * jbuf, guint32 rtptime, GstClockTime time)
+calculate_skew (RTPJitterBuffer * jbuf, guint64 ext_rtptime,
+    GstClockTime gstrtptime, GstClockTime time)
 {
-  guint64 ext_rtptime;
   guint64 send_diff, recv_diff;
   gint64 delta;
   gint64 old;
   gint pos, i;
-  GstClockTime gstrtptime, out_time;
+  GstClockTime out_time;
   guint64 slope;
 
-  ext_rtptime = gst_rtp_buffer_ext_timestamp (&jbuf->ext_rtptime, rtptime);
-
-  if (jbuf->last_rtptime != -1 && ext_rtptime == jbuf->last_rtptime)
-    return jbuf->prev_out_time;
-
-  gstrtptime =
-      gst_util_uint64_scale_int (ext_rtptime, GST_SECOND, jbuf->clock_rate);
-
-  /* keep track of the last extended rtptime */
-  jbuf->last_rtptime = ext_rtptime;
-
-  send_diff = 0;
-  if (G_LIKELY (jbuf->base_rtptime != -1)) {
-    /* check elapsed time in RTP units */
-    if (G_LIKELY (gstrtptime >= jbuf->base_rtptime)) {
-      send_diff = gstrtptime - jbuf->base_rtptime;
-    } else {
-      /* elapsed time at sender, timestamps can go backwards and thus be
-       * smaller than our base time, schedule to take a new base time in
-       * that case. */
-      GST_WARNING ("backward timestamps at server, schedule resync");
-      jbuf->need_resync = TRUE;
-      send_diff = 0;
-    }
-  }
-
-  /* need resync, lock on to time and gstrtptime if we can, otherwise we
-   * do with the previous values */
-  if (G_UNLIKELY (jbuf->need_resync && time != -1)) {
-    GST_INFO ("resync to time %" GST_TIME_FORMAT ", rtptime %"
-        GST_TIME_FORMAT, GST_TIME_ARGS (time), GST_TIME_ARGS (gstrtptime));
-    rtp_jitter_buffer_resync (jbuf, time, gstrtptime, ext_rtptime, FALSE);
-    send_diff = 0;
-  }
-
-  GST_DEBUG ("extrtp %" G_GUINT64_FORMAT ", gstrtp %" GST_TIME_FORMAT ", base %"
-      GST_TIME_FORMAT ", send_diff %" GST_TIME_FORMAT, ext_rtptime,
-      GST_TIME_ARGS (gstrtptime), GST_TIME_ARGS (jbuf->base_rtptime),
-      GST_TIME_ARGS (send_diff));
+  /* elapsed time at sender */
+  send_diff = gstrtptime - jbuf->base_rtptime;
 
   /* we don't have an arrival timestamp so we can't do skew detection. we
    * should still apply a timestamp based on RTP timestamp and base_time */
@@ -574,40 +657,9 @@
     } else {
       out_time += jbuf->skew;
     }
-    /* check if timestamps are not going backwards, we can only check this if we
-     * have a previous out time and a previous send_diff */
-    if (G_LIKELY (jbuf->prev_out_time != -1 && jbuf->prev_send_diff != -1)) {
-      /* now check for backwards timestamps */
-      if (G_UNLIKELY (
-              /* if the server timestamps went up and the out_time backwards */
-              (send_diff > jbuf->prev_send_diff
-                  && out_time < jbuf->prev_out_time) ||
-              /* if the server timestamps went backwards and the out_time forwards */
-              (send_diff < jbuf->prev_send_diff
-                  && out_time > jbuf->prev_out_time) ||
-              /* if the server timestamps did not change */
-              send_diff == jbuf->prev_send_diff)) {
-        GST_DEBUG ("backwards timestamps, using previous time");
-        out_time = jbuf->prev_out_time;
-      }
-    }
-    if (time != -1 && out_time + jbuf->delay < time) {
-      /* if we are going to produce a timestamp that is later than the input
-       * timestamp, we need to reset the jitterbuffer. Likely the server paused
-       * temporarily */
-      GST_DEBUG ("out %" GST_TIME_FORMAT " + %" G_GUINT64_FORMAT " < time %"
-          GST_TIME_FORMAT ", reset jitterbuffer", GST_TIME_ARGS (out_time),
-          jbuf->delay, GST_TIME_ARGS (time));
-      rtp_jitter_buffer_resync (jbuf, time, gstrtptime, ext_rtptime, TRUE);
-      out_time = time;
-      send_diff = 0;
-    }
   } else
     out_time = -1;
 
-  jbuf->prev_out_time = out_time;
-  jbuf->prev_send_diff = send_diff;
-
   GST_DEBUG ("skew %" G_GINT64_FORMAT ", out %" GST_TIME_FORMAT,
       jbuf->skew, GST_TIME_ARGS (out_time));
 
@@ -642,6 +694,7 @@
  * @item: an #RTPJitterBufferItem to insert
  * @head: TRUE when the head element changed.
  * @percent: the buffering percent after insertion
+ * @base_time: base time of the pipeline
  *
  * Inserts @item into the packet queue of @jbuf. The sequence number of the
  * packet will be used to sort the packets. This function takes ownerhip of
@@ -655,12 +708,16 @@
  */
 gboolean
 rtp_jitter_buffer_insert (RTPJitterBuffer * jbuf, RTPJitterBufferItem * item,
-    gboolean * head, gint * percent)
+    gboolean * head, gint * percent, GstClockTime base_time)
 {
   GList *list, *event = NULL;
   guint32 rtptime;
+  guint64 ext_rtptime;
   guint16 seqnum;
-  GstClockTime dts;
+  GstClockTime gstrtptime, dts;
+  GstClock *media_clock, *pipeline_clock;
+  guint64 media_clock_offset;
+  gboolean rfc7273_mode;
 
   g_return_val_if_fail (jbuf != NULL, FALSE);
   g_return_val_if_fail (item != NULL, FALSE);
@@ -737,6 +794,37 @@
     }
   }
 
+  /* Return the last time if we got the same RTP timestamp again */
+  ext_rtptime = gst_rtp_buffer_ext_timestamp (&jbuf->ext_rtptime, rtptime);
+  if (jbuf->last_rtptime != -1 && ext_rtptime == jbuf->last_rtptime) {
+    item->pts = jbuf->prev_out_time;
+    goto append;
+  }
+
+  /* keep track of the last extended rtptime */
+  jbuf->last_rtptime = ext_rtptime;
+
+  g_mutex_lock (&jbuf->clock_lock);
+  media_clock = jbuf->media_clock ? gst_object_ref (jbuf->media_clock) : NULL;
+  pipeline_clock =
+      jbuf->pipeline_clock ? gst_object_ref (jbuf->pipeline_clock) : NULL;
+  media_clock_offset = jbuf->media_clock_offset;
+  g_mutex_unlock (&jbuf->clock_lock);
+
+  gstrtptime =
+      gst_util_uint64_scale_int (ext_rtptime, GST_SECOND, jbuf->clock_rate);
+
+  if (G_LIKELY (jbuf->base_rtptime != -1)) {
+    /* check elapsed time in RTP units */
+    if (gstrtptime < jbuf->base_rtptime) {
+      /* elapsed time at sender, timestamps can go backwards and thus be
+       * smaller than our base time, schedule to take a new base time in
+       * that case. */
+      GST_WARNING ("backward timestamps at server, schedule resync");
+      jbuf->need_resync = TRUE;
+    }
+  }
+
   switch (jbuf->mode) {
     case RTP_JITTER_BUFFER_MODE_NONE:
     case RTP_JITTER_BUFFER_MODE_BUFFER:
@@ -752,16 +840,178 @@
     case RTP_JITTER_BUFFER_MODE_SYNCED:
       /* synchronized clocks, take first timestamp as base, use RTP timestamps
        * to interpolate */
-      if (jbuf->base_time != -1)
+      if (jbuf->base_time != -1 && !jbuf->need_resync)
         dts = -1;
       break;
     case RTP_JITTER_BUFFER_MODE_SLAVE:
     default:
       break;
   }
-  /* do skew calculation by measuring the difference between rtptime and the
-   * receive dts, this function will return the skew corrected rtptime. */
-  item->pts = calculate_skew (jbuf, rtptime, dts);
+
+  /* need resync, lock on to time and gstrtptime if we can, otherwise we
+   * do with the previous values */
+  if (G_UNLIKELY (jbuf->need_resync && dts != -1)) {
+    GST_INFO ("resync to time %" GST_TIME_FORMAT ", rtptime %"
+        GST_TIME_FORMAT, GST_TIME_ARGS (dts), GST_TIME_ARGS (gstrtptime));
+    rtp_jitter_buffer_resync (jbuf, dts, gstrtptime, ext_rtptime, FALSE);
+  }
+
+  GST_DEBUG ("extrtp %" G_GUINT64_FORMAT ", gstrtp %" GST_TIME_FORMAT ", base %"
+      GST_TIME_FORMAT ", send_diff %" GST_TIME_FORMAT, ext_rtptime,
+      GST_TIME_ARGS (gstrtptime), GST_TIME_ARGS (jbuf->base_rtptime),
+      GST_TIME_ARGS (gstrtptime - jbuf->base_rtptime));
+
+  rfc7273_mode = media_clock && pipeline_clock
+      && gst_clock_is_synced (media_clock);
+
+  if (rfc7273_mode && jbuf->mode == RTP_JITTER_BUFFER_MODE_SLAVE
+      && (media_clock_offset == -1 || !jbuf->rfc7273_sync)) {
+    GstClockTime internal, external;
+    GstClockTime rate_num, rate_denom;
+    GstClockTime nsrtptimediff, rtpntptime, rtpsystime;
+
+    gst_clock_get_calibration (media_clock, &internal, &external, &rate_num,
+        &rate_denom);
+
+    /* Slave to the RFC7273 media clock instead of trying to estimate it
+     * based on receive times and RTP timestamps */
+
+    if (jbuf->media_clock_base_time == -1) {
+      if (jbuf->base_time != -1) {
+        jbuf->media_clock_base_time =
+            gst_clock_unadjust_with_calibration (media_clock,
+            jbuf->base_time + base_time, internal, external, rate_num,
+            rate_denom);
+      } else {
+        if (dts != -1)
+          jbuf->media_clock_base_time =
+              gst_clock_unadjust_with_calibration (media_clock, dts + base_time,
+              internal, external, rate_num, rate_denom);
+        else
+          jbuf->media_clock_base_time =
+              gst_clock_get_internal_time (media_clock);
+        jbuf->base_rtptime = gstrtptime;
+      }
+    }
+
+    if (gstrtptime > jbuf->base_rtptime)
+      nsrtptimediff = gstrtptime - jbuf->base_rtptime;
+    else
+      nsrtptimediff = 0;
+
+    rtpntptime = nsrtptimediff + jbuf->media_clock_base_time;
+
+    rtpsystime =
+        gst_clock_adjust_with_calibration (media_clock, rtpntptime, internal,
+        external, rate_num, rate_denom);
+
+    if (rtpsystime > base_time)
+      item->pts = rtpsystime - base_time;
+    else
+      item->pts = 0;
+
+    GST_DEBUG ("RFC7273 clock time %" GST_TIME_FORMAT ", out %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (rtpsystime), GST_TIME_ARGS (item->pts));
+  } else if (rfc7273_mode && (jbuf->mode == RTP_JITTER_BUFFER_MODE_SLAVE
+          || jbuf->mode == RTP_JITTER_BUFFER_MODE_SYNCED)
+      && media_clock_offset != -1 && jbuf->rfc7273_sync) {
+    GstClockTime ntptime, rtptime_tmp;
+    GstClockTime ntprtptime, rtpsystime;
+    GstClockTime internal, external;
+    GstClockTime rate_num, rate_denom;
+
+    /* Don't do any of the dts related adjustments further down */
+    dts = -1;
+
+    /* Calculate the actual clock time on the sender side based on the
+     * RFC7273 clock and convert it to our pipeline clock
+     */
+
+    gst_clock_get_calibration (media_clock, &internal, &external, &rate_num,
+        &rate_denom);
+
+    ntptime = gst_clock_get_internal_time (media_clock);
+
+    ntprtptime = gst_util_uint64_scale (ntptime, jbuf->clock_rate, GST_SECOND);
+    ntprtptime += media_clock_offset;
+    ntprtptime &= 0xffffffff;
+
+    rtptime_tmp = rtptime;
+    /* Check for wraparounds, we assume that the diff between current RTP
+     * timestamp and current media clock time can't be bigger than
+     * 2**31 clock units */
+    if (ntprtptime > rtptime_tmp && ntprtptime - rtptime_tmp >= 0x80000000)
+      rtptime_tmp += G_GUINT64_CONSTANT (0x100000000);
+    else if (rtptime_tmp > ntprtptime && rtptime_tmp - ntprtptime >= 0x80000000)
+      ntprtptime += G_GUINT64_CONSTANT (0x100000000);
+
+    if (ntprtptime > rtptime_tmp)
+      ntptime -=
+          gst_util_uint64_scale (ntprtptime - rtptime_tmp, jbuf->clock_rate,
+          GST_SECOND);
+    else
+      ntptime +=
+          gst_util_uint64_scale (rtptime_tmp - ntprtptime, jbuf->clock_rate,
+          GST_SECOND);
+
+    rtpsystime =
+        gst_clock_adjust_with_calibration (media_clock, ntptime, internal,
+        external, rate_num, rate_denom);
+    /* All this assumes that the pipeline has enough additional
+     * latency to cover for the network delay */
+    if (rtpsystime > base_time)
+      item->pts = rtpsystime - base_time;
+    else
+      item->pts = 0;
+
+    GST_DEBUG ("RFC7273 clock time %" GST_TIME_FORMAT ", out %" GST_TIME_FORMAT,
+        GST_TIME_ARGS (rtpsystime), GST_TIME_ARGS (item->pts));
+  } else {
+    /* If we used the RFC7273 clock before and not anymore,
+     * we need to resync it later again */
+    jbuf->media_clock_base_time = -1;
+
+    /* do skew calculation by measuring the difference between rtptime and the
+     * receive dts, this function will return the skew corrected rtptime. */
+    item->pts = calculate_skew (jbuf, ext_rtptime, gstrtptime, dts);
+  }
+
+  /* check if timestamps are not going backwards, we can only check this if we
+   * have a previous out time and a previous send_diff */
+  if (G_LIKELY (item->pts != -1 && jbuf->prev_out_time != -1
+          && jbuf->prev_send_diff != -1)) {
+    /* now check for backwards timestamps */
+    if (G_UNLIKELY (
+            /* if the server timestamps went up and the out_time backwards */
+            (gstrtptime - jbuf->base_rtptime > jbuf->prev_send_diff
+                && item->pts < jbuf->prev_out_time) ||
+            /* if the server timestamps went backwards and the out_time forwards */
+            (gstrtptime - jbuf->base_rtptime < jbuf->prev_send_diff
+                && item->pts > jbuf->prev_out_time) ||
+            /* if the server timestamps did not change */
+            gstrtptime - jbuf->base_rtptime == jbuf->prev_send_diff)) {
+      GST_DEBUG ("backwards timestamps, using previous time");
+      item->pts = jbuf->prev_out_time;
+    }
+  }
+  if (dts != -1 && item->pts + jbuf->delay < dts) {
+    /* if we are going to produce a timestamp that is later than the input
+     * timestamp, we need to reset the jitterbuffer. Likely the server paused
+     * temporarily */
+    GST_DEBUG ("out %" GST_TIME_FORMAT " + %" G_GUINT64_FORMAT " < time %"
+        GST_TIME_FORMAT ", reset jitterbuffer", GST_TIME_ARGS (item->pts),
+        jbuf->delay, GST_TIME_ARGS (dts));
+    rtp_jitter_buffer_resync (jbuf, dts, gstrtptime, ext_rtptime, TRUE);
+    item->pts = dts;
+  }
+
+  jbuf->prev_out_time = item->pts;
+  jbuf->prev_send_diff = gstrtptime - jbuf->base_rtptime;
+
+  if (media_clock)
+    gst_object_unref (media_clock);
+  if (pipeline_clock)
+    gst_object_unref (pipeline_clock);
 
 append:
   queue_do_insert (jbuf, list, (GList *) item);
diff --git a/gst/rtpmanager/rtpjitterbuffer.h b/gst/rtpmanager/rtpjitterbuffer.h
index ba8da6d..08ce169 100644
--- a/gst/rtpmanager/rtpjitterbuffer.h
+++ b/gst/rtpmanager/rtpjitterbuffer.h
@@ -36,20 +36,19 @@
 
 /**
  * RTPJitterBufferMode:
- *
- * RTP_JITTER_BUFFER_MODE_NONE: don't do any skew correction, outgoing
+ * @RTP_JITTER_BUFFER_MODE_NONE: don't do any skew correction, outgoing
  *    timestamps are calculated directly from the RTP timestamps. This mode is
  *    good for recording but not for real-time applications.
- * RTP_JITTER_BUFFER_MODE_SLAVE: calculate the skew between sender and receiver
+ * @RTP_JITTER_BUFFER_MODE_SLAVE: calculate the skew between sender and receiver
  *    and produce smoothed adjusted outgoing timestamps. This mode is good for
  *    low latency communications.
- * RTP_JITTER_BUFFER_MODE_BUFFER: buffer packets between low/high watermarks.
+ * @RTP_JITTER_BUFFER_MODE_BUFFER: buffer packets between low/high watermarks.
  *    This mode is good for streaming communication.
- * RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized,
+ * @RTP_JITTER_BUFFER_MODE_SYNCED: sender and receiver clocks are synchronized,
  *    like #RTP_JITTER_BUFFER_MODE_SLAVE but skew is assumed to be 0. Good for
  *    low latency communication when sender and receiver clocks are
  *    synchronized and there is thus no clock skew.
- * RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.
+ * @RTP_JITTER_BUFFER_MODE_LAST: last buffer mode.
  *
  * The different buffer modes for a jitterbuffer.
  */
@@ -89,6 +88,7 @@
   gboolean       need_resync;
   GstClockTime   base_time;
   GstClockTime   base_rtptime;
+  GstClockTime   media_clock_base_time;
   guint32        clock_rate;
   GstClockTime   base_extrtp;
   GstClockTime   prev_out_time;
@@ -102,6 +102,14 @@
   gint64         skew;
   gint64         prev_send_diff;
   gboolean       buffering_disabled;
+
+  GMutex         clock_lock;
+  GstClock      *pipeline_clock;
+  GstClock      *media_clock;
+  gulong         media_clock_synced_id;
+  guint64        media_clock_offset;
+
+  gboolean       rfc7273_sync;
 };
 
 struct _RTPJitterBufferClass {
@@ -150,11 +158,18 @@
 void                  rtp_jitter_buffer_set_clock_rate   (RTPJitterBuffer *jbuf, guint32 clock_rate);
 guint32               rtp_jitter_buffer_get_clock_rate   (RTPJitterBuffer *jbuf);
 
+void                  rtp_jitter_buffer_set_media_clock  (RTPJitterBuffer *jbuf, GstClock * clock, guint64 clock_offset);
+void                  rtp_jitter_buffer_set_pipeline_clock (RTPJitterBuffer *jbuf, GstClock * clock);
+
+gboolean              rtp_jitter_buffer_get_rfc7273_sync (RTPJitterBuffer *jbuf);
+void                  rtp_jitter_buffer_set_rfc7273_sync (RTPJitterBuffer *jbuf, gboolean rfc7273_sync);
+
 void                  rtp_jitter_buffer_reset_skew       (RTPJitterBuffer *jbuf);
 
 gboolean              rtp_jitter_buffer_insert           (RTPJitterBuffer *jbuf,
                                                           RTPJitterBufferItem *item,
-                                                          gboolean *head, gint *percent);
+                                                          gboolean *head, gint *percent,
+                                                          GstClockTime base_time);
 
 void                  rtp_jitter_buffer_disable_buffering (RTPJitterBuffer *jbuf, gboolean disabled);
 
diff --git a/gst/rtpmanager/rtpsession.c b/gst/rtpmanager/rtpsession.c
index 091951d..8b33b6b 100644
--- a/gst/rtpmanager/rtpsession.c
+++ b/gst/rtpmanager/rtpsession.c
@@ -47,6 +47,7 @@
   SIGNAL_ON_TIMEOUT,
   SIGNAL_ON_SENDER_TIMEOUT,
   SIGNAL_ON_SENDING_RTCP,
+  SIGNAL_ON_APP_RTCP,
   SIGNAL_ON_FEEDBACK_RTCP,
   SIGNAL_SEND_RTCP,
   SIGNAL_SEND_RTCP_FULL,
@@ -297,6 +298,23 @@
       GST_TYPE_BUFFER | G_SIGNAL_TYPE_STATIC_SCOPE, G_TYPE_BOOLEAN);
 
   /**
+   * RTPSession::on-app-rtcp:
+   * @session: the object which received the signal
+   * @subtype: The subtype of the packet
+   * @ssrc: The SSRC/CSRC of the packet
+   * @name: The name of the packet
+   * @data: a #GstBuffer with the application-dependant data or %NULL if
+   * there was no data
+   *
+   * Notify that a RTCP APP packet has been received
+   */
+  rtp_session_signals[SIGNAL_ON_APP_RTCP] =
+      g_signal_new ("on-app-rtcp", G_TYPE_FROM_CLASS (klass),
+      G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (RTPSessionClass, on_app_rtcp),
+      NULL, NULL, g_cclosure_marshal_generic, G_TYPE_NONE, 4,
+      G_TYPE_UINT, G_TYPE_UINT, G_TYPE_STRING, GST_TYPE_BUFFER);
+
+  /**
    * RTPSession::on-feedback-rtcp:
    * @session: the object which received the signal
    * @type: Type of RTCP packet, will be %GST_RTCP_TYPE_RTPFB or
@@ -2375,7 +2393,11 @@
 
       value = g_strndup ((const gchar *) data, len);
 
-      gst_structure_set (sdes, name, G_TYPE_STRING, value, NULL);
+      if (g_utf8_validate (value, -1, NULL)) {
+        gst_structure_set (sdes, name, G_TYPE_STRING, value, NULL);
+      } else {
+        GST_WARNING ("ignore SDES field %s with non-utf8 data %s", name, value);
+      }
 
       g_free (name);
       g_free (value);
@@ -2512,6 +2534,33 @@
     RTPPacketInfo * pinfo)
 {
   GST_DEBUG ("received APP");
+
+  if (g_signal_has_handler_pending (sess,
+          rtp_session_signals[SIGNAL_ON_APP_RTCP], 0, TRUE)) {
+    GstBuffer *data_buffer = NULL;
+    guint16 data_length;
+    gchar name[5];
+
+    data_length = gst_rtcp_packet_app_get_data_length (packet) * 4;
+    if (data_length > 0) {
+      guint8 *data = gst_rtcp_packet_app_get_data (packet);
+      data_buffer = gst_buffer_copy_region (packet->rtcp->buffer,
+          GST_BUFFER_COPY_MEMORY, data - packet->rtcp->map.data, data_length);
+      GST_BUFFER_PTS (data_buffer) = pinfo->running_time;
+    }
+
+    memcpy (name, gst_rtcp_packet_app_get_name (packet), 4);
+    name[4] = '\0';
+
+    RTP_SESSION_UNLOCK (sess);
+    g_signal_emit (sess, rtp_session_signals[SIGNAL_ON_APP_RTCP], 0,
+        gst_rtcp_packet_app_get_subtype (packet),
+        gst_rtcp_packet_app_get_ssrc (packet), name, data_buffer);
+    RTP_SESSION_LOCK (sess);
+
+    if (data_buffer)
+      gst_buffer_unref (data_buffer);
+  }
 }
 
 static gboolean
@@ -2526,6 +2575,11 @@
     GstClockTime round_trip_in_ns = gst_util_uint64_scale (round_trip,
         GST_SECOND, 65536);
 
+    /* Sanity check to avoid always ignoring PLI/FIR if we receive RTCP
+     * packets with erroneous values resulting in crazy high RTT. */
+    if (round_trip_in_ns > 5 * GST_SECOND)
+      round_trip_in_ns = GST_SECOND / 2;
+
     if (current_time - sess->last_keyframe_request < 2 * round_trip_in_ns) {
       GST_DEBUG ("Ignoring %s request because one was send without one "
           "RTT (%" GST_TIME_FORMAT " < %" GST_TIME_FORMAT ")",
@@ -4032,7 +4086,7 @@
     empty_buffer = gst_buffer_get_size (buffer) == 0;
 
     if (empty_buffer)
-      g_warning ("rtpsession: Trying to send an empty RTCP packet");
+      GST_ERROR ("rtpsession: Trying to send an empty RTCP packet");
 
     if (sess->callbacks.send_rtcp &&
         !empty_buffer && (do_not_suppress || !data.may_suppress)) {
diff --git a/gst/rtpmanager/rtpsession.h b/gst/rtpmanager/rtpsession.h
index 3d99359..9fa9327 100644
--- a/gst/rtpmanager/rtpsession.h
+++ b/gst/rtpmanager/rtpsession.h
@@ -309,6 +309,8 @@
   void (*on_sender_timeout) (RTPSession *sess, RTPSource *source);
   gboolean (*on_sending_rtcp) (RTPSession *sess, GstBuffer *buffer,
       gboolean early);
+  void (*on_app_rtcp)       (RTPSession *sess, guint subtype, guint ssrc,
+      const gchar *name, GstBuffer *data);
   void (*on_feedback_rtcp)  (RTPSession *sess, guint type, guint fbtype,
       guint sender_ssrc, guint media_ssrc, GstBuffer *fci);
   gboolean (*send_rtcp)     (RTPSession *sess, GstClockTime max_delay);
diff --git a/gst/rtpmanager/rtpsource.c b/gst/rtpmanager/rtpsource.c
index 067f9f1..b0177d4 100644
--- a/gst/rtpmanager/rtpsource.c
+++ b/gst/rtpmanager/rtpsource.c
@@ -1143,7 +1143,7 @@
       g_queue_clear (src->packets);
 
       /* duplicate or reordered packet, will be filtered by jitterbuffer. */
-      GST_WARNING ("duplicate or reordered packet (seqnr %u, expected %u)",
+      GST_INFO ("duplicate or reordered packet (seqnr %u, expected %u)",
           seqnr, expected);
     }
   }
@@ -1496,7 +1496,8 @@
       t_rtp -= gst_util_uint64_scale_int (diff, src->clock_rate, GST_SECOND);
     }
   } else {
-    GST_WARNING ("no clock-rate, cannot interpolate rtp time");
+    GST_WARNING ("no clock-rate, cannot interpolate rtp time for SSRC %u",
+        src->ssrc);
   }
 
   /* convert the NTP time in nanoseconds to 32.32 fixed point */
diff --git a/gst/rtpmanager/rtpstats.c b/gst/rtpmanager/rtpstats.c
index 984bc9f..cc25dbf 100644
--- a/gst/rtpmanager/rtpstats.c
+++ b/gst/rtpmanager/rtpstats.c
@@ -27,6 +27,7 @@
   ctx->clock_rate = clock_rate;
   ctx->probed = FALSE;
   ctx->avg_packet_rate = -1;
+  ctx->last_ts = -1;
 }
 
 guint32
@@ -41,15 +42,16 @@
     return ctx->avg_packet_rate;
   }
 
+  new_ts = ctx->last_ts;
+  gst_rtp_buffer_ext_timestamp (&new_ts, ts);
+
   if (!ctx->probed) {
     ctx->last_seqnum = seqnum;
-    ctx->last_ts = ts;
+    ctx->last_ts = new_ts;
     ctx->probed = TRUE;
     return ctx->avg_packet_rate;
   }
 
-  new_ts = ctx->last_ts;
-  gst_rtp_buffer_ext_timestamp (&new_ts, ts);
   diff_seqnum = gst_rtp_buffer_compare_seqnum (ctx->last_seqnum, seqnum);
   if (diff_seqnum <= 0 || new_ts <= ctx->last_ts) {
     return ctx->avg_packet_rate;
@@ -64,6 +66,7 @@
    * but it will go down again slowly.
    * This is useful for bursty cases, where a lot of packets are close
    * to each other and should allow a higher reorder/dropout there.
+   * Round up the new average.
    */
   if (ctx->avg_packet_rate > new_packet_rate) {
     ctx->avg_packet_rate = (7 * ctx->avg_packet_rate + new_packet_rate + 7) / 8;
diff --git a/gst/rtsp/Makefile.in b/gst/rtsp/Makefile.in
index 44d9127..e550688 100644
--- a/gst/rtsp/Makefile.in
+++ b/gst/rtsp/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/rtsp/gstrtpdec.c b/gst/rtsp/gstrtpdec.c
index e24927b..3cf7c79 100644
--- a/gst/rtsp/gstrtpdec.c
+++ b/gst/rtsp/gstrtpdec.c
@@ -325,15 +325,15 @@
   gstelement_class->release_pad = GST_DEBUG_FUNCPTR (gst_rtp_dec_release_pad);
 
   /* sink pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dec_recv_rtp_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dec_recv_rtcp_sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dec_recv_rtp_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dec_recv_rtcp_sink_template);
   /* src pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dec_recv_rtp_src_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_rtp_dec_rtcp_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dec_recv_rtp_src_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_rtp_dec_rtcp_src_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "RTP Decoder",
       "Codec/Parser/Network",
@@ -357,6 +357,7 @@
 
   rtpdec = GST_RTP_DEC (object);
 
+  gst_object_unref (rtpdec->provided_clock);
   g_slist_foreach (rtpdec->sessions, (GFunc) free_session, NULL);
   g_slist_free (rtpdec->sessions);
 
diff --git a/gst/rtsp/gstrtspsrc.c b/gst/rtsp/gstrtspsrc.c
index dc182c4..189adc2 100644
--- a/gst/rtsp/gstrtspsrc.c
+++ b/gst/rtsp/gstrtspsrc.c
@@ -227,6 +227,7 @@
 #define DEFAULT_NTP_TIME_SOURCE  NTP_TIME_SOURCE_NTP
 #define DEFAULT_USER_AGENT       "GStreamer/" PACKAGE_VERSION
 #define DEFAULT_MAX_RTCP_RTP_TIME_DIFF 1000
+#define DEFAULT_RFC7273_SYNC         FALSE
 
 enum
 {
@@ -265,7 +266,8 @@
   PROP_DO_RETRANSMISSION,
   PROP_NTP_TIME_SOURCE,
   PROP_USER_AGENT,
-  PROP_MAX_RTCP_RTP_TIME_DIFF
+  PROP_MAX_RTCP_RTP_TIME_DIFF,
+  PROP_RFC7273_SYNC
 };
 
 #define GST_TYPE_RTSP_NAT_METHOD (gst_rtsp_nat_method_get_type())
@@ -732,6 +734,12 @@
           DEFAULT_MAX_RTCP_RTP_TIME_DIFF,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
+  g_object_class_install_property (gobject_class, PROP_RFC7273_SYNC,
+      g_param_spec_boolean ("rfc7273-sync", "Sync on RFC7273 clock",
+          "Synchronize received streams to the RFC7273 clock "
+          "(requires clock and offset to be provided)", DEFAULT_RFC7273_SYNC,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+
   /**
    * GstRTSPSrc::handle-request:
    * @rtspsrc: a #GstRTSPSrc
@@ -828,8 +836,7 @@
   gstelement_class->provide_clock = gst_rtspsrc_provide_clock;
   gstelement_class->change_state = gst_rtspsrc_change_state;
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&rtptemplate));
+  gst_element_class_add_static_pad_template (gstelement_class, &rtptemplate);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "RTSP packet receiver", "Source/Network",
@@ -880,6 +887,7 @@
   src->ntp_time_source = DEFAULT_NTP_TIME_SOURCE;
   src->user_agent = g_strdup (DEFAULT_USER_AGENT);
   src->max_rtcp_rtp_time_diff = DEFAULT_MAX_RTCP_RTP_TIME_DIFF;
+  src->rfc7273_sync = DEFAULT_RFC7273_SYNC;
 
   /* get a list of all extensions */
   src->extensions = gst_rtsp_ext_list_get ();
@@ -898,6 +906,8 @@
   src->state = GST_RTSP_STATE_INVALID;
 
   GST_OBJECT_FLAG_SET (src, GST_ELEMENT_FLAG_SOURCE);
+  gst_bin_set_suppressed_flags (GST_BIN (src),
+      GST_ELEMENT_FLAG_SOURCE | GST_ELEMENT_FLAG_SINK);
 }
 
 static void
@@ -1159,6 +1169,9 @@
     case PROP_MAX_RTCP_RTP_TIME_DIFF:
       rtspsrc->max_rtcp_rtp_time_diff = g_value_get_int (value);
       break;
+    case PROP_RFC7273_SYNC:
+      rtspsrc->rfc7273_sync = g_value_get_boolean (value);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -1305,6 +1318,9 @@
     case PROP_MAX_RTCP_RTP_TIME_DIFF:
       g_value_set_int (value, rtspsrc->max_rtcp_rtp_time_diff);
       break;
+    case PROP_RFC7273_SYNC:
+      g_value_set_boolean (value, rtspsrc->rfc7273_sync);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -2833,6 +2849,10 @@
       gst_value_deserialize (&rtcp_auth, str);
       gst_structure_get (s, "srtp-key", GST_TYPE_BUFFER, &buf, NULL);
 
+      g_object_set_property (G_OBJECT (stream->srtpenc), "rtp-cipher",
+          &rtcp_cipher);
+      g_object_set_property (G_OBJECT (stream->srtpenc), "rtp-auth",
+          &rtcp_auth);
       g_object_set_property (G_OBJECT (stream->srtpenc), "rtcp-cipher",
           &rtcp_cipher);
       g_object_set_property (G_OBJECT (stream->srtpenc), "rtcp-auth",
@@ -3020,6 +3040,10 @@
         g_object_set (src->manager, "ntp-sync", src->ntp_sync, NULL);
       }
 
+      if (g_object_class_find_property (klass, "rfc7273-sync")) {
+        g_object_set (src->manager, "rfc7273-sync", src->rfc7273_sync, 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);
@@ -3596,9 +3620,6 @@
     g_object_set (G_OBJECT (stream->fakesrc), "filltype", 3, "num-buffers", 5,
         "sizetype", 2, "sizemax", 200, "silent", TRUE, NULL);
 
-    /* we don't want to consider this a sink */
-    GST_OBJECT_FLAG_UNSET (stream->udpsink[0], GST_ELEMENT_FLAG_SINK);
-
     /* keep everything locked */
     gst_element_set_locked_state (stream->udpsink[0], TRUE);
     gst_element_set_locked_state (stream->fakesrc, TRUE);
@@ -3645,9 +3666,6 @@
       g_object_unref (socket);
     }
 
-    /* we don't want to consider this a sink */
-    GST_OBJECT_FLAG_UNSET (stream->udpsink[1], GST_ELEMENT_FLAG_SINK);
-
     /* we keep this playing always */
     gst_element_set_locked_state (stream->udpsink[1], TRUE);
     gst_element_set_state (stream->udpsink[1], GST_STATE_PLAYING);
@@ -4876,7 +4894,7 @@
     GST_ELEMENT_WARNING (src, RESOURCE, READ, (NULL),
         ("Could not receive any UDP packets for %.4f seconds, maybe your "
             "firewall is blocking it. Retrying using a tcp connection.",
-            gst_guint64_to_gdouble (src->udp_timeout / 1000000.0)));
+            gst_guint64_to_gdouble (src->udp_timeout) / 1000000.0));
   }
 
   /* unless redirect, open new connection using tcp */
@@ -4898,7 +4916,7 @@
     GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL),
         ("Could not receive any UDP packets for %.4f seconds, maybe your "
             "firewall is blocking it. No other protocols to try.",
-            gst_guint64_to_gdouble (src->udp_timeout / 1000000.0)));
+            gst_guint64_to_gdouble (src->udp_timeout) / 1000000.0));
     return GST_RTSP_ERROR;
   }
 open_failed:
@@ -5097,9 +5115,7 @@
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       /* for fatal errors we post an error message, post the error before the
        * EOS so the app knows about the error first. */
-      GST_ELEMENT_ERROR (src, STREAM, FAILED,
-          ("Internal data flow error."),
-          ("streaming task paused, reason %s (%d)", reason, ret));
+      GST_ELEMENT_FLOW_ERROR (src, ret);
       gst_rtspsrc_push_event (src, gst_event_new_eos ());
     }
     gst_rtspsrc_loop_send_cmd (src, CMD_WAIT, CMD_LOOP);
@@ -5961,8 +5977,10 @@
 
   buf = gst_buffer_new_wrapped (key_data, KEY_SIZE);
 
-  caps = gst_caps_new_simple ("application/x-srtp",
+  caps = gst_caps_new_simple ("application/x-srtcp",
       "srtp-key", GST_TYPE_BUFFER, buf,
+      "srtp-cipher", G_TYPE_STRING, "aes-128-icm",
+      "srtp-auth", G_TYPE_STRING, "hmac-sha1-80",
       "srtcp-cipher", G_TYPE_STRING, "aes-128-icm",
       "srtcp-auth", G_TYPE_STRING, "hmac-sha1-80", NULL);
 
diff --git a/gst/rtsp/gstrtspsrc.h b/gst/rtsp/gstrtspsrc.h
index e317c56..88bf305 100644
--- a/gst/rtsp/gstrtspsrc.h
+++ b/gst/rtsp/gstrtspsrc.h
@@ -243,6 +243,7 @@
   gint              ntp_time_source;
   gchar            *user_agent;
   GstClockTime      max_rtcp_rtp_time_diff;
+  gboolean          rfc7273_sync;
 
   /* state */
   GstRTSPState       state;
diff --git a/gst/shapewipe/Makefile.in b/gst/shapewipe/Makefile.in
index 3fde0ae..aecbc8e 100644
--- a/gst/shapewipe/Makefile.in
+++ b/gst/shapewipe/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/shapewipe/gstshapewipe.c b/gst/shapewipe/gstshapewipe.c
index 1a82a50..3a0dfda 100644
--- a/gst/shapewipe/gstshapewipe.c
+++ b/gst/shapewipe/gstshapewipe.c
@@ -156,12 +156,12 @@
       "Adds a shape wipe transition to a video stream",
       "Sebastian Dröge <sebastian.droege@collabora.co.uk>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_sink_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&mask_sink_pad_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_sink_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &mask_sink_pad_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &src_pad_template);
 }
 
 static void
diff --git a/gst/smpte/Makefile.in b/gst/smpte/Makefile.in
index 8916318..a3a877a 100644
--- a/gst/smpte/Makefile.in
+++ b/gst/smpte/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/smpte/gstsmpte.c b/gst/smpte/gstsmpte.c
index 33d4284..18c522c 100644
--- a/gst/smpte/gstsmpte.c
+++ b/gst/smpte/gstsmpte.c
@@ -189,12 +189,12 @@
 
   gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_smpte_change_state);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_smpte_sink1_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_smpte_sink2_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_smpte_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_smpte_sink1_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_smpte_sink2_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_smpte_src_template);
   gst_element_class_set_static_metadata (gstelement_class, "SMPTE transitions",
       "Filter/Editor/Video",
       "Apply the standard SMPTE transitions on video images",
diff --git a/gst/smpte/gstsmptealpha.c b/gst/smpte/gstsmptealpha.c
index 06c56ae..750748f 100644
--- a/gst/smpte/gstsmptealpha.c
+++ b/gst/smpte/gstsmptealpha.c
@@ -205,10 +205,10 @@
   vfilter_class->transform_frame =
       GST_DEBUG_FUNCPTR (gst_smpte_alpha_transform_frame);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_smpte_alpha_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_smpte_alpha_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_smpte_alpha_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_smpte_alpha_src_template);
   gst_element_class_set_static_metadata (element_class, "SMPTE transitions",
       "Filter/Editor/Video",
       "Apply the standard SMPTE transitions as alpha on video images",
diff --git a/gst/spectrum/Makefile.in b/gst/spectrum/Makefile.in
index 528b843..6d5a75e 100644
--- a/gst/spectrum/Makefile.in
+++ b/gst/spectrum/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/udp/Makefile.in b/gst/udp/Makefile.in
index 9d05a84..bf9c930 100644
--- a/gst/udp/Makefile.in
+++ b/gst/udp/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/udp/gstdynudpsink.c b/gst/udp/gstdynudpsink.c
index f9cd5a2..78e6d75 100644
--- a/gst/udp/gstdynudpsink.c
+++ b/gst/udp/gstdynudpsink.c
@@ -130,8 +130,7 @@
           "Port to bind the socket to", 0, G_MAXUINT16,
           UDP_DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "UDP packet sender",
       "Sink/Network",
diff --git a/gst/udp/gstmultiudpsink.c b/gst/udp/gstmultiudpsink.c
index ab1d93a..379986c 100644
--- a/gst/udp/gstmultiudpsink.c
+++ b/gst/udp/gstmultiudpsink.c
@@ -350,8 +350,7 @@
           "Port to bind the socket to", 0, G_MAXUINT16,
           DEFAULT_BIND_PORT, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_template);
 
   gst_element_class_set_static_metadata (gstelement_class, "UDP packet sender",
       "Sink/Network",
diff --git a/gst/udp/gstudpsrc.c b/gst/udp/gstudpsrc.c
index 99bb347..d60a014 100644
--- a/gst/udp/gstudpsrc.c
+++ b/gst/udp/gstudpsrc.c
@@ -158,8 +158,10 @@
 
   guint ifindex;
 #ifndef G_OS_WIN32
+#ifndef __NetBSD__
   struct in_addr spec_dst;
 #endif
+#endif
   struct in_addr addr;
 };
 
@@ -202,8 +204,10 @@
   message = g_object_new (GST_TYPE_IP_PKTINFO_MESSAGE, NULL);
   message->ifindex = pktinfo->ipi_ifindex;
 #ifndef G_OS_WIN32
+#ifndef __NetBSD__
   message->spec_dst = pktinfo->ipi_spec_dst;
 #endif
+#endif
   message->addr = pktinfo->ipi_addr;
 
   return G_SOCKET_CONTROL_MESSAGE (message);
@@ -428,6 +432,7 @@
 #define UDP_DEFAULT_AUTO_MULTICAST     TRUE
 #define UDP_DEFAULT_REUSE              TRUE
 #define UDP_DEFAULT_LOOP               TRUE
+#define UDP_DEFAULT_RETRIEVE_SENDER_ADDRESS TRUE
 
 enum
 {
@@ -447,7 +452,8 @@
   PROP_AUTO_MULTICAST,
   PROP_REUSE,
   PROP_ADDRESS,
-  PROP_LOOP
+  PROP_LOOP,
+  PROP_RETRIEVE_SENDER_ADDRESS
 };
 
 static void gst_udpsrc_uri_handler_init (gpointer g_iface, gpointer iface_data);
@@ -567,14 +573,36 @@
           "Address to receive packets for. This is equivalent to the "
           "multicast-group property for now", UDP_DEFAULT_MULTICAST_GROUP,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstUDPSrc::loop:
+   *
+   * Can be used to disable multicast loopback.
+   *
+   * Since: 1.8
+   */
   g_object_class_install_property (gobject_class, PROP_LOOP,
       g_param_spec_boolean ("loop", "Multicast Loopback",
           "Used for setting the multicast loop parameter. TRUE = enable,"
           " FALSE = disable", UDP_DEFAULT_LOOP,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+  /**
+   * GstUDPSrc::retrieve-sender-address:
+   *
+   * Whether to retrieve the sender address and add it to the buffers as
+   * meta. Disabling this might result in minor performance improvements
+   * in certain scenarios.
+   *
+   * Since: 1.10
+   */
+  g_object_class_install_property (gobject_class, PROP_RETRIEVE_SENDER_ADDRESS,
+      g_param_spec_boolean ("retrieve-sender-address",
+          "Retrieve Sender Address",
+          "Whether to retrieve the sender address and add it to buffers as "
+          "meta. Disabling this might result in minor performance improvements "
+          "in certain scenarios", UDP_DEFAULT_RETRIEVE_SENDER_ADDRESS,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_template);
 
   gst_element_class_set_static_metadata (gstelement_class,
       "UDP packet receiver", "Source/Network",
@@ -612,6 +640,7 @@
   udpsrc->used_socket = UDP_DEFAULT_USED_SOCKET;
   udpsrc->reuse = UDP_DEFAULT_REUSE;
   udpsrc->loop = UDP_DEFAULT_LOOP;
+  udpsrc->retrieve_sender_address = UDP_DEFAULT_RETRIEVE_SENDER_ADDRESS;
 
   /* configure basesrc to be a live source */
   gst_base_src_set_live (GST_BASE_SRC (udpsrc), TRUE);
@@ -811,6 +840,7 @@
   GstUDPSrc *udpsrc;
   GstBuffer *outbuf = NULL;
   GSocketAddress *saddr = NULL;
+  GSocketAddress **p_saddr;
   gint flags = G_SOCKET_MSG_NONE;
   gboolean try_again;
   GError *err = NULL;
@@ -824,6 +854,9 @@
   if (!gst_udpsrc_ensure_mem (udpsrc))
     goto memory_alloc_error;
 
+  /* Retrieve sender address unless we've been configured not to do so */
+  p_saddr = (udpsrc->retrieve_sender_address) ? &saddr : NULL;
+
 retry:
 
   do {
@@ -864,7 +897,7 @@
   }
 
   res =
-      g_socket_receive_message (udpsrc->used_socket, &saddr, udpsrc->vec, 2,
+      g_socket_receive_message (udpsrc->used_socket, p_saddr, udpsrc->vec, 2,
       &msgs, &n_msgs, &flags, udpsrc->cancellable, &err);
 
   if (G_UNLIKELY (res < 0)) {
@@ -1163,6 +1196,9 @@
     case PROP_LOOP:
       udpsrc->loop = g_value_get_boolean (value);
       break;
+    case PROP_RETRIEVE_SENDER_ADDRESS:
+      udpsrc->retrieve_sender_address = g_value_get_boolean (value);
+      break;
     default:
       break;
   }
@@ -1220,6 +1256,9 @@
     case PROP_LOOP:
       g_value_set_boolean (value, udpsrc->loop);
       break;
+    case PROP_RETRIEVE_SENDER_ADDRESS:
+      g_value_set_boolean (value, udpsrc->retrieve_sender_address);
+      break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
diff --git a/gst/udp/gstudpsrc.h b/gst/udp/gstudpsrc.h
index a476483..96f844b 100644
--- a/gst/udp/gstudpsrc.h
+++ b/gst/udp/gstudpsrc.h
@@ -61,6 +61,7 @@
   gboolean   auto_multicast;
   gboolean   reuse;
   gboolean   loop;
+  gboolean   retrieve_sender_address;
 
   /* stats */
   guint      max_size;
diff --git a/gst/videobox/Makefile.in b/gst/videobox/Makefile.in
index 8ef3c64..9ed9882 100644
--- a/gst/videobox/Makefile.in
+++ b/gst/videobox/Makefile.in
@@ -121,6 +121,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -369,6 +370,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -475,6 +477,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -542,6 +547,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/videobox/gstvideobox.c b/gst/videobox/gstvideobox.c
index 4c0ed36..f8f984c 100644
--- a/gst/videobox/gstvideobox.c
+++ b/gst/videobox/gstvideobox.c
@@ -2528,10 +2528,10 @@
       "Resizes a video by adding borders or cropping",
       "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_box_sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_video_box_src_template));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_box_sink_template);
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_video_box_src_template);
 }
 
 static void
diff --git a/gst/videocrop/Makefile.in b/gst/videocrop/Makefile.in
index 38445e4..dc9899c 100644
--- a/gst/videocrop/Makefile.in
+++ b/gst/videocrop/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/videocrop/gstaspectratiocrop.c b/gst/videocrop/gstaspectratiocrop.c
index 037d326..2c1d9d7 100644
--- a/gst/videocrop/gstaspectratiocrop.c
+++ b/gst/videocrop/gstaspectratiocrop.c
@@ -193,10 +193,8 @@
       "Crops video into a user-defined aspect-ratio",
       "Thijs Vermeir <thijsvermeir@gmail.com>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 }
 
 static void
diff --git a/gst/videocrop/gstvideocrop.c b/gst/videocrop/gstvideocrop.c
index 99360d5..d9a8f1a 100644
--- a/gst/videocrop/gstvideocrop.c
+++ b/gst/videocrop/gstvideocrop.c
@@ -180,24 +180,26 @@
   g_object_class_install_property (gobject_class, PROP_LEFT,
       g_param_spec_int ("left", "Left",
           "Pixels to crop at left (-1 to auto-crop)", -1, G_MAXINT, 0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
   g_object_class_install_property (gobject_class, PROP_RIGHT,
       g_param_spec_int ("right", "Right",
           "Pixels to crop at right (-1 to auto-crop)", -1, G_MAXINT, 0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
   g_object_class_install_property (gobject_class, PROP_TOP,
-      g_param_spec_int ("top", "Top",
-          "Pixels to crop at top (-1 to auto-crop)", -1, G_MAXINT, 0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+      g_param_spec_int ("top", "Top", "Pixels to crop at top (-1 to auto-crop)",
+          -1, G_MAXINT, 0,
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
   g_object_class_install_property (gobject_class, PROP_BOTTOM,
       g_param_spec_int ("bottom", "Bottom",
           "Pixels to crop at bottom (-1 to auto-crop)", -1, G_MAXINT, 0,
-          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS |
+          GST_PARAM_MUTABLE_PLAYING));
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
   gst_element_class_set_static_metadata (element_class, "Crop",
       "Filter/Effect/Video",
       "Crops video into a user-defined region",
diff --git a/gst/videofilter/Makefile.in b/gst/videofilter/Makefile.in
index 74c2fa5..9c6e7ed 100644
--- a/gst/videofilter/Makefile.in
+++ b/gst/videofilter/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/videofilter/gstgamma.c b/gst/videofilter/gstgamma.c
index 0e143b6..fd4409f 100644
--- a/gst/videofilter/gstgamma.c
+++ b/gst/videofilter/gstgamma.c
@@ -125,10 +125,10 @@
       "Video gamma correction", "Filter/Effect/Video",
       "Adjusts gamma on a video stream", "Arwed v. Merkatz <v.merkatz@gmx.net");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gamma_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_gamma_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gamma_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_gamma_src_template);
 
   trans_class->before_transform =
       GST_DEBUG_FUNCPTR (gst_gamma_before_transform);
diff --git a/gst/videofilter/gstvideobalance.c b/gst/videofilter/gstvideobalance.c
index 49cad51..068bcd7 100644
--- a/gst/videofilter/gstvideobalance.c
+++ b/gst/videofilter/gstvideobalance.c
@@ -598,10 +598,10 @@
       "Adjusts brightness, contrast, hue, saturation on a video stream",
       "David Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_balance_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_balance_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_balance_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_balance_src_template);
 
   trans_class->before_transform =
       GST_DEBUG_FUNCPTR (gst_video_balance_before_transform);
diff --git a/gst/videofilter/gstvideoflip.c b/gst/videofilter/gstvideoflip.c
index 2111cef..c6132f5 100644
--- a/gst/videofilter/gstvideoflip.c
+++ b/gst/videofilter/gstvideoflip.c
@@ -52,7 +52,8 @@
 enum
 {
   PROP_0,
-  PROP_METHOD
+  PROP_METHOD,
+  PROP_VIDEO_DIRECTION
       /* FILL ME */
 };
 
@@ -112,8 +113,17 @@
   return video_flip_method_type;
 }
 
+static void
+gst_video_flip_video_direction_interface_init (GstVideoDirectionInterface *
+    iface)
+{
+  /* We implement the video-direction property */
+}
+
 #define gst_video_flip_parent_class parent_class
-G_DEFINE_TYPE (GstVideoFlip, gst_video_flip, GST_TYPE_VIDEO_FILTER);
+G_DEFINE_TYPE_WITH_CODE (GstVideoFlip, gst_video_flip, GST_TYPE_VIDEO_FILTER,
+    G_IMPLEMENT_INTERFACE (GST_TYPE_VIDEO_DIRECTION,
+        gst_video_flip_video_direction_interface_init));
 
 static GstCaps *
 gst_video_flip_transform_caps (GstBaseTransform * trans,
@@ -133,10 +143,10 @@
         gst_structure_get_int (structure, "height", &height)) {
 
       switch (videoflip->active_method) {
-        case GST_VIDEO_FLIP_METHOD_90R:
-        case GST_VIDEO_FLIP_METHOD_90L:
-        case GST_VIDEO_FLIP_METHOD_TRANS:
-        case GST_VIDEO_FLIP_METHOD_OTHER:
+        case GST_VIDEO_ORIENTATION_90R:
+        case GST_VIDEO_ORIENTATION_90L:
+        case GST_VIDEO_ORIENTATION_UL_LR:
+        case GST_VIDEO_ORIENTATION_UR_LL:
           gst_structure_set (structure, "width", G_TYPE_INT, height,
               "height", G_TYPE_INT, width, NULL);
           if (gst_structure_get_fraction (structure, "pixel-aspect-ratio",
@@ -151,13 +161,16 @@
             }
           }
           break;
-        case GST_VIDEO_FLIP_METHOD_IDENTITY:
-        case GST_VIDEO_FLIP_METHOD_180:
-        case GST_VIDEO_FLIP_METHOD_HORIZ:
-        case GST_VIDEO_FLIP_METHOD_VERT:
+        case GST_VIDEO_ORIENTATION_IDENTITY:
+        case GST_VIDEO_ORIENTATION_180:
+        case GST_VIDEO_ORIENTATION_HORIZ:
+        case GST_VIDEO_ORIENTATION_VERT:
           gst_structure_set (structure, "width", G_TYPE_INT, width,
               "height", G_TYPE_INT, height, NULL);
           break;
+        case GST_VIDEO_ORIENTATION_CUSTOM:
+          GST_WARNING_OBJECT (videoflip, "unsuported custom orientation");
+          break;
         default:
           g_assert_not_reached ();
           break;
@@ -221,7 +234,7 @@
   dest_v_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 2);
 
   switch (videoflip->active_method) {
-    case GST_VIDEO_FLIP_METHOD_90R:
+    case GST_VIDEO_ORIENTATION_90R:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -250,7 +263,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_90L:
+    case GST_VIDEO_ORIENTATION_90L:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -279,7 +292,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_180:
+    case GST_VIDEO_ORIENTATION_180:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -308,7 +321,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_HORIZ:
+    case GST_VIDEO_ORIENTATION_HORIZ:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -337,7 +350,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_VERT:
+    case GST_VIDEO_ORIENTATION_VERT:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -366,7 +379,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_TRANS:
+    case GST_VIDEO_ORIENTATION_UL_LR:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -392,7 +405,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_OTHER:
+    case GST_VIDEO_ORIENTATION_UR_LL:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -421,7 +434,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+    case GST_VIDEO_ORIENTATION_IDENTITY:
       g_assert_not_reached ();
       break;
     default:
@@ -465,7 +478,7 @@
   dest_uv_height = GST_VIDEO_FRAME_COMP_HEIGHT (dest, 1);
 
   switch (videoflip->active_method) {
-    case GST_VIDEO_FLIP_METHOD_90R:
+    case GST_VIDEO_ORIENTATION_90R:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -487,7 +500,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_90L:
+    case GST_VIDEO_ORIENTATION_90L:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -509,7 +522,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_180:
+    case GST_VIDEO_ORIENTATION_180:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -532,7 +545,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_HORIZ:
+    case GST_VIDEO_ORIENTATION_HORIZ:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -554,7 +567,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_VERT:
+    case GST_VIDEO_ORIENTATION_VERT:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -576,7 +589,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_TRANS:
+    case GST_VIDEO_ORIENTATION_UL_LR:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -597,7 +610,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_OTHER:
+    case GST_VIDEO_ORIENTATION_UR_LL:
       /* Flip Y */
       s = GST_VIDEO_FRAME_PLANE_DATA (src, 0);
       d = GST_VIDEO_FRAME_PLANE_DATA (dest, 0);
@@ -620,7 +633,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+    case GST_VIDEO_ORIENTATION_IDENTITY:
       g_assert_not_reached ();
       break;
     default:
@@ -652,7 +665,7 @@
   bpp = GST_VIDEO_FRAME_COMP_PSTRIDE (src, 0);
 
   switch (videoflip->active_method) {
-    case GST_VIDEO_FLIP_METHOD_90R:
+    case GST_VIDEO_ORIENTATION_90R:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -662,7 +675,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_90L:
+    case GST_VIDEO_ORIENTATION_90L:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -672,7 +685,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_180:
+    case GST_VIDEO_ORIENTATION_180:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -682,7 +695,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_HORIZ:
+    case GST_VIDEO_ORIENTATION_HORIZ:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -692,7 +705,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_VERT:
+    case GST_VIDEO_ORIENTATION_VERT:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -702,7 +715,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_TRANS:
+    case GST_VIDEO_ORIENTATION_UL_LR:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -711,7 +724,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_OTHER:
+    case GST_VIDEO_ORIENTATION_UR_LL:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x++) {
           for (z = 0; z < bpp; z++) {
@@ -721,7 +734,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+    case GST_VIDEO_ORIENTATION_IDENTITY:
       g_assert_not_reached ();
       break;
     default:
@@ -762,7 +775,7 @@
   bpp = y_stride;
 
   switch (videoflip->active_method) {
-    case GST_VIDEO_FLIP_METHOD_90R:
+    case GST_VIDEO_ORIENTATION_90R:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -789,7 +802,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_90L:
+    case GST_VIDEO_ORIENTATION_90L:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -814,7 +827,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_180:
+    case GST_VIDEO_ORIENTATION_180:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -838,7 +851,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_HORIZ:
+    case GST_VIDEO_ORIENTATION_HORIZ:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -861,7 +874,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_VERT:
+    case GST_VIDEO_ORIENTATION_VERT:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -884,7 +897,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_TRANS:
+    case GST_VIDEO_ORIENTATION_UL_LR:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -909,7 +922,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_OTHER:
+    case GST_VIDEO_ORIENTATION_UR_LL:
       for (y = 0; y < dh; y++) {
         for (x = 0; x < dw; x += 2) {
           guint8 u;
@@ -937,7 +950,7 @@
         }
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+    case GST_VIDEO_ORIENTATION_IDENTITY:
       g_assert_not_reached ();
       break;
     default:
@@ -961,10 +974,10 @@
 
   /* Check that they are correct */
   switch (vf->active_method) {
-    case GST_VIDEO_FLIP_METHOD_90R:
-    case GST_VIDEO_FLIP_METHOD_90L:
-    case GST_VIDEO_FLIP_METHOD_TRANS:
-    case GST_VIDEO_FLIP_METHOD_OTHER:
+    case GST_VIDEO_ORIENTATION_90R:
+    case GST_VIDEO_ORIENTATION_90L:
+    case GST_VIDEO_ORIENTATION_UL_LR:
+    case GST_VIDEO_ORIENTATION_UR_LL:
       if ((in_info->width != out_info->height) ||
           (in_info->height != out_info->width)) {
         GST_ERROR_OBJECT (vf, "we are inverting width and height but caps "
@@ -973,12 +986,12 @@
         goto beach;
       }
       break;
-    case GST_VIDEO_FLIP_METHOD_IDENTITY:
+    case GST_VIDEO_ORIENTATION_IDENTITY:
 
       break;
-    case GST_VIDEO_FLIP_METHOD_180:
-    case GST_VIDEO_FLIP_METHOD_HORIZ:
-    case GST_VIDEO_FLIP_METHOD_VERT:
+    case GST_VIDEO_ORIENTATION_180:
+    case GST_VIDEO_ORIENTATION_HORIZ:
+    case GST_VIDEO_ORIENTATION_VERT:
       if ((in_info->width != out_info->width) ||
           (in_info->height != out_info->height)) {
         GST_ERROR_OBJECT (vf, "we are keeping width and height but caps "
@@ -1039,11 +1052,17 @@
 }
 
 static void
-gst_video_flip_set_method (GstVideoFlip * videoflip, GstVideoFlipMethod method,
-    gboolean from_tag)
+gst_video_flip_set_method (GstVideoFlip * videoflip,
+    GstVideoOrientationMethod method, gboolean from_tag)
 {
   GST_OBJECT_LOCK (videoflip);
 
+  if (method == GST_VIDEO_ORIENTATION_CUSTOM) {
+    GST_WARNING_OBJECT (videoflip, "unsupported custom orientation");
+    GST_OBJECT_UNLOCK (videoflip);
+    return;
+  }
+
   /* Store updated method */
   if (from_tag)
     videoflip->tag_method = method;
@@ -1051,24 +1070,31 @@
     videoflip->method = method;
 
   /* Get the new method */
-  if (videoflip->method == GST_VIDEO_FLIP_METHOD_AUTO)
+  if (videoflip->method == GST_VIDEO_ORIENTATION_AUTO)
     method = videoflip->tag_method;
   else
     method = videoflip->method;
 
   if (method != videoflip->active_method) {
+    GEnumValue *active_method_enum, *method_enum;
     GstBaseTransform *btrans = GST_BASE_TRANSFORM (videoflip);
+    GEnumClass *enum_class =
+        g_type_class_ref (GST_TYPE_VIDEO_ORIENTATION_METHOD);
 
+    active_method_enum =
+        g_enum_get_value (enum_class, videoflip->active_method);
+    method_enum = g_enum_get_value (enum_class, method);
     GST_DEBUG_OBJECT (videoflip, "Changing method from %s to %s",
-        video_flip_methods[videoflip->active_method].value_nick,
-        video_flip_methods[method].value_nick);
+        active_method_enum ? active_method_enum->value_nick : "(nil)",
+        method_enum ? method_enum->value_nick : "(nil)");
+    g_type_class_unref (enum_class);
 
     videoflip->active_method = method;
 
     GST_OBJECT_UNLOCK (videoflip);
 
     gst_base_transform_set_passthrough (btrans,
-        method == GST_VIDEO_FLIP_METHOD_IDENTITY);
+        method == GST_VIDEO_ORIENTATION_IDENTITY);
     gst_base_transform_reconfigure_src (btrans);
   } else {
     GST_OBJECT_UNLOCK (videoflip);
@@ -1096,13 +1122,18 @@
 gst_video_flip_transform_frame (GstVideoFilter * vfilter,
     GstVideoFrame * in_frame, GstVideoFrame * out_frame)
 {
+  GEnumClass *enum_class;
+  GEnumValue *active_method_enum;
   GstVideoFlip *videoflip = GST_VIDEO_FLIP (vfilter);
 
   if (G_UNLIKELY (videoflip->process == NULL))
     goto not_negotiated;
 
+  enum_class = g_type_class_ref (GST_TYPE_VIDEO_ORIENTATION_METHOD);
+  active_method_enum = g_enum_get_value (enum_class, videoflip->active_method);
   GST_LOG_OBJECT (videoflip, "videoflip: flipping (%s)",
-      video_flip_methods[videoflip->active_method].value_nick);
+      active_method_enum ? active_method_enum->value_nick : "(nil)");
+  g_type_class_unref (enum_class);
 
   GST_OBJECT_LOCK (videoflip);
   videoflip->process (videoflip, out_frame, in_frame);
@@ -1138,31 +1169,31 @@
           gst_structure_get_double (structure, "pointer_y", &y)) {
         GST_DEBUG_OBJECT (vf, "converting %fx%f", x, y);
         switch (vf->active_method) {
-          case GST_VIDEO_FLIP_METHOD_90R:
+          case GST_VIDEO_ORIENTATION_90R:
             new_x = y;
             new_y = out_info->width - x;
             break;
-          case GST_VIDEO_FLIP_METHOD_90L:
+          case GST_VIDEO_ORIENTATION_90L:
             new_x = out_info->height - y;
             new_y = x;
             break;
-          case GST_VIDEO_FLIP_METHOD_OTHER:
+          case GST_VIDEO_ORIENTATION_UR_LL:
             new_x = out_info->height - y;
             new_y = out_info->width - x;
             break;
-          case GST_VIDEO_FLIP_METHOD_TRANS:
+          case GST_VIDEO_ORIENTATION_UL_LR:
             new_x = y;
             new_y = x;
             break;
-          case GST_VIDEO_FLIP_METHOD_180:
+          case GST_VIDEO_ORIENTATION_180:
             new_x = out_info->width - x;
             new_y = out_info->height - y;
             break;
-          case GST_VIDEO_FLIP_METHOD_HORIZ:
+          case GST_VIDEO_ORIENTATION_HORIZ:
             new_x = out_info->width - x;
             new_y = y;
             break;
-          case GST_VIDEO_FLIP_METHOD_VERT:
+          case GST_VIDEO_ORIENTATION_VERT:
             new_x = x;
             new_y = out_info->height - y;
             break;
@@ -1201,21 +1232,21 @@
 
       if (gst_tag_list_get_string (taglist, "image-orientation", &orientation)) {
         if (!g_strcmp0 ("rotate-0", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_IDENTITY, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_IDENTITY, TRUE);
         else if (!g_strcmp0 ("rotate-90", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_90R, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_90R, TRUE);
         else if (!g_strcmp0 ("rotate-180", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_180, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_180, TRUE);
         else if (!g_strcmp0 ("rotate-270", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_90L, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_90L, TRUE);
         else if (!g_strcmp0 ("flip-rotate-0", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_HORIZ, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_HORIZ, TRUE);
         else if (!g_strcmp0 ("flip-rotate-90", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_TRANS, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_UL_LR, TRUE);
         else if (!g_strcmp0 ("flip-rotate-180", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_VERT, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_VERT, TRUE);
         else if (!g_strcmp0 ("flip-rotate-270", orientation))
-          gst_video_flip_set_method (vf, GST_VIDEO_FLIP_METHOD_OTHER, TRUE);
+          gst_video_flip_set_method (vf, GST_VIDEO_ORIENTATION_UR_LL, TRUE);
 
         g_free (orientation);
       }
@@ -1237,6 +1268,7 @@
 
   switch (prop_id) {
     case PROP_METHOD:
+    case PROP_VIDEO_DIRECTION:
       gst_video_flip_set_method (videoflip, g_value_get_enum (value), FALSE);
       break;
     default:
@@ -1253,6 +1285,7 @@
 
   switch (prop_id) {
     case PROP_METHOD:
+    case PROP_VIDEO_DIRECTION:
       g_value_set_enum (value, videoflip->method);
       break;
     default:
@@ -1275,19 +1308,22 @@
   gobject_class->get_property = gst_video_flip_get_property;
 
   g_object_class_install_property (gobject_class, PROP_METHOD,
-      g_param_spec_enum ("method", "method", "method",
+      g_param_spec_enum ("method", "method",
+          "method (deprecated, use video-direction instead)",
           GST_TYPE_VIDEO_FLIP_METHOD, PROP_METHOD_DEFAULT,
           GST_PARAM_CONTROLLABLE | G_PARAM_READWRITE | G_PARAM_CONSTRUCT |
           G_PARAM_STATIC_STRINGS));
+  g_object_class_override_property (gobject_class, PROP_VIDEO_DIRECTION,
+      "video-direction");
 
   gst_element_class_set_static_metadata (gstelement_class, "Video flipper",
       "Filter/Effect/Video",
       "Flips and rotates video", "David Schleef <ds@schleef.org>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_flip_sink_template));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&gst_video_flip_src_template));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_flip_sink_template);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &gst_video_flip_src_template);
 
   trans_class->transform_caps =
       GST_DEBUG_FUNCPTR (gst_video_flip_transform_caps);
@@ -1306,5 +1342,5 @@
 {
   /* AUTO is not valid for active method, this is just to ensure we setup the
    * method in gst_video_flip_set_method() */
-  videoflip->active_method = GST_VIDEO_FLIP_METHOD_AUTO;
+  videoflip->active_method = GST_VIDEO_ORIENTATION_AUTO;
 }
diff --git a/gst/videofilter/gstvideoflip.h b/gst/videofilter/gstvideoflip.h
index 490de29..0fca8e9 100644
--- a/gst/videofilter/gstvideoflip.h
+++ b/gst/videofilter/gstvideoflip.h
@@ -75,9 +75,9 @@
   GstVideoFilter videofilter;
 
   /* < private > */
-  GstVideoFlipMethod method;
-  GstVideoFlipMethod tag_method;
-  GstVideoFlipMethod active_method;
+  GstVideoOrientationMethod method;
+  GstVideoOrientationMethod tag_method;
+  GstVideoOrientationMethod active_method;
   void (*process) (GstVideoFlip *videoflip, GstVideoFrame *dest, const GstVideoFrame *src);
 };
 
diff --git a/gst/videofilter/gstvideomedian.c b/gst/videofilter/gstvideomedian.c
index a78939a..042cd23 100644
--- a/gst/videofilter/gstvideomedian.c
+++ b/gst/videofilter/gstvideomedian.c
@@ -109,13 +109,12 @@
           "luminance", DEFAULT_LUM_ONLY,
           G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_median_sink_factory));
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&video_median_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_median_sink_factory);
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &video_median_src_factory);
   gst_element_class_set_static_metadata (gstelement_class, "Median effect",
-      "Filter/Effect/Video",
-      "Apply a median filter to an image",
+      "Filter/Effect/Video", "Apply a median filter to an image",
       "Wim Taymans <wim.taymans@gmail.com>");
 
   vfilter_class->transform_frame =
diff --git a/gst/videomixer/Makefile.in b/gst/videomixer/Makefile.in
index 0012aee..95c1dff 100644
--- a/gst/videomixer/Makefile.in
+++ b/gst/videomixer/Makefile.in
@@ -121,6 +121,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -370,6 +371,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -476,6 +478,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -543,6 +548,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/videomixer/videomixer2.c b/gst/videomixer/videomixer2.c
index 25fc35a..c6f2da8 100644
--- a/gst/videomixer/videomixer2.c
+++ b/gst/videomixer/videomixer2.c
@@ -21,7 +21,7 @@
 /**
  * SECTION:element-videomixer
  *
- * Videomixer2 can accept AYUV, ARGB and BGRA video streams. For each of the requested
+ * Videomixer can accept AYUV, ARGB and BGRA video streams. For each of the requested
  * sink pads it will compare the incoming geometry and framerate to define the
  * output parameters. Indeed output video frames will have the geometry of the
  * biggest incoming video stream and the framerate of the fastest incoming one.
@@ -45,7 +45,7 @@
  * ]| A pipeline to demonstrate videomixer used together with videobox.
  * This should show a 320x240 pixels video test source with some transparency
  * showing the background checker pattern. Another video test source with just
- * the snow pattern of 100x100 pixels is overlayed on top of the first one on
+ * the snow pattern of 100x100 pixels is overlaid on top of the first one on
  * the left vertically centered with a small transparency showing the first
  * video test source behind and the checker pattern under it. Note that the
  * framerate of the output video is 10 frames per second.
@@ -2222,10 +2222,8 @@
   gstelement_class->change_state =
       GST_DEBUG_FUNCPTR (gst_videomixer2_change_state);
 
-  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));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Video mixer 2",
       "Filter/Editor/Video/Compositor",
diff --git a/gst/videomixer/videomixerorc-dist.c b/gst/videomixer/videomixerorc-dist.c
index 115b6fc..7ddc1b0 100644
--- a/gst/videomixer/videomixerorc-dist.c
+++ b/gst/videomixer/videomixerorc-dist.c
@@ -1713,7 +1713,7 @@
       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 @@
       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 5947dcb..44df2b9 100644
--- a/gst/wavenc/Makefile.in
+++ b/gst/wavenc/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/wavenc/gstwavenc.c b/gst/wavenc/gstwavenc.c
index aff717f..94a8bd0 100644
--- a/gst/wavenc/gstwavenc.c
+++ b/gst/wavenc/gstwavenc.c
@@ -139,10 +139,8 @@
       "Codec/Muxer/Audio",
       "Encode raw audio into WAV", "Iain Holmes <iain@prettypeople.org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (element_class, &src_factory);
+  gst_element_class_add_static_pad_template (element_class, &sink_factory);
 
   GST_DEBUG_CATEGORY_INIT (wavenc_debug, "wavenc", 0, "WAV encoder element");
 }
diff --git a/gst/wavparse/Makefile.am b/gst/wavparse/Makefile.am
index d3f1818..4d4247e 100644
--- a/gst/wavparse/Makefile.am
+++ b/gst/wavparse/Makefile.am
@@ -10,6 +10,7 @@
 	-lgstriff-@GST_API_VERSION@ \
 	-lgstaudio-@GST_API_VERSION@ \
 	-lgsttag-@GST_API_VERSION@ \
+	-lgstpbutils-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(LIBM)
diff --git a/gst/wavparse/Makefile.in b/gst/wavparse/Makefile.in
index 93b8128..40de741 100644
--- a/gst/wavparse/Makefile.in
+++ b/gst/wavparse/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -342,6 +343,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -448,6 +450,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -515,6 +520,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -577,6 +583,7 @@
 	-lgstriff-@GST_API_VERSION@ \
 	-lgstaudio-@GST_API_VERSION@ \
 	-lgsttag-@GST_API_VERSION@ \
+	-lgstpbutils-@GST_API_VERSION@ \
 	$(GST_BASE_LIBS) \
 	$(GST_LIBS) \
 	$(LIBM)
diff --git a/gst/wavparse/gstwavparse.c b/gst/wavparse/gstwavparse.c
index 138ec16..6650d18 100644
--- a/gst/wavparse/gstwavparse.c
+++ b/gst/wavparse/gstwavparse.c
@@ -54,20 +54,12 @@
 #include "gstwavparse.h"
 #include "gst/riff/riff-media.h"
 #include <gst/base/gsttypefindhelper.h>
+#include <gst/pbutils/descriptions.h>
 #include <gst/gst-i18n-plugin.h>
 
 GST_DEBUG_CATEGORY_STATIC (wavparse_debug);
 #define GST_CAT_DEFAULT (wavparse_debug)
 
-#define GST_RIFF_TAG_Fake GST_MAKE_FOURCC ('F','a','k','e')
-
-#define GST_BWF_TAG_iXML GST_MAKE_FOURCC ('i','X','M','L')
-#define GST_BWF_TAG_qlty GST_MAKE_FOURCC ('q','l','t','y')
-#define GST_BWF_TAG_mext GST_MAKE_FOURCC ('m','e','x','t')
-#define GST_BWF_TAG_levl GST_MAKE_FOURCC ('l','e','v','l')
-#define GST_BWF_TAG_link GST_MAKE_FOURCC ('l','i','n','k')
-#define GST_BWF_TAG_axml GST_MAKE_FOURCC ('a','x','m','l')
-
 /* Data size chunk of RF64,
  * see http://tech.ebu.ch/docs/tech/tech3306-2009.pdf */
 #define GST_RS64_TAG_DS64 GST_MAKE_FOURCC ('d','s','6','4')
@@ -188,8 +180,8 @@
   gstelement_class->send_event = gst_wavparse_send_event;
 
   /* register pads */
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_template_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &sink_template_factory);
 
   src_template = gst_pad_template_new ("src", GST_PAD_SRC,
       GST_PAD_ALWAYS, gst_riff_create_audio_template_caps ());
@@ -1091,11 +1083,10 @@
   gint64 upstream_size = 0;
   GstStructure *s;
 
-  /* search for "_fmt" chunk, which should be first */
+  /* search for "_fmt" chunk, which must be before "data" */
   while (!wav->got_fmt) {
     GstBuffer *extra;
 
-    /* The header starts with a 'fmt ' tag */
     if (wav->streaming) {
       if (!gst_wavparse_peek_chunk (wav, &tag, &size))
         return res;
@@ -1117,21 +1108,6 @@
         return res;
     }
 
-    if (tag == GST_RIFF_TAG_JUNK || tag == GST_RIFF_TAG_JUNQ ||
-        tag == GST_RIFF_TAG_bext || tag == GST_RIFF_TAG_BEXT ||
-        tag == GST_RIFF_TAG_LIST || tag == GST_RIFF_TAG_ID32 ||
-        tag == GST_RIFF_TAG_id3 || tag == GST_RIFF_TAG_IDVX ||
-        tag == GST_BWF_TAG_iXML || tag == GST_BWF_TAG_qlty ||
-        tag == GST_BWF_TAG_mext || tag == GST_BWF_TAG_levl ||
-        tag == GST_BWF_TAG_link || tag == GST_BWF_TAG_axml ||
-        tag == GST_RIFF_TAG_Fake) {
-      GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk",
-          GST_FOURCC_ARGS (tag));
-      gst_buffer_unref (buf);
-      buf = NULL;
-      continue;
-    }
-
     if (tag == GST_RS64_TAG_DS64) {
       if (!parse_ds64 (wav, buf))
         goto fail;
@@ -1139,8 +1115,13 @@
         continue;
     }
 
-    if (tag != GST_RIFF_TAG_fmt)
-      goto invalid_wav;
+    if (tag != GST_RIFF_TAG_fmt) {
+      GST_DEBUG_OBJECT (wav, "skipping %" GST_FOURCC_FORMAT " chunk",
+          GST_FOURCC_ARGS (tag));
+      gst_buffer_unref (buf);
+      buf = NULL;
+      continue;
+    }
 
     if (!(gst_riff_parse_strf_auds (GST_ELEMENT_CAST (wav), buf, &header,
                 &extra)))
@@ -1243,9 +1224,25 @@
 
     wav->got_fmt = TRUE;
 
-    if (codec_name) {
+    if (wav->tags == NULL)
       wav->tags = gst_tag_list_new_empty ();
 
+    {
+      GstCaps *templ_caps = gst_pad_get_pad_template_caps (wav->sinkpad);
+      gst_pb_utils_add_codec_description_to_tag_list (wav->tags,
+          GST_TAG_CONTAINER_FORMAT, templ_caps);
+      gst_caps_unref (templ_caps);
+    }
+
+    /* If bps is nonzero, then we do have a valid bitrate that can be
+     * announced in a tag list. */
+    if (wav->bps) {
+      guint bitrate = wav->bps * 8;
+      gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE,
+          GST_TAG_BITRATE, bitrate, NULL);
+    }
+
+    if (codec_name) {
       gst_tag_list_add (wav->tags, GST_TAG_MERGE_REPLACE,
           GST_TAG_AUDIO_CODEC, codec_name, NULL);
 
@@ -1718,13 +1715,6 @@
     res = GST_FLOW_ERROR;
     goto exit;
   }
-invalid_wav:
-  {
-    GST_ELEMENT_ERROR (wav, STREAM, TYPE_NOT_FOUND, (NULL),
-        ("Invalid WAV header (no fmt at start): %"
-            GST_FOURCC_FORMAT, GST_FOURCC_ARGS (tag)));
-    goto fail;
-  }
 parse_header_error:
   {
     GST_ELEMENT_ERROR (wav, STREAM, DEMUX, (NULL),
@@ -2256,9 +2246,7 @@
     } else if (ret == GST_FLOW_NOT_LINKED || ret < GST_FLOW_EOS) {
       /* for fatal errors we post an error message, post the error
        * first so the app knows about the error first. */
-      GST_ELEMENT_ERROR (wav, STREAM, FAILED,
-          (_("Internal data flow error.")),
-          ("streaming task paused, reason %s (%d)", reason, ret));
+      GST_ELEMENT_FLOW_ERROR (wav, ret);
       gst_pad_push_event (wav->srcpad, gst_event_new_eos ());
     }
     return;
diff --git a/gst/y4m/Makefile.in b/gst/y4m/Makefile.in
index 403a92e..47600eb 100644
--- a/gst/y4m/Makefile.in
+++ b/gst/y4m/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -341,6 +342,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -447,6 +449,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -514,6 +519,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/gst/y4m/gsty4mencode.c b/gst/y4m/gsty4mencode.c
index 7c32af2..2a113bc 100644
--- a/gst/y4m/gsty4mencode.c
+++ b/gst/y4m/gsty4mencode.c
@@ -97,10 +97,10 @@
 
   element_class->change_state = GST_DEBUG_FUNCPTR (gst_y4m_encode_change_state);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&y4mencode_src_factory));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&y4mencode_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &y4mencode_src_factory);
+  gst_element_class_add_static_pad_template (element_class,
+      &y4mencode_sink_factory);
 
   gst_element_class_set_static_metadata (element_class,
       "YUV4MPEG video encoder", "Codec/Encoder/Video",
diff --git a/ltmain.sh b/ltmain.sh
index 2ad8be8..a736cf9 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -31,7 +31,7 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION="2.4.6 Debian-2.4.6-1"
+VERSION="2.4.6 Debian-2.4.6-2"
 package_revision=2.4.6
 
 
@@ -1977,7 +1977,7 @@
 # End:
 
 # Set a version string.
-scriptversion='(GNU libtool) 2.4.6 Debian-2.4.6-1'
+scriptversion='(GNU libtool) 2.4.6'
 
 
 # func_echo ARG...
@@ -2068,7 +2068,7 @@
        compiler:       $LTCC
        compiler flags: $LTCFLAGS
        linker:         $LD (gnu? $with_gnu_ld)
-       version:        $progname $scriptversion
+       version:        $progname $scriptversion Debian-2.4.6-2
        automake:       `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
        autoconf:       `($AUTOCONF --version) 2>/dev/null |$SED 1q`
 
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 9dc24c0..2d47c19 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -255,6 +256,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -361,6 +363,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -428,6 +433,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/pkgconfig/Makefile.in b/pkgconfig/Makefile.in
index 3944f08..921639d 100644
--- a/pkgconfig/Makefile.in
+++ b/pkgconfig/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -256,6 +257,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -362,6 +364,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -429,6 +434,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/po/af.gmo b/po/af.gmo
index 3192c2c..1282875 100644
--- a/po/af.gmo
+++ b/po/af.gmo
Binary files differ
diff --git a/po/af.po b/po/af.po
index e3da65b..acb5b65 100644
--- a/po/af.po
+++ b/po/af.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.7.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geen of ongeldige klanktoevoer, AVI-stroom sal korrup wees."
 
@@ -86,9 +83,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
diff --git a/po/az.gmo b/po/az.gmo
index 2f90705..cfaa53c 100644
--- a/po/az.gmo
+++ b/po/az.gmo
Binary files differ
diff --git a/po/az.po b/po/az.po
index 6eda978..877e300 100644
--- a/po/az.po
+++ b/po/az.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.0\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -56,9 +56,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Səhv ya da olmayan audio girişi, AVI yayımı pozulacaqdır."
 
@@ -87,9 +84,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
diff --git a/po/bg.gmo b/po/bg.gmo
index 50928e5..7fb39b9 100644
--- a/po/bg.gmo
+++ b/po/bg.gmo
Binary files differ
diff --git a/po/bg.po b/po/bg.po
index ac61460..66cd2b5 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-21 21:03+0200\n"
 "Last-Translator: Alexander Shopov <ash@kambanaria.org>\n"
 "Language-Team: Bulgarian <dict@ludost.net>\n"
@@ -54,9 +54,6 @@
 msgid "Server sent bad data."
 msgstr "Сървърът изпрати лоши данни."
 
-msgid "Internal data stream error."
-msgstr "Вътрешна грешка на потока от данни."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Аудио входът липсва или е грешен. Потокът с AVI ще бъде повреден."
 
@@ -86,9 +83,6 @@
 msgstr ""
 "Този файл съдържа прекалено много потоци. Изпълняват се само първите %d"
 
-msgid "Internal data flow error."
-msgstr "Вътрешна грешка в потока с данни."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -427,3 +421,9 @@
 
 msgid "Cannot operate without a clock"
 msgstr "Работата без часовник е невъзможна."
+
+#~ msgid "Internal data stream error."
+#~ msgstr "Вътрешна грешка на потока от данни."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Вътрешна грешка в потока с данни."
diff --git a/po/ca.gmo b/po/ca.gmo
index 042eb69..9113e8c 100644
--- a/po/ca.gmo
+++ b/po/ca.gmo
Binary files differ
diff --git a/po/ca.po b/po/ca.po
index dbaaeda..65eb600 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -58,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "El servidor ha enviat dades errònies."
 
-msgid "Internal data stream error."
-msgstr "S'ha produït un error intern de flux de dades."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Manca o no és vàlida l'entrada d'àudio, el flux AVI estarà malmès."
 
@@ -90,9 +87,6 @@
 msgstr ""
 "Aquest fitxer conté massa fluxos. Només s'estan reproduint els primers %d"
 
-msgid "Internal data flow error."
-msgstr "S'ha produït un error intern de flux de dades."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -470,6 +464,12 @@
 msgid "Cannot operate without a clock"
 msgstr "No es pot operar sense un rellotge"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "S'ha produït un error intern de flux de dades."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "S'ha produït un error intern de flux de dades."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "El dispositiu «%s» no és un dispositiu de sortida."
diff --git a/po/cs.gmo b/po/cs.gmo
index 6f22556..e9f611d 100644
--- a/po/cs.gmo
+++ b/po/cs.gmo
Binary files differ
diff --git a/po/cs.po b/po/cs.po
index 7baa214..454ac54 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-27 16:40+0100\n"
 "Last-Translator: Marek Černocký <marek@manet.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Server odeslal chybná data."
 
-msgid "Internal data stream error."
-msgstr "Vnitřní chyba datového proudu."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Žádný nebo neplatný zvukový vstup, proud AVI bude poškozen."
 
@@ -88,9 +85,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Tento soubor obsahuje příliš mnoho proudů. Přehrává se pouze první %d"
 
-msgid "Internal data flow error."
-msgstr "Vnitřní chyba datového toku."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -429,3 +423,9 @@
 
 msgid "Cannot operate without a clock"
 msgstr "Není možné fungovat bez hodin"
+
+#~ msgid "Internal data stream error."
+#~ msgstr "Vnitřní chyba datového proudu."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Vnitřní chyba datového toku."
diff --git a/po/da.gmo b/po/da.gmo
index b64850a..6c72f2e 100644
--- a/po/da.gmo
+++ b/po/da.gmo
Binary files differ
diff --git a/po/da.po b/po/da.po
index 7e85327..df8e70a 100644
--- a/po/da.po
+++ b/po/da.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-03-27 23:54+0200\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <dansk@dansk-gruppen.dk>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Server sendte ugyldige data."
 
-msgid "Internal data stream error."
-msgstr "Intern datastrømsfejl."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Ingen eller defekt inddatalyd, AVI-sekvens vil blive ødelagt."
 
@@ -91,9 +88,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Denne fil indeholder for mange strømme. Afspil først kun %d"
 
-msgid "Internal data flow error."
-msgstr "Intern datastrømsfejl."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -432,5 +426,11 @@
 msgid "Cannot operate without a clock"
 msgstr "Kan ikke fungere uden et ur"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Intern datastrømsfejl."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Intern datastrømsfejl."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Enheden »%s« understøtter ikke videooptagelse"
diff --git a/po/de.gmo b/po/de.gmo
index 2d0f49e..f6d25c0 100644
--- a/po/de.gmo
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
index 2c0fa81..bd8a643 100644
--- a/po/de.po
+++ b/po/de.po
@@ -14,7 +14,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-22 23:42+0100\n"
 "Last-Translator: Christian Kirbach <christian.kirbach@gmail.com>\n"
 "Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
@@ -63,9 +63,6 @@
 msgid "Server sent bad data."
 msgstr "Server gab unerwartete Daten zurück."
 
-msgid "Internal data stream error."
-msgstr "Interner Datenstromfehler."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Kein oder ungültiger Eingabeton, der AVI-Strom wird fehlerhaft sein."
 
@@ -98,9 +95,6 @@
 "Diese Datei enthält zu viele Ströme. Es werden nur die ersten %d "
 "wiedergegeben"
 
-msgid "Internal data flow error."
-msgstr "Interner Datenstromfehler."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -451,6 +445,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Es kann nicht ohne einen Taktgeber gearbeitet werden."
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Interner Datenstromfehler."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Interner Datenstromfehler."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Gerät »%s« unterstützt keine Videoaufnahme"
 
diff --git a/po/el.gmo b/po/el.gmo
index 4ba4503..9d033c2 100644
--- a/po/el.gmo
+++ b/po/el.gmo
Binary files differ
diff --git a/po/el.po b/po/el.po
index 38919e2..cf5f53f 100644
--- a/po/el.po
+++ b/po/el.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -16,6 +16,7 @@
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
 "X-Generator: Lokalize 0.3\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
@@ -57,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "Ο διακομιστής έστειλε λάθος δεδομένα."
 
-msgid "Internal data stream error."
-msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Καμία ή άκυρη εισαγωγή ήχου, η AVI ροή θα καταρρεύσει."
 
@@ -88,9 +86,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Αυτό το αρχείο περιέχει πολλές ροές. Αναπαράγεται μόνο η πρώτη %d"
 
-msgid "Internal data flow error."
-msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -446,6 +441,12 @@
 #~ msgid "Failed to query sound server capabilities"
 #~ msgstr "Αποτυχία αναζήτησης των δυνατοτήτων του διακομιστή ήχου"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Εσωτερικό σφάλμα ροής δεδομένων."
+
 #~ msgid "Bass"
 #~ msgstr "Μπάσα"
 
diff --git a/po/en_GB.gmo b/po/en_GB.gmo
index 625b73a..4487c55 100644
--- a/po/en_GB.gmo
+++ b/po/en_GB.gmo
Binary files differ
diff --git a/po/en_GB.po b/po/en_GB.po
index 821f95d..57df2ec 100644
--- a/po/en_GB.po
+++ b/po/en_GB.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "No or invalid input audio, AVI stream will be corrupt."
 
@@ -86,9 +83,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
diff --git a/po/eo.gmo b/po/eo.gmo
index c5b2d2b..85bf32c 100644
--- a/po/eo.gmo
+++ b/po/eo.gmo
Binary files differ
diff --git a/po/eo.po b/po/eo.po
index 9ab0833..a2bc1ff 100644
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.28.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -53,9 +53,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "Interna datumflu-eraro."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
@@ -84,9 +81,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -408,6 +402,9 @@
 msgid "Cannot operate without a clock"
 msgstr ""
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Interna datumflu-eraro."
+
 #~ msgid "Bass"
 #~ msgstr "Baso"
 
diff --git a/po/es.gmo b/po/es.gmo
index 1f28b92..a435580 100644
--- a/po/es.gmo
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
index dbc5d95..96ec954 100644
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.26.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -56,9 +56,6 @@
 msgid "Server sent bad data."
 msgstr "El servidor envió datos erróneos."
 
-msgid "Internal data stream error."
-msgstr "Error interno de flujo de datos."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "El audio no existe o no es válido, el flujo AVI estará corrupto."
 
@@ -89,9 +86,6 @@
 msgstr ""
 "Este archivo contiene demasiados flujos. Sólo se reproducirá el primer %d"
 
-msgid "Internal data flow error."
-msgstr "Error en el flujo de datos interno."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -466,6 +460,12 @@
 msgid "Cannot operate without a clock"
 msgstr "No se puede operar sin reloj"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Error interno de flujo de datos."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Error en el flujo de datos interno."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "El dispositivo «%s» no es un dispositivo de salida."
diff --git a/po/eu.gmo b/po/eu.gmo
index 84dc6a1..037886b 100644
--- a/po/eu.gmo
+++ b/po/eu.gmo
Binary files differ
diff --git a/po/eu.po b/po/eu.po
index 32c41ca..0a8c118 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.18.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "Datu-korrontearen barne-errorea."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ez dago audio-sarrerarik, edo baliogabea da. AVI korrontea hondatua egongo "
@@ -92,9 +89,6 @@
 msgstr ""
 "Fitxategi horrek korronte gehiegi ditu. Erreproduzitu soilik lehen %d(r)ak"
 
-msgid "Internal data flow error."
-msgstr "Datu-fluxuaren barne-errorea."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -460,6 +454,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Ezin du funtzionatu erlojurik gabe"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Datu-korrontearen barne-errorea."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Datu-fluxuaren barne-errorea."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "'%s' gailua ez da irteerako gailu bat."
diff --git a/po/fi.gmo b/po/fi.gmo
index 8326832..c3ef98a 100644
--- a/po/fi.gmo
+++ b/po/fi.gmo
Binary files differ
diff --git a/po/fi.po b/po/fi.po
index 6c1130a..8a2ddd9 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -58,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "Palvelin lähetti virheellistä dataa."
 
-msgid "Internal data stream error."
-msgstr "Sisäisen tietovirran virhe."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ääntä ei ole tai äänilähde on viallinen, AVI-virta tulee olemaan "
@@ -91,9 +88,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Tiedosto sisältää useita virtoja. Soitetaan vain ensimmäiset %d"
 
-msgid "Internal data flow error."
-msgstr "Sisäisen tietovirran virhe."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -438,6 +432,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Ei voitu toimia ilman kelloa"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Sisäisen tietovirran virhe."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Sisäisen tietovirran virhe."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Laite ”%s” ei ole ulostulolaite."
diff --git a/po/fr.gmo b/po/fr.gmo
index 71635e5..04becb6 100644
--- a/po/fr.gmo
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
index 14c2986..02d810e 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-20 16:27+0100\n"
 "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Le serveur a envoyé de mauvaises données."
 
-msgid "Internal data stream error."
-msgstr "Erreur du flux de données interne."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Entrée audio absente ou non valide, le flux AVI sera corrompu."
 
@@ -90,9 +87,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Ce fichier contient trop de flux. Seuls les %d premiers seront lus"
 
-msgid "Internal data flow error."
-msgstr "Erreur du flux de données interne."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -459,3 +453,9 @@
 
 msgid "Cannot operate without a clock"
 msgstr "Impossible de fonctionner sans horloge"
+
+#~ msgid "Internal data stream error."
+#~ msgstr "Erreur du flux de données interne."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Erreur du flux de données interne."
diff --git a/po/gl.gmo b/po/gl.gmo
index 5a96e33..e3f70f8 100644
--- a/po/gl.gmo
+++ b/po/gl.gmo
Binary files differ
diff --git a/po/gl.po b/po/gl.po
index c609f48..b1ed6e5 100644
--- a/po/gl.po
+++ b/po/gl.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -58,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "O servidor enviou datos erróneos."
 
-msgid "Internal data stream error."
-msgstr "Produciuse un erro no fluxo de datos interno."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "O audio non existe ou non é válido, o fluxo AVI está corrompido."
 
@@ -90,9 +87,6 @@
 msgstr ""
 "Este ficheiro contén demasiados fluxos. Só se reproducirá o primeiro %d"
 
-msgid "Internal data flow error."
-msgstr "Produciuse un erro interno no fluxo de datos."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -459,6 +453,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Non é posíbel operar sen reloxo"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Produciuse un erro no fluxo de datos interno."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Produciuse un erro interno no fluxo de datos."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "O dispositivo «%s» non admite a captura de vídeo."
 
diff --git a/po/gst-plugins-good-1.0.pot b/po/gst-plugins-good-1.0.pot
index 61260e3..bdbdc27 100644
--- a/po/gst-plugins-good-1.0.pot
+++ b/po/gst-plugins-good-1.0.pot
@@ -5,9 +5,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.8.3\n"
+"Project-Id-Version: gst-plugins-good 1.9.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -28,100 +28,92 @@
 msgstr ""
 
 #. TRANSLATORS: 'song title' by 'artist name'
-#: ext/pulse/pulsesink.c:3127
+#: ext/pulse/pulsesink.c:3126
 #, c-format
 msgid "'%s' by '%s'"
 msgstr ""
 
-#: ext/shout2/gstshout2.c:567
+#: ext/shout2/gstshout2.c:566
 msgid "Could not connect to server"
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:932
+#: ext/soup/gstsouphttpsrc.c:912
 msgid "No URL set."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1292
+#: ext/soup/gstsouphttpsrc.c:1227
 msgid "Server does not support seeking."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1567
+#: ext/soup/gstsouphttpsrc.c:1281
 msgid "Could not resolve server name."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1573
+#: ext/soup/gstsouphttpsrc.c:1287
 msgid "Could not establish connection to server."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1578
+#: ext/soup/gstsouphttpsrc.c:1292
 msgid "Secure connection setup failed."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1588
+#: ext/soup/gstsouphttpsrc.c:1300
 msgid ""
 "A network error occurred, or the server closed the connection unexpectedly."
 msgstr ""
 
-#: ext/soup/gstsouphttpsrc.c:1595
+#: ext/soup/gstsouphttpsrc.c:1307
 msgid "Server sent bad data."
 msgstr ""
 
-#: gst/avi/gstavidemux.c:5705
-msgid "Internal data stream error."
-msgstr ""
-
-#: gst/avi/gstavimux.c:1828
+#: gst/avi/gstavimux.c:1832
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:648 gst/isomp4/qtdemux.c:652
+#: gst/isomp4/qtdemux.c:664 gst/isomp4/qtdemux.c:668
 msgid "This file contains no playable streams."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:698 gst/isomp4/qtdemux.c:5845 gst/isomp4/qtdemux.c:5912
-#: gst/isomp4/qtdemux.c:6167
+#: gst/isomp4/qtdemux.c:714 gst/isomp4/qtdemux.c:6165 gst/isomp4/qtdemux.c:6232
+#: gst/isomp4/qtdemux.c:6521
 msgid "This file is invalid and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:2504
+#: gst/isomp4/qtdemux.c:2737
 msgid "Cannot play stream because it is encrypted with PlayReady DRM."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3604 gst/isomp4/qtdemux.c:6900
-#: gst/isomp4/qtdemux.c:6907 gst/isomp4/qtdemux.c:7741
-#: gst/isomp4/qtdemux.c:8170 gst/isomp4/qtdemux.c:8177
-#: gst/isomp4/qtdemux.c:10542
+#: gst/isomp4/qtdemux.c:3854 gst/isomp4/qtdemux.c:7254
+#: gst/isomp4/qtdemux.c:7261 gst/isomp4/qtdemux.c:8095
+#: gst/isomp4/qtdemux.c:8524 gst/isomp4/qtdemux.c:8531
+#: gst/isomp4/qtdemux.c:10896
 msgid "This file is corrupt and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3846
+#: gst/isomp4/qtdemux.c:4096
 msgid "Invalid atom size."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:3924
+#: gst/isomp4/qtdemux.c:4174
 msgid "This file is incomplete and cannot be played."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:9151
+#: gst/isomp4/qtdemux.c:9505
 msgid "The video in this file might not play correctly."
 msgstr ""
 
-#: gst/isomp4/qtdemux.c:10583
+#: gst/isomp4/qtdemux.c:10937
 #, c-format
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#: gst/multifile/gstsplitmuxsrc.c:532 gst/wavparse/gstwavparse.c:2260
-msgid "Internal data flow error."
-msgstr ""
-
-#: gst/rtsp/gstrtspsrc.c:6414
+#: gst/rtsp/gstrtspsrc.c:6432
 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:6419
+#: gst/rtsp/gstrtspsrc.c:6437
 msgid ""
 "No supported stream was found. You might need to allow more transport "
 "protocols or may otherwise be missing the right GStreamer RTSP extension "
@@ -261,109 +253,109 @@
 msgid "Error reading %d bytes from device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:1160
+#: sys/v4l2/gstv4l2object.c:1168
 #, c-format
 msgid "Failed to enumerate possible video formats device '%s' can work with"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2799
+#: sys/v4l2/gstv4l2object.c:2876
 #, c-format
 msgid "Could not map buffers from device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2807
+#: sys/v4l2/gstv4l2object.c:2884
 #, c-format
 msgid "The driver of device '%s' does not support the IO method %d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:2814
+#: sys/v4l2/gstv4l2object.c:2891
 #, c-format
 msgid "The driver of device '%s' does not support any known IO method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3437 sys/v4l2/gstv4l2object.c:3448
+#: sys/v4l2/gstv4l2object.c:3514 sys/v4l2/gstv4l2object.c:3525
 #, c-format
 msgid "Device '%s' is busy"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3454 sys/v4l2/gstv4l2object.c:3466
+#: sys/v4l2/gstv4l2object.c:3531 sys/v4l2/gstv4l2object.c:3543
 #, c-format
 msgid "Device '%s' cannot capture at %dx%d"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3477
+#: sys/v4l2/gstv4l2object.c:3554
 #, c-format
 msgid "Device '%s' cannot capture in the specified format"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3490
+#: sys/v4l2/gstv4l2object.c:3567
 #, c-format
 msgid "Device '%s' does support non-contiguous planes"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3501
+#: sys/v4l2/gstv4l2object.c:3578
 #, c-format
 msgid "Could not get parameters on device '%s'"
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3509
+#: sys/v4l2/gstv4l2object.c:3586
 msgid "Video device did not accept new frame rate setting."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3616
+#: sys/v4l2/gstv4l2object.c:3708
 msgid "Video device did not provide output format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3622
+#: sys/v4l2/gstv4l2object.c:3714
 msgid "Video device returned invalid dimensions."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3630
+#: sys/v4l2/gstv4l2object.c:3722
 msgid "Video devices uses an unsupported interlacing method."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:3637
+#: sys/v4l2/gstv4l2object.c:3729
 msgid "Video devices uses an unsupported pixel format."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4064
+#: sys/v4l2/gstv4l2object.c:4156
 msgid "Failed to configure internal buffer pool."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4070
+#: sys/v4l2/gstv4l2object.c:4162
 msgid "Video device did not suggest any buffer size."
 msgstr ""
 
-#: sys/v4l2/gstv4l2object.c:4085
+#: sys/v4l2/gstv4l2object.c:4177
 msgid "No downstream pool to import from."
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:138
+#: sys/v4l2/gstv4l2radio.c:143
 #, c-format
 msgid "Failed to get settings of tuner %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:145
+#: sys/v4l2/gstv4l2radio.c:150
 #, c-format
 msgid "Error getting capabilities for device '%s'."
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:152
+#: sys/v4l2/gstv4l2radio.c:157
 #, c-format
 msgid "Device '%s' is not a tuner."
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:179
+#: sys/v4l2/gstv4l2radio.c:184
 #, c-format
 msgid "Failed to get radio input on device '%s'. "
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:202 sys/v4l2/v4l2_calls.c:1067
+#: sys/v4l2/gstv4l2radio.c:207 sys/v4l2/v4l2_calls.c:1073
 #, c-format
 msgid "Failed to set input %d on device %s."
 msgstr ""
 
-#: sys/v4l2/gstv4l2radio.c:236
+#: sys/v4l2/gstv4l2radio.c:241
 #, c-format
 msgid "Failed to change mute state for device '%s'."
 msgstr ""
@@ -372,7 +364,7 @@
 msgid "Failed to allocated required memory."
 msgstr ""
 
-#: sys/v4l2/gstv4l2src.c:543 sys/v4l2/gstv4l2videodec.c:709
+#: sys/v4l2/gstv4l2src.c:530 sys/v4l2/gstv4l2videodec.c:709
 msgid "Failed to allocate required memory."
 msgstr ""
 
@@ -404,110 +396,110 @@
 msgid "Failed to process frame."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:89
+#: sys/v4l2/v4l2_calls.c:94
 #, c-format
 msgid ""
 "Error getting capabilities for device '%s': It isn't a v4l2 driver. Check if "
 "it is a v4l1 driver."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:153
+#: sys/v4l2/v4l2_calls.c:158
 #, c-format
 msgid "Failed to query attributes of input %d in device %s"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:184
+#: sys/v4l2/v4l2_calls.c:189
 #, c-format
 msgid "Failed to get setting of tuner %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:232
+#: sys/v4l2/v4l2_calls.c:237
 #, c-format
 msgid "Failed to query norm on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:411
+#: sys/v4l2/v4l2_calls.c:416
 #, c-format
 msgid "Failed getting controls attributes on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:605
+#: sys/v4l2/v4l2_calls.c:610
 #, c-format
 msgid "Cannot identify device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:612
+#: sys/v4l2/v4l2_calls.c:617
 #, c-format
 msgid "This isn't a device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:619
+#: sys/v4l2/v4l2_calls.c:624
 #, c-format
 msgid "Could not open device '%s' for reading and writing."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:626
+#: sys/v4l2/v4l2_calls.c:631
 #, c-format
 msgid "Device '%s' is not a capture device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:634
+#: sys/v4l2/v4l2_calls.c:639
 #, c-format
 msgid "Device '%s' is not a output device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:642
+#: sys/v4l2/v4l2_calls.c:647
 #, c-format
 msgid "Device '%s' is not a M2M device."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:693
+#: sys/v4l2/v4l2_calls.c:699
 #, c-format
 msgid "Could not dup device '%s' for reading and writing."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:777
+#: sys/v4l2/v4l2_calls.c:783
 #, c-format
 msgid "Failed to set norm for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:815
+#: sys/v4l2/v4l2_calls.c:821
 #, c-format
 msgid "Failed to get current tuner frequency for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:857
+#: sys/v4l2/v4l2_calls.c:863
 #, c-format
 msgid "Failed to set current tuner frequency for device '%s' to %lu Hz."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:891
+#: sys/v4l2/v4l2_calls.c:897
 #, c-format
 msgid "Failed to get signal strength for device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:927
+#: sys/v4l2/v4l2_calls.c:933
 #, c-format
 msgid "Failed to get value for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:962
+#: sys/v4l2/v4l2_calls.c:968
 #, c-format
 msgid "Failed to set value %d for control %d on device '%s'."
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1042
+#: sys/v4l2/v4l2_calls.c:1048
 #, c-format
 msgid "Failed to get current input on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1099
+#: sys/v4l2/v4l2_calls.c:1105
 #, c-format
 msgid ""
 "Failed to get current output on device '%s'. May be it is a radio device"
 msgstr ""
 
-#: sys/v4l2/v4l2_calls.c:1124
+#: sys/v4l2/v4l2_calls.c:1130
 #, c-format
 msgid "Failed to set output %d on device %s."
 msgstr ""
diff --git a/po/hr.gmo b/po/hr.gmo
index 5b300b8..4a17795 100644
--- a/po/hr.gmo
+++ b/po/hr.gmo
Binary files differ
diff --git a/po/hr.po b/po/hr.po
index 19e0e5c..9907c25 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-05-27 12:47-0700\n"
 "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n"
 "Language-Team: Croatian <lokalizacija@linux.hr>\n"
@@ -56,9 +56,6 @@
 msgid "Server sent bad data."
 msgstr "Poslužitelj je poslao neispravne podatke."
 
-msgid "Internal data stream error."
-msgstr "Interna greška toka (stream) podataka."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nema audio ulaza ili je neispravan, AVI stream će biti iskvaren."
 
@@ -90,9 +87,6 @@
 "U ovoj datoteci ima previše streamova (streams). Samo prvih %d će se "
 "reproducirati"
 
-msgid "Internal data flow error."
-msgstr "Interna greška protoka podataka."
-
 # https://gstreamer.freedesktop.org/documentation/rtp.html
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
@@ -436,6 +430,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Ne mogu raditi bez takta (sata)"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Interna greška toka (stream) podataka."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Interna greška protoka podataka."
+
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Ne mogu ostvariti vezu prema poslužitelju zvuka"
 
diff --git a/po/hu.gmo b/po/hu.gmo
index d55dc02..f8ccda4 100644
--- a/po/hu.gmo
+++ b/po/hu.gmo
Binary files differ
diff --git a/po/hu.po b/po/hu.po
index 000104c..e36935b 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-03-14 18:35+0100\n"
 "Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -59,9 +59,6 @@
 msgid "Server sent bad data."
 msgstr "A kiszolgáló hibás adatokat küldött."
 
-msgid "Internal data stream error."
-msgstr "Belső adatfolyam-hiba."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nincs vagy érvénytelen bemeneti hang, az AVI-folyam sérült lesz."
 
@@ -92,9 +89,6 @@
 msgstr ""
 "A fájl túl sok adatfolyamot tartalmaz. Csak az első %d kerül lejátszásra."
 
-msgid "Internal data flow error."
-msgstr "Belső adatfolyam-hiba."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -438,6 +432,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Óra nélkül lehetetlen a működés"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Belső adatfolyam-hiba."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Belső adatfolyam-hiba."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "A(z) „%s” eszköz nem támogatja a videofelvételt"
 
diff --git a/po/id.gmo b/po/id.gmo
index 9e25604..a73b695 100644
--- a/po/id.gmo
+++ b/po/id.gmo
Binary files differ
diff --git a/po/id.po b/po/id.po
index e937f74..a1d2a63 100644
--- a/po/id.po
+++ b/po/id.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.3.90\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Server mengirim data rusak."
 
-msgid "Internal data stream error."
-msgstr "Galat arus data internal."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Masukan audio tidak ada atau tidak sah, arus AVI akan rusak."
 
@@ -88,9 +85,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Berkas ini berisi terlalu banyak arus. Hanya memutar %d pertama"
 
-msgid "Internal data flow error."
-msgstr "Galat aliran data internal."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -428,5 +422,11 @@
 msgid "Cannot operate without a clock"
 msgstr "Tak dapat beroperasi tanpa jam"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Galat arus data internal."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Galat aliran data internal."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Divais '%s' tak mendukung penangkapan video"
diff --git a/po/it.gmo b/po/it.gmo
index e848edd..bd53af9 100644
--- a/po/it.gmo
+++ b/po/it.gmo
Binary files differ
diff --git a/po/it.po b/po/it.po
index 09d0b6c..799759b 100644
--- a/po/it.po
+++ b/po/it.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.25.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr "In server ha inviato dati errati."
 
-msgid "Internal data stream error."
-msgstr "Errore interno nello stream dei dati."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Ingresso audio assente o non valido. Lo stream AVI risulterà danneggiato."
@@ -87,9 +84,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Questo file contiene troppi stream. Riprodotti solo i primi %d"
 
-msgid "Internal data flow error."
-msgstr "Errore interno nel flusso di dati."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -458,6 +452,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Impossibile operare senza un clock"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Errore interno nello stream dei dati."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Errore interno nel flusso di dati."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Il device «%s» non è un dispositivo di uscita."
diff --git a/po/ja.gmo b/po/ja.gmo
index 61a903c..d9a6e75 100644
--- a/po/ja.gmo
+++ b/po/ja.gmo
Binary files differ
diff --git a/po/ja.po b/po/ja.po
index a2f90e0..6b550dc 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.0.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -56,9 +56,6 @@
 msgid "Server sent bad data."
 msgstr "サーバが不正なデータを送信しました。"
 
-msgid "Internal data stream error."
-msgstr "内部データストリームエラー"
-
 # SUN REVIEWED
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "入力オーディオが存在しないか無効であるため、AVI ストリームは壊れます。"
@@ -90,9 +87,6 @@
 "このファイルには多くのストリームが格納されているため、最初の %d 個のみ再生し"
 "ます"
 
-msgid "Internal data flow error."
-msgstr "内部データフローエラー。"
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -450,6 +444,12 @@
 msgid "Cannot operate without a clock"
 msgstr "クロックなしでは動作できません。"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "内部データストリームエラー"
+
+#~ msgid "Internal data flow error."
+#~ msgstr "内部データフローエラー。"
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "デバイス '%s' はビデオキャプチャをサポートしていません"
 
diff --git a/po/lt.gmo b/po/lt.gmo
index d4b9e88..8b11df7 100644
--- a/po/lt.gmo
+++ b/po/lt.gmo
Binary files differ
diff --git a/po/lt.po b/po/lt.po
index b899dc0..15963ed 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "Vidinė duomenų srauto klaida."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nėra įvesties garso arba jis netinkamas, AVI srautas bus sugadintas."
 
@@ -88,9 +85,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Šiame faile per daug srautų. Grojami tik pirmieji %d"
 
-msgid "Internal data flow error."
-msgstr "Vidinė duomenų srauto klaida."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -433,6 +427,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Negali veikti be laikrodžio"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Vidinė duomenų srauto klaida."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Vidinė duomenų srauto klaida."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Įrenginys „%s“ nėra išvesties įrenginys."
diff --git a/po/lv.gmo b/po/lv.gmo
index 3f1eae5..347368f 100644
--- a/po/lv.gmo
+++ b/po/lv.gmo
Binary files differ
diff --git a/po/lv.po b/po/lv.po
index 6e71eaa..9dcfc2c 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -58,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "Serveris nosūtīja sliktus datus."
 
-msgid "Internal data stream error."
-msgstr "Iekšēja datu plūsmas kļūda."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Nav vai nederīgs ievades audio, AVI straume tiks bojāta."
 
@@ -89,9 +86,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Šī datne satur pārāk daudz straumju. Tiek atskaņota tikai pirmā %d"
 
-msgid "Internal data flow error."
-msgstr "Iekšēja datu plūsmas kļūda."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -434,6 +428,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Nevar veikt darbības bez pulksteņa"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Iekšēja datu plūsmas kļūda."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Iekšēja datu plūsmas kļūda."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Ierīce “%s” neatbalsta video tveršanu"
 
diff --git a/po/mt.gmo b/po/mt.gmo
index a4cb829..0e34cb4 100644
--- a/po/mt.gmo
+++ b/po/mt.gmo
Binary files differ
diff --git a/po/mt.po b/po/mt.po
index a943e81..091ca8a 100644
--- a/po/mt.po
+++ b/po/mt.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.10.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "Problema interna fid-data stream"
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Input audio ma nstabx jew mhux validu. AVI stream jista jkun korrott."
 
@@ -86,9 +83,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Il-fajl fiħ aktar streams milli suppost. Ser indoqq l-ewwel %d"
 
-msgid "Internal data flow error."
-msgstr "Problema interna ta' data flow"
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -438,6 +432,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Ma nistax nħaddem mingħajr arloġġ"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Problema interna fid-data stream"
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Problema interna ta' data flow"
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Device '%s' mhux capture device."
diff --git a/po/nb.gmo b/po/nb.gmo
index c34ee26..f806a8e 100644
--- a/po/nb.gmo
+++ b/po/nb.gmo
Binary files differ
diff --git a/po/nb.po b/po/nb.po
index 9d87bb9..22171cd 100644
--- a/po/nb.po
+++ b/po/nb.po
@@ -2,21 +2,21 @@
 # This file is put in the public domain.
 #
 # Kjartan Maraas <kmaraas@gnome.org>, 2004-2010.
-# Johnny A. Solbu <johnny@solbu.net>, 2012-2015
+# Johnny A. Solbu <johnny@solbu.net>, 2012-2016
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gst-plugins-good 1.6.0\n"
+"Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
-"PO-Revision-Date: 2015-12-22 21:12+0100\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
+"PO-Revision-Date: 2016-08-05 23:47+0200\n"
 "Last-Translator: Johnny A. Solbu <johnny@solbu.net>\n"
 "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n"
 "Language: nb_NO\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Poedit 1.6.9\n"
+"X-Generator: Poedit 1.8.7.1\n"
 
 msgid "Jack server not found"
 msgstr "Jack-server ikke funnet"
@@ -54,9 +54,6 @@
 msgid "Server sent bad data."
 msgstr "Tjener sendte ugyldige data."
 
-msgid "Internal data stream error."
-msgstr "Intern feil i datastrøm."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Ingen eller ugyldig inndatalyd, AVI-strømmen vil bli skadet."
 
@@ -85,9 +82,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Filen inneholder for mange strømmer. Spiller bare første %d"
 
-msgid "Internal data flow error."
-msgstr "Intern dataflytfeil."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -151,10 +145,10 @@
 msgstr "Kunne ikke åpne lydenhet for opptak."
 
 msgid "CoreAudio device not found"
-msgstr ""
+msgstr "CoreAudio-enhet ikke funnet"
 
 msgid "CoreAudio device could not be opened"
-msgstr ""
+msgstr "CoreAudio-enhet kune ikke åpnes"
 
 msgid "Record Source"
 msgstr "Opptakskilde"
@@ -424,6 +418,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Kan ikke operere uten en klokke"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Intern feil i datastrøm."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Intern dataflytfeil."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Enhet «%s» støtter ikke videoopptak"
 
diff --git a/po/nl.gmo b/po/nl.gmo
index 9ecf164..12fbdf7 100644
--- a/po/nl.gmo
+++ b/po/nl.gmo
Binary files differ
diff --git a/po/nl.po b/po/nl.po
index 53b218c..5a273fd 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-20 16:40+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr "De server stuurde onjuiste gegevens."
 
-msgid "Internal data stream error."
-msgstr "Interne fout in gegevensstroom."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geen of ongeldig invoergeluid, AVI-stroom zal slecht zijn."
 
@@ -87,9 +84,6 @@
 msgstr ""
 "Dit bestand bevat te veel stromen. Alleen de eerste %d worden afgespeeld."
 
-msgid "Internal data flow error."
-msgstr "Interne fout in de gegevensdoorvoer."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -430,6 +424,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Kan niet werken zonder een klok."
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Interne fout in gegevensstroom."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Interne fout in de gegevensdoorvoer."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Apparaat '%s' ondersteunt het opnemen van video niet"
 
diff --git a/po/or.gmo b/po/or.gmo
index 759fd71..efacd54 100644
--- a/po/or.gmo
+++ b/po/or.gmo
Binary files differ
diff --git a/po/or.po b/po/or.po
index b4f4ba2..47e1dc6 100644
--- a/po/or.po
+++ b/po/or.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "ନିବେଶ ଧ୍ବନି ନାହିଁ ବା ଅବୈଧ ଅଛି. ଏ.ଭି.ଆଇ. ଧାରା ଭ୍ରଷ୍ଟ ହୋଇଯିବ."
 
@@ -88,9 +85,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
diff --git a/po/pl.gmo b/po/pl.gmo
index da7baba..d502dd9 100644
--- a/po/pl.gmo
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
index da5b9bb..d974478 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-20 21:43+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -51,9 +51,6 @@
 msgid "Server sent bad data."
 msgstr "Serwer przysłał błędne dane."
 
-msgid "Internal data stream error."
-msgstr "Błąd wewnętrzny strumienia danych."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Brak lub niepoprawne wejście dźwięku, strumień AVI będzie uszkodzony."
 
@@ -83,9 +80,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Ten plik zawiera zbyt dużo strumieni. Odtwarzanie tylko %d pierwszych"
 
-msgid "Internal data flow error."
-msgstr "Błąd wewnętrzny przepływu danych."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -426,3 +420,9 @@
 
 msgid "Cannot operate without a clock"
 msgstr "Nie można pracować bez zegara"
+
+#~ msgid "Internal data stream error."
+#~ msgstr "Błąd wewnętrzny strumienia danych."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Błąd wewnętrzny przepływu danych."
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
index 9cdc07e..3c6aa16 100644
--- a/po/pt_BR.gmo
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
index fb2d166..b8fe44a 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -13,7 +13,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-05-06 17:49-0300\n"
 "Last-Translator: Fabrício Godoy <skarllot@gmail.com>\n"
 "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
@@ -61,9 +61,6 @@
 msgid "Server sent bad data."
 msgstr "O servidor enviou dados ruins."
 
-msgid "Internal data stream error."
-msgstr "Erro interno no fluxo de dados."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Entrada de áudio nula ou inválida, o fluxo AVI pode estar corrompido."
 
@@ -94,9 +91,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Este arquivo contêm muitos fluxos. Apenas reproduzindo o primeiro %d"
 
-msgid "Internal data flow error."
-msgstr "Erro interno no fluxo de dados."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -446,6 +440,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Não é possível operar sem um temporizador"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Erro interno no fluxo de dados."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Erro interno no fluxo de dados."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "O dispositivo \"%s\" não tem suporte a captura de vídeo"
 
diff --git a/po/ro.gmo b/po/ro.gmo
index 247c45f..97f49ca 100644
--- a/po/ro.gmo
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
index af797d4..9f4ac1a 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -5,7 +5,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 0.10.23.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -56,9 +56,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "Eroare internă a fluxului de date."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Intrarea audio nu există sau este nevalidă, fluxul de date AVI va fi corupt."
@@ -88,9 +85,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Fișierul conține prea multe fluxuri. Se redau doar primele %d"
 
-msgid "Internal data flow error."
-msgstr "Eroare internă a fluxului de date."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -454,6 +448,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Nu se poate opera fără un ceas"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Eroare internă a fluxului de date."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Eroare internă a fluxului de date."
+
 #, fuzzy
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Dispozitivul „%s” nu este un dispozitiv de ieșire."
diff --git a/po/ru.gmo b/po/ru.gmo
index fcb5c6e..0176890 100644
--- a/po/ru.gmo
+++ b/po/ru.gmo
Binary files differ
diff --git a/po/ru.po b/po/ru.po
index 1fad7e3..48a619a 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-21 09:55+0300\n"
 "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
 "Language-Team: Russian <gnu@d07.ru>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Сервер прислал некорректные данные."
 
-msgid "Internal data stream error."
-msgstr "Внутренняя ошибка потока данных."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Входящие аудио-данные отсутствуют или недействительны, поток AVI будет "
@@ -93,9 +90,6 @@
 msgstr ""
 "Файл содержит слишком много потоков. Будет воспроизведёно только первых %d"
 
-msgid "Internal data flow error."
-msgstr "Внутренняя ошибка потока данных."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -440,6 +434,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Операция невозможна без часов"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Внутренняя ошибка потока данных."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Внутренняя ошибка потока данных."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Устройство «%s» не поддерживает захват видео"
 
diff --git a/po/sk.gmo b/po/sk.gmo
index 2f3c599..c60ba03 100644
--- a/po/sk.gmo
+++ b/po/sk.gmo
Binary files differ
diff --git a/po/sk.po b/po/sk.po
index acbf9f7..8213ce4 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-05-20 12:31+0100\n"
 "Last-Translator: Peter Tuhársky <tuharsky@misbb.sk>\n"
 "Language-Team: Slovak <sk-i18n@lists.linux.sk>\n"
@@ -53,9 +53,6 @@
 msgid "Server sent bad data."
 msgstr "Server odoslal chybné údaje."
 
-msgid "Internal data stream error."
-msgstr "Vnútorná chyba prúdu údajov."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Žiadny alebo chybný vstup zvuku, prúd údajov AVI bude poškodený."
 
@@ -85,9 +82,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Tento súbor obsahuje príliš mnoho prúdov údajov. Prehrávam iba prvý %d"
 
-msgid "Internal data flow error."
-msgstr "Vnútorná chyba toku údajov."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -429,6 +423,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Nemôžem fungovať bez hodín"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Vnútorná chyba prúdu údajov."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Vnútorná chyba toku údajov."
+
 #~ msgid "Could not establish connection to sound server"
 #~ msgstr "Nepodarilo sa nadviazať spojenie so zvukovým serverom"
 
diff --git a/po/sl.gmo b/po/sl.gmo
index 9b342bd..bb0b11b 100644
--- a/po/sl.gmo
+++ b/po/sl.gmo
Binary files differ
diff --git a/po/sl.po b/po/sl.po
index d60a93c..5327073 100644
--- a/po/sl.po
+++ b/po/sl.po
@@ -10,7 +10,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.2.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -59,9 +59,6 @@
 msgid "Server sent bad data."
 msgstr "Strežnik je poslal slabe podatke."
 
-msgid "Internal data stream error."
-msgstr "Notranja napaka pretoka podatkov."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Napaka vhodnega zvoka, AVI pretok bo pokvarjen."
 
@@ -90,9 +87,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Datoteka vsebuje več pretokov. Predvajano bo le začetnih %d"
 
-msgid "Internal data flow error."
-msgstr "Notranja napaka pretoka podatkov."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -440,5 +434,11 @@
 msgid "Cannot operate without a clock"
 msgstr "Izvajanje opravil brez ure ni mogoče"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Notranja napaka pretoka podatkov."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Notranja napaka pretoka podatkov."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Naprava \"%s\" ne podpira zajemanja videa."
diff --git a/po/sq.gmo b/po/sq.gmo
index 2faf1f3..ccc58ea 100644
--- a/po/sq.gmo
+++ b/po/sq.gmo
Binary files differ
diff --git a/po/sq.po b/po/sq.po
index e47a276..f755648 100644
--- a/po/sq.po
+++ b/po/sq.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins 0.8.3\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr ""
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Input audio i gabuar ose mungon, stream AVI mund të jetë i dëmtuar."
 
@@ -86,9 +83,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-msgid "Internal data flow error."
-msgstr ""
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
diff --git a/po/sr.gmo b/po/sr.gmo
index 8cf5fec..ca222f7 100644
--- a/po/sr.gmo
+++ b/po/sr.gmo
Binary files differ
diff --git a/po/sr.po b/po/sr.po
index 569baf2..064499c 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-03-05 09:52+0200\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -54,9 +54,6 @@
 msgid "Server sent bad data."
 msgstr "Сервер је послао лоше податке."
 
-msgid "Internal data stream error."
-msgstr "Унутрашња грешка тока података."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Улазног звука нема или је неисправан, АВИ ток ће бити оштећен."
 
@@ -86,9 +83,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Ова датотека садржи превише токова. Пуштам само први %d"
 
-msgid "Internal data flow error."
-msgstr "Унутрaшња грешка протока података."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -428,5 +422,11 @@
 msgid "Cannot operate without a clock"
 msgstr "Не могу да радим без сата"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Унутрашња грешка тока података."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Унутрaшња грешка протока података."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Уређај „%s“ не подржава видео снимање"
diff --git a/po/sv.gmo b/po/sv.gmo
index 6cef16b..5e610fa 100644
--- a/po/sv.gmo
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
index 09af49d..dbdb58b 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-20 16:13+0100\n"
 "Last-Translator: Sebastian Rasmussen <sebras@gmail.com>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -55,9 +55,6 @@
 msgid "Server sent bad data."
 msgstr "Servern skickade felaktigt data."
 
-msgid "Internal data stream error."
-msgstr "Internt fel i dataström."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Inget eller ogiltigt ingångsljud. AVI-strömmen kommer att skadas."
 
@@ -87,9 +84,6 @@
 msgstr ""
 "Den här filen innehåller för många strömmar. Spelar endast upp de första %d"
 
-msgid "Internal data flow error."
-msgstr "Internt fel i dataflöde."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -437,5 +431,11 @@
 msgid "Cannot operate without a clock"
 msgstr "Kan inte fungera utan en klocka"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Internt fel i dataström."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Internt fel i dataflöde."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Enheten \"%s\" stöder inte videoinfångning."
diff --git a/po/tr.gmo b/po/tr.gmo
index b2feb92..549629a 100644
--- a/po/tr.gmo
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
index a02c7e8..ab087f6 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.4.1\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -58,9 +58,6 @@
 msgid "Server sent bad data."
 msgstr "Sunucu yetersiz veri gönderdi."
 
-msgid "Internal data stream error."
-msgstr "İç veri akım hatası."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "Geçerli bir ses girişi bulunamadı. AVI akışı kesilecek."
 
@@ -89,9 +86,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Bu dosya çok fazla akış içeriyor. Sadece ilki oynatılıyor %d"
 
-msgid "Internal data flow error."
-msgstr "İç veri akış hatası."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -424,6 +418,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Saat olmadan çalışamaz"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "İç veri akım hatası."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "İç veri akış hatası."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Aygıt '%s' video yakalamayı desteklemiyor"
 
diff --git a/po/uk.gmo b/po/uk.gmo
index bd9f384..1e8670c 100644
--- a/po/uk.gmo
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
index 3b67396..fa55884 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-20 17:27+0200\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Сервером надіслано помилкові дані."
 
-msgid "Internal data stream error."
-msgstr "Внутрішня помилка потоку даних."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Не вказано або вказано некоректний вхід звукових даних, AVI-потік буде "
@@ -93,9 +90,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Файл містить надто багато потоків. Відтворюються лише перші %d"
 
-msgid "Internal data flow error."
-msgstr "Помилка внутрішнього перенесення даних."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -446,6 +440,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Робота без годинника неможлива"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Внутрішня помилка потоку даних."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Помилка внутрішнього перенесення даних."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Пристрій «%s» не може захоплювати відеодані"
 
diff --git a/po/vi.gmo b/po/vi.gmo
index 09847aa..df24dc2 100644
--- a/po/vi.gmo
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
index 20a6ebd..5dfbe7e 100644
--- a/po/vi.po
+++ b/po/vi.po
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-21 07:25+0700\n"
 "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n"
 "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
@@ -57,9 +57,6 @@
 msgid "Server sent bad data."
 msgstr "Máy chủ gửi dữ liệu sai."
 
-msgid "Internal data stream error."
-msgstr "Lỗi luồng dữ liệu nội bộ."
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr ""
 "Chưa có dữ liệu âm thanh nhập, hoặc dữ liệu âm thanh nhập không hợp lệ. Vì "
@@ -90,9 +87,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "Tập tin này chứa quá nhiều luồng nên chỉ phát %d đầu tiên"
 
-msgid "Internal data flow error."
-msgstr "Lỗi luồng dữ liệu nội bộ."
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -439,6 +433,12 @@
 msgid "Cannot operate without a clock"
 msgstr "Không thể thao tác khi không có đồng hồ"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "Lỗi luồng dữ liệu nội bộ."
+
+#~ msgid "Internal data flow error."
+#~ msgstr "Lỗi luồng dữ liệu nội bộ."
+
 #~ msgid "Device '%s' does not support video capture"
 #~ msgstr "Thiết bị “%s” không hỗ trợ chức năng quay video"
 
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
index 81d9d8d..1590b02 100644
--- a/po/zh_CN.gmo
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
index dbe0c32..a8a2c49 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good 1.7.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+0300\n"
 "PO-Revision-Date: 2016-02-21 16:52+0800\n"
 "Last-Translator: Tianze Wang <zwpwjwtz@126.com>\n"
 "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
@@ -53,9 +53,6 @@
 msgid "Server sent bad data."
 msgstr "服务器发送了错误的数据。"
 
-msgid "Internal data stream error."
-msgstr "内部数据流错误。"
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "没有或无效的输入音频,AVI 流将损坏。"
 
@@ -84,9 +81,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr "此文件包含了太多的流。只播放前面 %d 个"
 
-msgid "Internal data flow error."
-msgstr "内部数据流错误。"
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -409,6 +403,12 @@
 msgid "Cannot operate without a clock"
 msgstr "没有时钟的话无法操作"
 
+#~ msgid "Internal data stream error."
+#~ msgstr "内部数据流错误。"
+
+#~ msgid "Internal data flow error."
+#~ msgstr "内部数据流错误。"
+
 #~ msgid "Failed to query sound server capabilities"
 #~ msgstr "查寻音频服务器的服务失败"
 
diff --git a/po/zh_HK.gmo b/po/zh_HK.gmo
index 3985c64..7eecb14 100644
--- a/po/zh_HK.gmo
+++ b/po/zh_HK.gmo
Binary files differ
diff --git a/po/zh_HK.po b/po/zh_HK.po
index d74d857..ce3dc35 100644
--- a/po/zh_HK.po
+++ b/po/zh_HK.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -51,9 +51,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "內部資料串流發生錯誤。"
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "沒有任何輸入的音效資料或者資料無效,表示 AVI 串流出現錯誤。"
 
@@ -82,10 +79,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#, fuzzy
-msgid "Internal data flow error."
-msgstr "內部資料串流發生錯誤。"
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -407,6 +400,13 @@
 msgid "Cannot operate without a clock"
 msgstr ""
 
+#~ msgid "Internal data stream error."
+#~ msgstr "內部資料串流發生錯誤。"
+
+#, fuzzy
+#~ msgid "Internal data flow error."
+#~ msgstr "內部資料串流發生錯誤。"
+
 #~ msgid ""
 #~ "Could not open audio device for mixer control handling. This version of "
 #~ "the Open Sound System is not supported by this element."
diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo
index ad50fe5..8aaa25b 100644
--- a/po/zh_TW.gmo
+++ b/po/zh_TW.gmo
Binary files differ
diff --git a/po/zh_TW.po b/po/zh_TW.po
index d6e6dfe..abea9b8 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -6,7 +6,7 @@
 msgstr ""
 "Project-Id-Version: gst-plugins-good-0.10.2 0.10.2\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n"
-"POT-Creation-Date: 2016-08-19 11:57+0300\n"
+"POT-Creation-Date: 2016-09-30 12:16+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"
@@ -51,9 +51,6 @@
 msgid "Server sent bad data."
 msgstr ""
 
-msgid "Internal data stream error."
-msgstr "內部資料串流發生錯誤。"
-
 msgid "No or invalid input audio, AVI stream will be corrupt."
 msgstr "沒有任何輸入的音效資料或者資料無效,表示 AVI 串流出現錯誤。"
 
@@ -82,10 +79,6 @@
 msgid "This file contains too many streams. Only playing first %d"
 msgstr ""
 
-#, fuzzy
-msgid "Internal data flow error."
-msgstr "內部資料串流發生錯誤。"
-
 msgid ""
 "No supported stream was found. You might need to install a GStreamer RTSP "
 "extension plugin for Real media streams."
@@ -407,6 +400,13 @@
 msgid "Cannot operate without a clock"
 msgstr ""
 
+#~ msgid "Internal data stream error."
+#~ msgstr "內部資料串流發生錯誤。"
+
+#, fuzzy
+#~ msgid "Internal data flow error."
+#~ msgstr "內部資料串流發生錯誤。"
+
 #~ msgid ""
 #~ "Could not open audio device for mixer control handling. This version of "
 #~ "the Open Sound System is not supported by this element."
diff --git a/sys/Makefile.in b/sys/Makefile.in
index 882d2c7..b119e1b 100644
--- a/sys/Makefile.in
+++ b/sys/Makefile.in
@@ -108,6 +108,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -326,6 +327,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -432,6 +434,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -499,6 +504,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/directsound/Makefile.in b/sys/directsound/Makefile.in
index c143c56..9ceebfe 100644
--- a/sys/directsound/Makefile.in
+++ b/sys/directsound/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -345,6 +346,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -451,6 +453,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -518,6 +523,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/directsound/gstdirectsoundsink.c b/sys/directsound/gstdirectsoundsink.c
index c61e5e1..573e2b8 100644
--- a/sys/directsound/gstdirectsoundsink.c
+++ b/sys/directsound/gstdirectsoundsink.c
@@ -109,6 +109,8 @@
 static gboolean gst_directsound_sink_is_spdif_format (GstAudioRingBufferSpec *
     spec);
 
+static gchar *gst_hres_to_string (HRESULT hRes);
+
 static GstStaticPadTemplate directsoundsink_sink_factory =
     GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
@@ -208,8 +210,8 @@
       "Output to a sound card via Direct Sound",
       "Sebastien Moutte <sebastien@moutte.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&directsoundsink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &directsoundsink_sink_factory);
 }
 
 static void
@@ -442,10 +444,12 @@
 
   /* create and initialize a DirecSound object */
   if (FAILED (hRes = DirectSoundCreate (lpGuid, &dsoundsink->pDS, NULL))) {
+    gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
         ("gst_directsound_sink_open: DirectSoundCreate: %s",
-            DXGetErrorString9 (hRes)), (NULL));
+            error_text), (NULL));
     g_free (lpGuid);
+    g_free (error_text);
     return FALSE;
   }
 
@@ -453,9 +457,11 @@
 
   if (FAILED (hRes = IDirectSound_SetCooperativeLevel (dsoundsink->pDS,
               GetDesktopWindow (), DSSCL_PRIORITY))) {
+    gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
         ("gst_directsound_sink_open: IDirectSound_SetCooperativeLevel: %s",
-            DXGetErrorString9 (hRes)), (NULL));
+            error_text), (NULL));
+    g_free (error_text);
     return FALSE;
   }
 
@@ -548,9 +554,11 @@
   hRes = IDirectSound_CreateSoundBuffer (dsoundsink->pDS, &descSecondary,
       &dsoundsink->pDSBSecondary, NULL);
   if (FAILED (hRes)) {
+    gchar *error_text = gst_hres_to_string (hRes);
     GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_READ,
         ("gst_directsound_sink_prepare: IDirectSound_CreateSoundBuffer: %s",
-            DXGetErrorString9 (hRes)), (NULL));
+            error_text), (NULL));
+    g_free (error_text);
     return FALSE;
   }
 
@@ -649,12 +657,19 @@
           && (dwStatus & DSBSTATUS_PLAYING))
         goto calculate_freesize;
       else {
+        gchar *err1, *err2;
+
         dsoundsink->first_buffer_after_reset = FALSE;
         GST_DSOUND_UNLOCK (dsoundsink);
+
+        err1 = gst_hres_to_string (hRes);
+        err2 = gst_hres_to_string (hRes2);
         GST_ELEMENT_ERROR (dsoundsink, RESOURCE, OPEN_WRITE,
-            ("gst_directsound_sink_write: IDirectSoundBuffer_GetStatus %s, IDirectSoundBuffer_GetCurrentPosition: %s, dwStatus: %lu",
-                DXGetErrorString9 (hRes2), DXGetErrorString9 (hRes), dwStatus),
-            (NULL));
+            ("gst_directsound_sink_write: IDirectSoundBuffer_GetStatus %s, "
+                "IDirectSoundBuffer_GetCurrentPosition: %s, dwStatus: %lu",
+                err2, err1, dwStatus), (NULL));
+        g_free (err1);
+        g_free (err2);
         return -1;
       }
     }
@@ -819,9 +834,10 @@
   hRes = IDirectSound_CreateSoundBuffer (dsoundsink->pDS, &descSecondary,
       &tmpBuffer, NULL);
   if (FAILED (hRes)) {
+    gchar *error_text = gst_hres_to_string (hRes);
     GST_INFO_OBJECT (dsoundsink, "AC3 passthrough not supported "
-        "(IDirectSound_CreateSoundBuffer returned: %s)\n",
-        DXGetErrorString9 (hRes));
+        "(IDirectSound_CreateSoundBuffer returned: %s)\n", error_text);
+    g_free (error_text);
     tmp = gst_caps_new_empty_simple ("audio/x-ac3");
     tmp2 = gst_caps_subtract (caps, tmp);
     gst_caps_unref (tmp);
@@ -836,9 +852,10 @@
     GST_INFO_OBJECT (dsoundsink, "AC3 passthrough supported");
     hRes = IDirectSoundBuffer_Release (tmpBuffer);
     if (FAILED (hRes)) {
+      gchar *error_text = gst_hres_to_string (hRes);
       GST_DEBUG_OBJECT (dsoundsink,
-          "(IDirectSoundBuffer_Release returned: %s)\n",
-          DXGetErrorString9 (hRes));
+          "(IDirectSoundBuffer_Release returned: %s)\n", error_text);
+      g_free (error_text);
     }
   }
 #else
@@ -967,3 +984,28 @@
   g_free (dsoundsink->device_id);
   dsoundsink->device_id = g_strdup (device_id);
 }
+
+/* Converts a HRESULT error to a text string
+ * LPTSTR is either a */
+static gchar *
+gst_hres_to_string (HRESULT hRes)
+{
+  DWORD flags;
+  gchar *ret_text;
+  LPTSTR error_text = NULL;
+
+  flags = FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER
+      | FORMAT_MESSAGE_IGNORE_INSERTS;
+  FormatMessage (flags, NULL, hRes, MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
+      (LPTSTR) & error_text, 0, NULL);
+
+#ifdef UNICODE
+  /* If UNICODE is defined, LPTSTR is LPWSTR which is UTF-16 */
+  ret_text = g_utf16_to_utf8 (error_text, 0, NULL, NULL, NULL);
+#else
+  ret_text = g_strdup (error_text);
+#endif
+
+  LocalFree (error_text);
+  return ret_text;
+}
diff --git a/sys/directsound/gstdirectsoundsink.h b/sys/directsound/gstdirectsoundsink.h
index c9f5879..51f7648 100644
--- a/sys/directsound/gstdirectsoundsink.h
+++ b/sys/directsound/gstdirectsoundsink.h
@@ -34,7 +34,6 @@
 #include <gst/audio/gstaudiosink.h>
 
 #include <windows.h>
-#include <dxerr9.h>
 #include <dsound.h>
 #include <mmreg.h> 
 #include <ks.h> 
diff --git a/sys/oss/Makefile.in b/sys/oss/Makefile.in
index a6632bc..1a107b6 100644
--- a/sys/oss/Makefile.in
+++ b/sys/oss/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/oss/gstosssink.c b/sys/oss/gstosssink.c
index 3ee3c2a..2e6b8c5 100644
--- a/sys/oss/gstosssink.c
+++ b/sys/oss/gstosssink.c
@@ -183,8 +183,8 @@
       "Erik Walthinsen <omega@cse.ogi.edu>, "
       "Wim Taymans <wim.taymans@chello.be>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&osssink_sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &osssink_sink_factory);
 }
 
 static void
diff --git a/sys/oss/gstosssrc.c b/sys/oss/gstosssrc.c
index 60c9e05..4923ad2 100644
--- a/sys/oss/gstosssrc.c
+++ b/sys/oss/gstosssrc.c
@@ -167,8 +167,8 @@
       "Capture from a sound card via OSS",
       "Erik Walthinsen <omega@cse.ogi.edu>, " "Wim Taymans <wim@fluendo.com>");
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&osssrc_src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class,
+      &osssrc_src_factory);
 }
 
 static void
diff --git a/sys/oss4/Makefile.in b/sys/oss4/Makefile.in
index 74cacec..2b36cac 100644
--- a/sys/oss4/Makefile.in
+++ b/sys/oss4/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/osxaudio/Makefile.am b/sys/osxaudio/Makefile.am
index 12b7d03..f5f1d9c 100644
--- a/sys/osxaudio/Makefile.am
+++ b/sys/osxaudio/Makefile.am
@@ -17,21 +17,22 @@
     $(GST_LIBS)
 
 libgstosxaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework,CoreAudio  -Wl,-framework,AudioToolbox
-
-if !HAVE_IOS
-libgstosxaudio_la_LDFLAGS += -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
-endif
-
 libgstosxaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 
 noinst_HEADERS = gstosxaudiosink.h	  \
+                 gstosxaudiodeviceprovider.h \
                  gstosxaudioelement.h \
                  gstosxaudioringbuffer.h	  \
                  gstosxaudiosrc.h     \
                  gstosxcoreaudiocommon.h     \
-                 gstosxcoreaudio.h \
-                 gstosxcoreaudiohal.c \
-                 gstosxcoreaudioremoteio.c
+                 gstosxcoreaudio.h
 
+EXTRA_DIST = gstosxcoreaudiohal.c \
+             gstosxcoreaudioremoteio.c
 
-
+if !HAVE_IOS
+libgstosxaudio_la_SOURCES += gstosxaudiodeviceprovider.c
+libgstosxaudio_la_LDFLAGS += -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
+else
+EXTRA_DIST += gstosxaudiodeviceprovider.c
+endif
diff --git a/sys/osxaudio/Makefile.in b/sys/osxaudio/Makefile.in
index ea7d66b..9438460 100644
--- a/sys/osxaudio/Makefile.in
+++ b/sys/osxaudio/Makefile.in
@@ -90,7 +90,9 @@
 build_triplet = @build@
 host_triplet = @host@
 target_triplet = @target@
-@HAVE_IOS_FALSE@am__append_1 = -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
+@HAVE_IOS_FALSE@am__append_1 = gstosxaudiodeviceprovider.c
+@HAVE_IOS_FALSE@am__append_2 = -Wl,-framework,AudioUnit -Wl,-framework,CoreServices
+@HAVE_IOS_TRUE@am__append_3 = gstosxaudiodeviceprovider.c
 subdir = sys/osxaudio
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \
@@ -100,6 +102,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -165,6 +168,11 @@
 am__DEPENDENCIES_1 =
 libgstosxaudio_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
+am__libgstosxaudio_la_SOURCES_DIST = gstosxaudioringbuffer.c \
+	gstosxaudioelement.c gstosxaudiosink.c gstosxaudiosrc.c \
+	gstosxcoreaudiocommon.c gstosxcoreaudio.c gstosxaudio.c \
+	gstosxaudiodeviceprovider.c
+@HAVE_IOS_FALSE@am__objects_1 = libgstosxaudio_la-gstosxaudiodeviceprovider.lo
 am_libgstosxaudio_la_OBJECTS =  \
 	libgstosxaudio_la-gstosxaudioringbuffer.lo \
 	libgstosxaudio_la-gstosxaudioelement.lo \
@@ -172,7 +180,7 @@
 	libgstosxaudio_la-gstosxaudiosrc.lo \
 	libgstosxaudio_la-gstosxcoreaudiocommon.lo \
 	libgstosxaudio_la-gstosxcoreaudio.lo \
-	libgstosxaudio_la-gstosxaudio.lo
+	libgstosxaudio_la-gstosxaudio.lo $(am__objects_1)
 libgstosxaudio_la_OBJECTS = $(am_libgstosxaudio_la_OBJECTS)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
@@ -217,7 +225,7 @@
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
 SOURCES = $(libgstosxaudio_la_SOURCES)
-DIST_SOURCES = $(libgstosxaudio_la_SOURCES)
+DIST_SOURCES = $(am__libgstosxaudio_la_SOURCES_DIST)
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -349,6 +357,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -455,6 +464,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -522,6 +534,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -573,14 +586,10 @@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 plugin_LTLIBRARIES = libgstosxaudio.la
-libgstosxaudio_la_SOURCES = gstosxaudioringbuffer.c   \
-                            gstosxaudioelement.c \
-                            gstosxaudiosink.c    \
-                            gstosxaudiosrc.c     \
-                            gstosxcoreaudiocommon.c     \
-                            gstosxcoreaudio.c     \
-                            gstosxaudio.c
-
+libgstosxaudio_la_SOURCES = gstosxaudioringbuffer.c \
+	gstosxaudioelement.c gstosxaudiosink.c gstosxaudiosrc.c \
+	gstosxcoreaudiocommon.c gstosxcoreaudio.c gstosxaudio.c \
+	$(am__append_1)
 libgstosxaudio_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
     -Wno-deprecated-declarations
 
@@ -592,17 +601,18 @@
 
 libgstosxaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) \
 	-Wl,-framework,CoreAudio -Wl,-framework,AudioToolbox \
-	$(am__append_1)
+	$(am__append_2)
 libgstosxaudio_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 noinst_HEADERS = gstosxaudiosink.h	  \
+                 gstosxaudiodeviceprovider.h \
                  gstosxaudioelement.h \
                  gstosxaudioringbuffer.h	  \
                  gstosxaudiosrc.h     \
                  gstosxcoreaudiocommon.h     \
-                 gstosxcoreaudio.h \
-                 gstosxcoreaudiohal.c \
-                 gstosxcoreaudioremoteio.c
+                 gstosxcoreaudio.h
 
+EXTRA_DIST = gstosxcoreaudiohal.c gstosxcoreaudioremoteio.c \
+	$(am__append_3)
 all: all-am
 
 .SUFFIXES:
@@ -682,6 +692,7 @@
 	-rm -f *.tab.c
 
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxaudio_la-gstosxaudio.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxaudio_la-gstosxaudioelement.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxaudio_la-gstosxaudioringbuffer.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstosxaudio_la-gstosxaudiosink.Plo@am__quote@
@@ -762,6 +773,13 @@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudio.lo `test -f 'gstosxaudio.c' || echo '$(srcdir)/'`gstosxaudio.c
 
+libgstosxaudio_la-gstosxaudiodeviceprovider.lo: gstosxaudiodeviceprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -MT libgstosxaudio_la-gstosxaudiodeviceprovider.lo -MD -MP -MF $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Tpo -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Tpo $(DEPDIR)/libgstosxaudio_la-gstosxaudiodeviceprovider.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='gstosxaudiodeviceprovider.c' object='libgstosxaudio_la-gstosxaudiodeviceprovider.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 $(libgstosxaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstosxaudio_la_CFLAGS) $(CFLAGS) -c -o libgstosxaudio_la-gstosxaudiodeviceprovider.lo `test -f 'gstosxaudiodeviceprovider.c' || echo '$(srcdir)/'`gstosxaudiodeviceprovider.c
+
 mostlyclean-libtool:
 	-rm -f *.lo
 
diff --git a/sys/osxaudio/gstosxaudio.c b/sys/osxaudio/gstosxaudio.c
index c48b03f..99dfdbf 100644
--- a/sys/osxaudio/gstosxaudio.c
+++ b/sys/osxaudio/gstosxaudio.c
@@ -30,6 +30,9 @@
 #include "gstosxaudioelement.h"
 #include "gstosxaudiosink.h"
 #include "gstosxaudiosrc.h"
+#ifndef HAVE_IOS
+#include "gstosxaudiodeviceprovider.h"
+#endif
 
 static gboolean
 plugin_init (GstPlugin * plugin)
@@ -42,6 +45,11 @@
           GST_TYPE_OSX_AUDIO_SRC)) {
     return FALSE;
   }
+#ifndef HAVE_IOS
+  if (!gst_device_provider_register (plugin, "osxaudiodeviceprovider",
+          GST_RANK_PRIMARY, GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER))
+    return FALSE;
+#endif
 
   return TRUE;
 }
diff --git a/sys/osxaudio/gstosxaudiodeviceprovider.c b/sys/osxaudio/gstosxaudiodeviceprovider.c
new file mode 100644
index 0000000..52a222f
--- /dev/null
+++ b/sys/osxaudio/gstosxaudiodeviceprovider.c
@@ -0,0 +1,380 @@
+/* GStreamer
+ * Copyright (C) 2016 Hyunjun Ko <zzoon@igalia.com>
+ *
+ * gstosxaudiodeviceprovider.c: OSX audio device probing and monitoring
+ *
+ * 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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include <gst/audio/audio.h>
+#include "gstosxaudiosrc.h"
+#include "gstosxaudiosink.h"
+#include "gstosxaudiodeviceprovider.h"
+
+static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
+    GST_PAD_SRC,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_OSX_AUDIO_SRC_CAPS)
+    );
+
+static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
+    GST_PAD_SINK,
+    GST_PAD_ALWAYS,
+    GST_STATIC_CAPS (GST_OSX_AUDIO_SINK_CAPS)
+    );
+
+static GstOsxAudioDevice *gst_osx_audio_device_new (AudioDeviceID device_id,
+    const gchar * device_name, GstOsxAudioDeviceType type,
+    GstCoreAudio * core_audio);
+
+G_DEFINE_TYPE (GstOsxAudioDeviceProvider, gst_osx_audio_device_provider,
+    GST_TYPE_DEVICE_PROVIDER);
+
+static GList *gst_osx_audio_device_provider_probe (GstDeviceProvider *
+    provider);
+
+static void
+gst_osx_audio_device_provider_class_init (GstOsxAudioDeviceProviderClass *
+    klass)
+{
+  GstDeviceProviderClass *dm_class = GST_DEVICE_PROVIDER_CLASS (klass);
+
+  dm_class->probe = gst_osx_audio_device_provider_probe;
+
+  gst_device_provider_class_set_static_metadata (dm_class,
+      "OSX Audio Device Provider", "Source/Sink/Audio",
+      "List and monitor OSX audio source and sink devices",
+      "Hyunjun Ko <zzoon@igalia.com>");
+}
+
+static void
+gst_osx_audio_device_provider_init (GstOsxAudioDeviceProvider * provider)
+{
+}
+
+static GstOsxAudioDevice *
+gst_osx_audio_device_provider_probe_device (GstOsxAudioDeviceProvider *
+    provider, AudioDeviceID device_id, const gchar * device_name,
+    GstOsxAudioDeviceType type)
+{
+  GstOsxAudioDevice *device = NULL;
+  GstCoreAudio *core_audio;
+
+  core_audio = gst_core_audio_new (NULL);
+  core_audio->is_src = type == GST_OSX_AUDIO_DEVICE_TYPE_SOURCE ? TRUE : FALSE;
+  core_audio->device_id = device_id;
+
+  if (!gst_core_audio_open (core_audio)) {
+    GST_ERROR ("CoreAudio device could not be opened");
+    goto done;
+  }
+
+  device = gst_osx_audio_device_new (device_id, device_name, type, core_audio);
+
+  gst_core_audio_close (core_audio);
+
+done:
+  g_object_unref (core_audio);
+
+  return device;
+}
+
+static inline gchar *
+_audio_device_get_name (AudioDeviceID device_id, gboolean output)
+{
+  OSStatus status = noErr;
+  UInt32 propertySize = 0;
+  gchar *device_name = NULL;
+  AudioObjectPropertyScope prop_scope;
+
+  AudioObjectPropertyAddress deviceNameAddress = {
+    kAudioDevicePropertyDeviceName,
+    kAudioDevicePropertyScopeOutput,
+    kAudioObjectPropertyElementMaster
+  };
+
+  prop_scope = output ? kAudioDevicePropertyScopeOutput :
+      kAudioDevicePropertyScopeInput;
+
+  deviceNameAddress.mScope = prop_scope;
+
+  /* Get the length of the device name */
+  status = AudioObjectGetPropertyDataSize (device_id,
+      &deviceNameAddress, 0, NULL, &propertySize);
+  if (status != noErr) {
+    goto beach;
+  }
+
+  /* Get the name of the device */
+  device_name = (gchar *) g_malloc (propertySize);
+  status = AudioObjectGetPropertyData (device_id,
+      &deviceNameAddress, 0, NULL, &propertySize, device_name);
+  if (status != noErr) {
+    g_free (device_name);
+    device_name = NULL;
+  }
+
+beach:
+  return device_name;
+}
+
+static inline gboolean
+_audio_device_has_output (AudioDeviceID device_id)
+{
+  OSStatus status = noErr;
+  UInt32 propertySize;
+
+  AudioObjectPropertyAddress streamsAddress = {
+    kAudioDevicePropertyStreams,
+    kAudioDevicePropertyScopeOutput,
+    kAudioObjectPropertyElementMaster
+  };
+
+  status = AudioObjectGetPropertyDataSize (device_id,
+      &streamsAddress, 0, NULL, &propertySize);
+  if (status != noErr) {
+    return FALSE;
+  }
+  if (propertySize == 0) {
+    return FALSE;
+  }
+
+  return TRUE;
+}
+
+static inline AudioDeviceID *
+_audio_system_get_devices (gint * ndevices)
+{
+  OSStatus status = noErr;
+  UInt32 propertySize = 0;
+  AudioDeviceID *devices = NULL;
+
+  AudioObjectPropertyAddress audioDevicesAddress = {
+    kAudioHardwarePropertyDevices,
+    kAudioObjectPropertyScopeGlobal,
+    kAudioObjectPropertyElementMaster
+  };
+
+  status = AudioObjectGetPropertyDataSize (kAudioObjectSystemObject,
+      &audioDevicesAddress, 0, NULL, &propertySize);
+  if (status != noErr) {
+    GST_WARNING ("failed getting number of devices: %d", (int) status);
+    return NULL;
+  }
+
+  *ndevices = propertySize / sizeof (AudioDeviceID);
+
+  devices = (AudioDeviceID *) g_malloc (propertySize);
+  if (devices) {
+    status = AudioObjectGetPropertyData (kAudioObjectSystemObject,
+        &audioDevicesAddress, 0, NULL, &propertySize, devices);
+    if (status != noErr) {
+      GST_WARNING ("failed getting the list of devices: %d", (int) status);
+      g_free (devices);
+      *ndevices = 0;
+      return NULL;
+    }
+  }
+
+  return devices;
+}
+
+static GList *
+gst_osx_audio_device_provider_probe (GstDeviceProvider * provider)
+{
+  GstOsxAudioDeviceProvider *self = GST_OSX_AUDIO_DEVICE_PROVIDER (provider);
+  GList *devices = NULL;
+  GstOsxAudioDevice *device = NULL;
+  AudioDeviceID *osx_devices = NULL;
+  gint i, ndevices = 0;
+
+  osx_devices = _audio_system_get_devices (&ndevices);
+
+  if (ndevices < 1) {
+    GST_WARNING ("no audio output devices found");
+    goto done;
+  }
+
+  GST_INFO ("found %d audio device(s)", ndevices);
+
+  for (i = 0; i < ndevices; i++) {
+    gchar *device_name;
+    GstOsxAudioDeviceType type = GST_OSX_AUDIO_DEVICE_TYPE_INVALID;
+
+    if ((device_name = _audio_device_get_name (osx_devices[i], FALSE))) {
+      if (!_audio_device_has_output (osx_devices[i])) {
+        GST_DEBUG ("Input Device ID: %u Name: %s",
+            (unsigned) osx_devices[i], device_name);
+        type = GST_OSX_AUDIO_DEVICE_TYPE_SOURCE;
+
+      } else {
+        GST_DEBUG ("Output Device ID: %u Name: %s",
+            (unsigned) osx_devices[i], device_name);
+        type = GST_OSX_AUDIO_DEVICE_TYPE_SINK;
+      }
+
+      device =
+          gst_osx_audio_device_provider_probe_device (self, osx_devices[i],
+          device_name, type);
+      if (device) {
+        gst_object_ref_sink (device);
+        devices = g_list_prepend (devices, device);
+      }
+
+      g_free (device_name);
+    }
+  }
+
+done:
+  g_free (osx_devices);
+
+  return devices;
+}
+
+enum
+{
+  PROP_DEVICE_ID = 1,
+};
+
+G_DEFINE_TYPE (GstOsxAudioDevice, gst_osx_audio_device, GST_TYPE_DEVICE);
+
+static void gst_osx_audio_device_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec);
+static void gst_osx_audio_device_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec);
+static GstElement *gst_osx_audio_device_create_element (GstDevice * device,
+    const gchar * name);
+
+static void
+gst_osx_audio_device_class_init (GstOsxAudioDeviceClass * klass)
+{
+  GstDeviceClass *dev_class = GST_DEVICE_CLASS (klass);
+  GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+  dev_class->create_element = gst_osx_audio_device_create_element;
+
+  object_class->get_property = gst_osx_audio_device_get_property;
+  object_class->set_property = gst_osx_audio_device_set_property;
+
+  g_object_class_install_property (object_class, PROP_DEVICE_ID,
+      g_param_spec_int ("device-id", "Device ID", "Device ID of input device",
+          0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+}
+
+static void
+gst_osx_audio_device_init (GstOsxAudioDevice * device)
+{
+}
+
+static GstElement *
+gst_osx_audio_device_create_element (GstDevice * device, const gchar * name)
+{
+  GstOsxAudioDevice *osxdev = GST_OSX_AUDIO_DEVICE (device);
+  GstElement *elem;
+
+  elem = gst_element_factory_make (osxdev->element, name);
+  g_object_set (elem, "device", osxdev->device_id, NULL);
+
+  return elem;
+}
+
+static GstOsxAudioDevice *
+gst_osx_audio_device_new (AudioDeviceID device_id, const gchar * device_name,
+    GstOsxAudioDeviceType type, GstCoreAudio * core_audio)
+{
+  GstOsxAudioDevice *gstdev;
+  const gchar *element_name = NULL;
+  const gchar *klass = NULL;
+  GstCaps *template_caps, *caps;
+
+  g_return_val_if_fail (device_id > 0, NULL);
+  g_return_val_if_fail (device_name, NULL);
+
+  switch (type) {
+    case GST_OSX_AUDIO_DEVICE_TYPE_SOURCE:
+      element_name = "osxaudiosrc";
+      klass = "Audio/Source";
+
+      template_caps = gst_static_pad_template_get_caps (&src_factory);
+      caps = gst_core_audio_probe_caps (core_audio, template_caps);
+      gst_caps_unref (template_caps);
+
+      break;
+    case GST_OSX_AUDIO_DEVICE_TYPE_SINK:
+      element_name = "osxaudiosink";
+      klass = "Audio/Sink";
+
+      template_caps = gst_static_pad_template_get_caps (&sink_factory);
+      caps = gst_core_audio_probe_caps (core_audio, template_caps);
+      gst_caps_unref (template_caps);
+
+      break;
+    default:
+      g_assert_not_reached ();
+      break;
+  }
+
+  gstdev = g_object_new (GST_TYPE_OSX_AUDIO_DEVICE, "device-id",
+      device_id, "display-name", device_name, "caps", caps, "device-class",
+      klass, NULL);
+
+  gstdev->element = element_name;
+
+
+  return gstdev;
+}
+
+static void
+gst_osx_audio_device_get_property (GObject * object, guint prop_id,
+    GValue * value, GParamSpec * pspec)
+{
+  GstOsxAudioDevice *device;
+
+  device = GST_OSX_AUDIO_DEVICE_CAST (object);
+
+  switch (prop_id) {
+    case PROP_DEVICE_ID:
+      g_value_set_int (value, device->device_id);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
+
+
+static void
+gst_osx_audio_device_set_property (GObject * object, guint prop_id,
+    const GValue * value, GParamSpec * pspec)
+{
+  GstOsxAudioDevice *device;
+
+  device = GST_OSX_AUDIO_DEVICE_CAST (object);
+
+  switch (prop_id) {
+    case PROP_DEVICE_ID:
+      device->device_id = g_value_get_int (value);
+      break;
+    default:
+      G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+      break;
+  }
+}
diff --git a/sys/osxaudio/gstosxaudiodeviceprovider.h b/sys/osxaudio/gstosxaudiodeviceprovider.h
new file mode 100644
index 0000000..bd54178
--- /dev/null
+++ b/sys/osxaudio/gstosxaudiodeviceprovider.h
@@ -0,0 +1,91 @@
+/* GStreamer
+ * Copyright (C) 2016 Hyunjun Ko <zzoon@igalia.com>
+ *
+ * gstosxaudiodeviceeprovider.h: OSX audio probing and monitoring
+ *
+ * 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_OSX_AUDIO_DEIVCE_PROVIDER_H__
+#define __GST_OSX_AUDIO_DEIVCE_PROVIDER_H__
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <gst/gst.h>
+#include "gstosxcoreaudiocommon.h"
+
+G_BEGIN_DECLS
+typedef struct _GstOsxAudioDeviceProvider GstOsxAudioDeviceProvider;
+typedef struct _GstOsxAudioDeviceProviderClass GstOsxAudioDeviceProviderClass;
+
+#define GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER                 (gst_osx_audio_device_provider_get_type())
+#define GST_IS_OSX_AUDIO_DEVICE_PROVIDER(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER))
+#define GST_IS_OSX_AUDIO_DEVICE_PROVIDER_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER))
+#define GST_OSX_AUDIO_DEVICE_PROVIDER_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER, GstOsxAudioDeviceProviderClass))
+#define GST_OSX_AUDIO_DEVICE_PROVIDER(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OSX_AUDIO_DEVICE_PROVIDER, GstOsxAudioDeviceProvider))
+#define GST_OSX_AUDIO_DEVICE_PROVIDER_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE_PROVIDER, GstOsxAudioDeviceProviderClass))
+#define GST_OSX_AUDIO_DEVICE_PROVIDER_CAST(obj)            ((GstOsxAudioDeviceProvider *)(obj))
+
+struct _GstOsxAudioDeviceProvider
+{
+  GstDeviceProvider parent;
+};
+
+struct _GstOsxAudioDeviceProviderClass
+{
+  GstDeviceProviderClass parent_class;
+};
+
+GType gst_osx_audio_device_provider_get_type (void);
+
+typedef struct _GstOsxAudioDevice GstOsxAudioDevice;
+typedef struct _GstOsxAudioDeviceClass GstOsxAudioDeviceClass;
+
+#define GST_TYPE_OSX_AUDIO_DEVICE                 (gst_osx_audio_device_get_type())
+#define GST_IS_OSX_AUDIO_DEVICE(obj)              (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OSX_AUDIO_DEVICE))
+#define GST_IS_OSX_AUDIO_DEVICE_CLASS(klass)      (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_OSX_AUDIO_DEVICE))
+#define GST_OSX_AUDIO_DEVICE_GET_CLASS(obj)       (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_OSX_AUDIO_DEVICE, GstOsxAudioClass))
+#define GST_OSX_AUDIO_DEVICE(obj)                 (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OSX_AUDIO_DEVICE, GstOsxAudioDevice))
+#define GST_OSX_AUDIO_DEVICE_CLASS(klass)         (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DEVICE, GstOsxAudioDeviceClass))
+#define GST_OSX_AUDIO_DEVICE_CAST(obj)            ((GstOsxAudioDevice *)(obj))
+
+typedef enum
+{
+  GST_OSX_AUDIO_DEVICE_TYPE_INVALID = 0,
+  GST_OSX_AUDIO_DEVICE_TYPE_SOURCE,
+  GST_OSX_AUDIO_DEVICE_TYPE_SINK
+} GstOsxAudioDeviceType;
+
+struct _GstOsxAudioDevice
+{
+  GstDevice parent;
+
+  const gchar *element;
+  AudioDeviceID device_id;
+};
+
+struct _GstOsxAudioDeviceClass
+{
+  GstDeviceClass parent_class;
+};
+
+GType gst_osx_audio_device_get_type (void);
+
+G_END_DECLS
+#endif /* __GST_OSX_AUDIO_DEIVCE_PROVIDER_H__ */
diff --git a/sys/osxaudio/gstosxaudiosink.c b/sys/osxaudio/gstosxaudiosink.c
index b0a3431..a1fd158 100644
--- a/sys/osxaudio/gstosxaudiosink.c
+++ b/sys/osxaudio/gstosxaudiosink.c
@@ -96,13 +96,7 @@
 static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink",
     GST_PAD_SINK,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "format = (string) " GST_AUDIO_FORMATS_ALL ", "
-        "layout = (string) interleaved, "
-        "rate = (int) [1, MAX], "
-        "channels = (int) [1, 9];"
-        "audio/x-ac3, framed = (boolean) true;"
-        "audio/x-dts, framed = (boolean) true")
+    GST_STATIC_CAPS (GST_OSX_AUDIO_SINK_CAPS)
     );
 
 static void gst_osx_audio_sink_set_property (GObject * object, guint prop_id,
@@ -195,8 +189,7 @@
   gstaudiobasesink_class->payload =
       GST_DEBUG_FUNCPTR (gst_osx_audio_sink_sink_payload);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&sink_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &sink_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Audio Sink (OSX)",
       "Sink/Audio",
diff --git a/sys/osxaudio/gstosxaudiosink.h b/sys/osxaudio/gstosxaudiosink.h
index 1428d76..2f55c4d 100644
--- a/sys/osxaudio/gstosxaudiosink.h
+++ b/sys/osxaudio/gstosxaudiosink.h
@@ -57,6 +57,14 @@
 
 G_BEGIN_DECLS
 
+#define GST_OSX_AUDIO_SINK_CAPS "audio/x-raw, " \
+        "format = (string) " GST_AUDIO_FORMATS_ALL ", " \
+        "layout = (string) interleaved, " \
+        "rate = (int) [1, MAX], " \
+        "channels = (int) [1, 9];" \
+        "audio/x-ac3, framed = (boolean) true;" \
+        "audio/x-dts, framed = (boolean) true"
+
 #define GST_TYPE_OSX_AUDIO_SINK \
   (gst_osx_audio_sink_get_type())
 #define GST_OSX_AUDIO_SINK(obj) \
diff --git a/sys/osxaudio/gstosxaudiosrc.c b/sys/osxaudio/gstosxaudiosrc.c
index 0deda90..4e56778 100644
--- a/sys/osxaudio/gstosxaudiosrc.c
+++ b/sys/osxaudio/gstosxaudiosrc.c
@@ -82,10 +82,7 @@
 static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src",
     GST_PAD_SRC,
     GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("audio/x-raw, "
-        "format = (string) " GST_AUDIO_FORMATS_ALL ", "
-        "layout = (string) interleaved, "
-        "rate = (int) [1, MAX], " "channels = (int) [1, MAX]")
+    GST_STATIC_CAPS (GST_OSX_AUDIO_SRC_CAPS)
     );
 
 static void gst_osx_audio_src_set_property (GObject * object, guint prop_id,
@@ -155,8 +152,7 @@
   gstaudiobasesrc_class->create_ringbuffer =
       GST_DEBUG_FUNCPTR (gst_osx_audio_src_create_ringbuffer);
 
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&src_factory));
+  gst_element_class_add_static_pad_template (gstelement_class, &src_factory);
 
   gst_element_class_set_static_metadata (gstelement_class, "Audio Source (OSX)",
       "Source/Audio",
diff --git a/sys/osxaudio/gstosxaudiosrc.h b/sys/osxaudio/gstosxaudiosrc.h
index fb32aa2..9d825b0 100644
--- a/sys/osxaudio/gstosxaudiosrc.h
+++ b/sys/osxaudio/gstosxaudiosrc.h
@@ -51,6 +51,11 @@
 
 G_BEGIN_DECLS
 
+#define GST_OSX_AUDIO_SRC_CAPS "audio/x-raw, " \
+        "format = (string) " GST_AUDIO_FORMATS_ALL ", " \
+        "layout = (string) interleaved, " \
+        "rate = (int) [1, MAX], " "channels = (int) [1, MAX]"
+
 #define GST_TYPE_OSX_AUDIO_SRC \
   (gst_osx_audio_src_get_type())
 #define GST_OSX_AUDIO_SRC(obj) \
diff --git a/sys/osxvideo/Makefile.am b/sys/osxvideo/Makefile.am
index e908695..0d92a87 100644
--- a/sys/osxvideo/Makefile.am
+++ b/sys/osxvideo/Makefile.am
@@ -12,7 +12,7 @@
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstvideo-$(GST_API_VERSION)
 
-libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,QuickTime -Wl,-framework -Wl,OpenGL
+libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
 libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 
 noinst_HEADERS = osxvideosink.h cocoawindow.h
diff --git a/sys/osxvideo/Makefile.in b/sys/osxvideo/Makefile.in
index f020480..71b151b 100644
--- a/sys/osxvideo/Makefile.in
+++ b/sys/osxvideo/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -580,7 +586,7 @@
 	$(GST_PLUGINS_BASE_LIBS) \
 	-lgstvideo-$(GST_API_VERSION)
 
-libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,QuickTime -Wl,-framework -Wl,OpenGL
+libgstosxvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -Wl,-framework -Wl,Cocoa -Wl,-framework -Wl,OpenGL
 libgstosxvideosink_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS) --tag=CC
 noinst_HEADERS = osxvideosink.h cocoawindow.h
 all: all-am
diff --git a/sys/osxvideo/cocoawindow.h b/sys/osxvideo/cocoawindow.h
index 9355d3c..816f1bb 100644
--- a/sys/osxvideo/cocoawindow.h
+++ b/sys/osxvideo/cocoawindow.h
@@ -27,7 +27,6 @@
  */
 
 #import <Cocoa/Cocoa.h>
-#import <QuickTime/QuickTime.h>
 #import <glib.h>
 #import <gst/video/navigation.h>
 
diff --git a/sys/osxvideo/osxvideosink.h b/sys/osxvideo/osxvideosink.h
index 2bf5d25..d467b0e 100644
--- a/sys/osxvideo/osxvideosink.h
+++ b/sys/osxvideo/osxvideosink.h
@@ -35,7 +35,6 @@
 #include <objc/runtime.h>
 #include <Cocoa/Cocoa.h>
 
-#include <QuickTime/QuickTime.h>
 #import "cocoawindow.h"
 
 GST_DEBUG_CATEGORY_EXTERN (gst_debug_osx_video_sink);
diff --git a/sys/osxvideo/osxvideosink.m b/sys/osxvideo/osxvideosink.m
index 486ae7a..152c6e8 100644
--- a/sys/osxvideo/osxvideosink.m
+++ b/sys/osxvideo/osxvideosink.m
@@ -520,8 +520,7 @@
       "Sink/Video", "OSX native videosink",
       "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_osx_video_sink_sink_template_factory));
+  gst_element_class_add_static_pad_template (element_class, &gst_osx_video_sink_sink_template_factory);
 }
 
 static void
diff --git a/sys/sunaudio/Makefile.in b/sys/sunaudio/Makefile.in
index 7c9c124..305ec72 100644
--- a/sys/sunaudio/Makefile.in
+++ b/sys/sunaudio/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -347,6 +348,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -453,6 +455,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -520,6 +525,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/sunaudio/gstsunaudiosink.c b/sys/sunaudio/gstsunaudiosink.c
index 99e08ea..4073068 100644
--- a/sys/sunaudio/gstsunaudiosink.c
+++ b/sys/sunaudio/gstsunaudiosink.c
@@ -146,11 +146,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sunaudiosink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sunaudiosink_factory);
   gst_element_class_set_static_metadata (element_class, "Sun Audio Sink",
-      "Sink/Audio",
-      "Audio sink for Sun Audio devices",
+      "Sink/Audio", "Audio sink for Sun Audio devices",
       "David A. Schleef <ds@schleef.org>, "
       "Brian Cameron <brian.cameron@sun.com>");
 }
diff --git a/sys/sunaudio/gstsunaudiosrc.c b/sys/sunaudio/gstsunaudiosrc.c
index 0f454bf..79cc4e9 100644
--- a/sys/sunaudio/gstsunaudiosrc.c
+++ b/sys/sunaudio/gstsunaudiosrc.c
@@ -108,11 +108,10 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&gst_sunaudiosrc_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &gst_sunaudiosrc_factory);
   gst_element_class_set_static_metadata (element_class, "Sun Audio Source",
-      "Source/Audio",
-      "Audio source for Sun Audio devices",
+      "Source/Audio", "Audio source for Sun Audio devices",
       "Brian Cameron <brian.cameron@sun.com>");
 }
 
diff --git a/sys/v4l2/Makefile.in b/sys/v4l2/Makefile.in
index efe2bff..47afae7 100644
--- a/sys/v4l2/Makefile.in
+++ b/sys/v4l2/Makefile.in
@@ -107,6 +107,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -370,6 +371,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -476,6 +478,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -543,6 +548,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/v4l2/gstv4l2.c b/sys/v4l2/gstv4l2.c
index 83fcc98..b5e826a 100644
--- a/sys/v4l2/gstv4l2.c
+++ b/sys/v4l2/gstv4l2.c
@@ -119,6 +119,7 @@
   gint video_fd = -1;
   struct v4l2_capability vcap;
   gboolean ret = TRUE;
+  guint32 device_caps;
 
   it = gst_v4l2_iterator_new ();
 
@@ -143,12 +144,16 @@
       continue;
     }
 
-    if (!((vcap.capabilities & (V4L2_CAP_VIDEO_M2M |
-                    V4L2_CAP_VIDEO_M2M_MPLANE)) ||
+    if (vcap.capabilities & V4L2_CAP_DEVICE_CAPS)
+      device_caps = vcap.device_caps;
+    else
+      device_caps = vcap.capabilities;
+
+    if (!((device_caps & (V4L2_CAP_VIDEO_M2M | V4L2_CAP_VIDEO_M2M_MPLANE)) ||
             /* But legacy driver may expose both CAPTURE and OUTPUT */
-            ((vcap.capabilities &
+            ((device_caps &
                     (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE)) &&
-                (vcap.capabilities &
+                (device_caps &
                     (V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE)))))
       continue;
 
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index 3184bd8..bfcfbaa 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -716,7 +716,7 @@
        * poll before that will always fail. Doing an empty read, forces the
        * queue to be initialized now. We only do this if we have a streaming
        * driver. */
-      if (obj->vcap.capabilities & V4L2_CAP_STREAMING)
+      if (obj->device_caps & V4L2_CAP_STREAMING)
         v4l2_read (obj->video_fd, NULL, 0);
 #endif
       break;
diff --git a/sys/v4l2/gstv4l2deviceprovider.c b/sys/v4l2/gstv4l2deviceprovider.c
index d521838..61ca135 100644
--- a/sys/v4l2/gstv4l2deviceprovider.c
+++ b/sys/v4l2/gstv4l2deviceprovider.c
@@ -49,7 +49,7 @@
 static void gst_v4l2_device_provider_finalize (GObject * object);
 static GList *gst_v4l2_device_provider_probe (GstDeviceProvider * provider);
 
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
 static gboolean gst_v4l2_device_provider_start (GstDeviceProvider * provider);
 static void gst_v4l2_device_provider_stop (GstDeviceProvider * provider);
 #endif
@@ -63,7 +63,7 @@
 
   dm_class->probe = gst_v4l2_device_provider_probe;
 
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
   dm_class->start = gst_v4l2_device_provider_start;
   dm_class->stop = gst_v4l2_device_provider_stop;
 #endif
@@ -79,7 +79,7 @@
 static void
 gst_v4l2_device_provider_init (GstV4l2DeviceProvider * provider)
 {
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
   g_cond_init (&provider->started_cond);
 #endif
 }
@@ -87,7 +87,7 @@
 static void
 gst_v4l2_device_provider_finalize (GObject * object)
 {
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
   GstV4l2DeviceProvider *provider = GST_V4L2_DEVICE_PROVIDER (object);
 
   g_cond_clear (&provider->started_cond);
@@ -136,22 +136,30 @@
   gst_structure_set (props, "v4l2.device.device_caps", G_TYPE_UINT,
       v4l2obj->vcap.device_caps, NULL);
 
-  if (v4l2obj->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE)
+  if (v4l2obj->device_caps &
+      (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE))
     type = GST_V4L2_DEVICE_TYPE_SOURCE;
 
-  if (v4l2obj->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT) {
-    /* Morph it in case our initial guess was wrong */
-    v4l2obj->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
-
-    if (type == GST_V4L2_DEVICE_TYPE_INVALID)
-      type = GST_V4L2_DEVICE_TYPE_SINK;
-    else
-      /* We ignore M2M devices that are both capture and output for now
-       * The provider is not for them
-       */
+  if (v4l2obj->device_caps &
+      (V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE)) {
+    /* We ignore M2M devices that are both capture and output for now
+     * The provider is not for them */
+    if (type != GST_V4L2_DEVICE_TYPE_INVALID)
       goto close;
+
+    type = GST_V4L2_DEVICE_TYPE_SINK;
+
+    /* We have opened as a capture as we didn't know, now that know,
+     * let's fixed it */
+    if (v4l2obj->device_caps & V4L2_CAP_VIDEO_OUTPUT_MPLANE)
+      v4l2obj->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
+    else
+      v4l2obj->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
   }
 
+  if (type == GST_V4L2_DEVICE_TYPE_INVALID)
+    goto close;
+
   caps = gst_v4l2_object_get_caps (v4l2obj, NULL);
 
   if (caps == NULL)
@@ -211,7 +219,7 @@
   return devices;
 }
 
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
 
 static GstDevice *
 gst_v4l2_device_provider_device_from_udev (GstV4l2DeviceProvider * provider,
diff --git a/sys/v4l2/gstv4l2object.c b/sys/v4l2/gstv4l2object.c
index 549e06f..e7637d2 100644
--- a/sys/v4l2/gstv4l2object.c
+++ b/sys/v4l2/gstv4l2object.c
@@ -700,17 +700,17 @@
       guint flags = 0;
 
       if (GST_V4L2_IS_OPEN (v4l2object)) {
-        flags |= v4l2object->vcap.capabilities &
+        flags |= v4l2object->device_caps &
             (V4L2_CAP_VIDEO_CAPTURE |
             V4L2_CAP_VIDEO_OUTPUT |
             V4L2_CAP_VIDEO_OVERLAY |
             V4L2_CAP_VBI_CAPTURE |
             V4L2_CAP_VBI_OUTPUT | V4L2_CAP_TUNER | V4L2_CAP_AUDIO);
 
-        if (v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_CAPTURE_MPLANE)
+        if (v4l2object->device_caps & V4L2_CAP_VIDEO_CAPTURE_MPLANE)
           flags |= V4L2_CAP_VIDEO_CAPTURE;
 
-        if (v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT_MPLANE)
+        if (v4l2object->device_caps & V4L2_CAP_VIDEO_OUTPUT_MPLANE)
           flags |= V4L2_CAP_VIDEO_OUTPUT;
       }
       g_value_set_flags (value, flags);
@@ -873,6 +873,9 @@
 
   gst_caps_replace (&v4l2object->probed_caps, NULL);
 
+  /* reset our copy of the device caps */
+  v4l2object->device_caps = 0;
+
   if (v4l2object->formats) {
     gst_v4l2_object_clear_format_list (v4l2object);
   }
@@ -1156,9 +1159,17 @@
   /* ERRORS */
 failed:
   {
-    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
-        (_("Failed to enumerate possible video formats device '%s' can work with"), v4l2object->videodev), ("Failed to get number %d in pixelformat enumeration for %s. (%d - %s)", n, v4l2object->videodev, errno, g_strerror (errno)));
     g_free (format);
+
+    if (!GST_IS_ELEMENT (v4l2object->element))
+      return FALSE;
+
+    GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, SETTINGS,
+        (_("Failed to enumerate possible video formats device '%s' can work "
+                "with"), v4l2object->videodev),
+        ("Failed to get number %d in pixelformat enumeration for %s. (%d - %s)",
+            n, v4l2object->videodev, errno, g_strerror (errno)));
+
     return FALSE;
   }
 }
@@ -1739,14 +1750,14 @@
     } else if (g_str_equal (mimetype, "video/x-bayer")) {
       const gchar *format = gst_structure_get_string (structure, "format");
       if (format) {
-	if (!g_ascii_strcasecmp (format, "bggr"))
-	  fourcc = V4L2_PIX_FMT_SBGGR8;
-	else if (!g_ascii_strcasecmp (format, "gbrg"))
-	  fourcc = V4L2_PIX_FMT_SGBRG8;
-	else if (!g_ascii_strcasecmp (format, "grbg"))
-	  fourcc = V4L2_PIX_FMT_SGRBG8;
-	else if (!g_ascii_strcasecmp (format, "rggb"))
-	  fourcc = V4L2_PIX_FMT_SRGGB8;
+        if (!g_ascii_strcasecmp (format, "bggr"))
+          fourcc = V4L2_PIX_FMT_SBGGR8;
+        else if (!g_ascii_strcasecmp (format, "gbrg"))
+          fourcc = V4L2_PIX_FMT_SGBRG8;
+        else if (!g_ascii_strcasecmp (format, "grbg"))
+          fourcc = V4L2_PIX_FMT_SGRBG8;
+        else if (!g_ascii_strcasecmp (format, "rggb"))
+          fourcc = V4L2_PIX_FMT_SRGGB8;
       }
     } else if (g_str_equal (mimetype, "video/x-sonix")) {
       fourcc = V4L2_PIX_FMT_SN9C10X;
@@ -1887,12 +1898,29 @@
 }
 
 static gboolean
-gst_v4l2_object_get_colorspace (enum v4l2_colorspace colorspace,
-    enum v4l2_quantization range, enum v4l2_ycbcr_encoding matrix,
-    enum v4l2_xfer_func transfer, gboolean is_rgb, GstVideoColorimetry * cinfo)
+gst_v4l2_object_get_colorspace (struct v4l2_format *fmt,
+    GstVideoColorimetry * cinfo)
 {
+  gboolean is_rgb =
+      gst_v4l2_object_v4l2fourcc_is_rgb (fmt->fmt.pix.pixelformat);
+  enum v4l2_colorspace colorspace;
+  enum v4l2_quantization range;
+  enum v4l2_ycbcr_encoding matrix;
+  enum v4l2_xfer_func transfer;
   gboolean ret = TRUE;
 
+  if (V4L2_TYPE_IS_MULTIPLANAR (fmt->type)) {
+    colorspace = fmt->fmt.pix_mp.colorspace;
+    range = fmt->fmt.pix_mp.quantization;
+    matrix = fmt->fmt.pix_mp.ycbcr_enc;
+    transfer = fmt->fmt.pix_mp.xfer_func;
+  } else {
+    colorspace = fmt->fmt.pix.colorspace;
+    range = fmt->fmt.pix.quantization;
+    matrix = fmt->fmt.pix.ycbcr_enc;
+    transfer = fmt->fmt.pix.xfer_func;
+  }
+
   /* First step, set the defaults for each primaries */
   switch (colorspace) {
     case V4L2_COLORSPACE_SMPTE170M:
@@ -2017,6 +2045,12 @@
       break;
   }
 
+  /* Set identity matrix for R'G'B' formats to avoid creating
+   * confusion. This though is cosmetic as it's now properly ignored by
+   * the video info API and videoconvert. */
+  if (is_rgb)
+    cinfo->matrix = GST_VIDEO_COLOR_MATRIX_RGB;
+
   switch (transfer) {
     case V4L2_XFER_FUNC_709:
       cinfo->transfer = GST_VIDEO_TRANSFER_BT709;
@@ -2139,12 +2173,43 @@
 }
 
 static void
+gst_v4l2_object_fill_colorimetry_list (GValue * list,
+    GstVideoColorimetry * cinfo)
+{
+  GValue colorimetry = G_VALUE_INIT;
+  guint size;
+  guint i;
+  gboolean found = FALSE;
+
+  g_value_init (&colorimetry, G_TYPE_STRING);
+  g_value_take_string (&colorimetry, gst_video_colorimetry_to_string (cinfo));
+
+  /* only insert if no duplicate */
+  size = gst_value_list_get_size (list);
+  for (i = 0; i < size; i++) {
+    const GValue *tmp;
+
+    tmp = gst_value_list_get_value (list, i);
+    if (gst_value_compare (&colorimetry, tmp) == GST_VALUE_EQUAL) {
+      found = TRUE;
+      break;
+    }
+  }
+
+  if (!found)
+    gst_value_list_append_and_take_value (list, &colorimetry);
+  else
+    g_value_unset (&colorimetry);
+}
+
+static void
 gst_v4l2_object_add_colorspace (GstV4l2Object * v4l2object, GstStructure * s,
     guint32 width, guint32 height, guint32 pixelformat)
 {
   struct v4l2_format fmt;
-  GValue colorimetry = G_VALUE_INIT;
+  GValue list = G_VALUE_INIT;
   GstVideoColorimetry cinfo;
+  enum v4l2_colorspace req_cspace;
 
   memset (&fmt, 0, sizeof (fmt));
   fmt.type = v4l2object->type;
@@ -2152,39 +2217,51 @@
   fmt.fmt.pix.height = height;
   fmt.fmt.pix.pixelformat = pixelformat;
 
+  g_value_init (&list, GST_TYPE_LIST);
+
+  /* step 1: get device default colorspace and insert it first as
+   * it should be the preferred one */
   if (gst_v4l2_object_try_fmt (v4l2object, &fmt) == 0) {
-    enum v4l2_colorspace colorspace;
-    enum v4l2_quantization range;
-    enum v4l2_ycbcr_encoding matrix;
-    enum v4l2_xfer_func transfer;
-    gboolean is_rgb = gst_v4l2_object_v4l2fourcc_is_rgb (pixelformat);
+    if (gst_v4l2_object_get_colorspace (&fmt, &cinfo))
+      gst_v4l2_object_fill_colorimetry_list (&list, &cinfo);
+  }
 
-    if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type)) {
-      colorspace = fmt.fmt.pix_mp.colorspace;
-      range = fmt.fmt.pix_mp.quantization;
-      matrix = fmt.fmt.pix_mp.ycbcr_enc;
-      transfer = fmt.fmt.pix_mp.xfer_func;
-    } else {
-      colorspace = fmt.fmt.pix.colorspace;
-      range = fmt.fmt.pix.quantization;
-      matrix = fmt.fmt.pix.ycbcr_enc;
-      transfer = fmt.fmt.pix.xfer_func;
-    }
+  /* step 2: probe all colorspace other than default
+   * We don't probe all colorspace, range, matrix and transfer combination to
+   * avoid ioctl flooding which could greatly increase initialization time
+   * with low-speed devices (UVC...) */
+  for (req_cspace = V4L2_COLORSPACE_SMPTE170M;
+      req_cspace <= V4L2_COLORSPACE_RAW; req_cspace++) {
+    /* V4L2_COLORSPACE_BT878 is deprecated and shall not be used, so skip */
+    if (req_cspace == V4L2_COLORSPACE_BT878)
+      continue;
 
-    if (gst_v4l2_object_get_colorspace (colorspace, range, matrix, transfer,
-            is_rgb, &cinfo)) {
-      /* Set identity matrix for R'G'B' formats to avoid creating
-       * confusion. This though is cosmetic as it's now properly ignored by
-       * the video info API and videoconvert. */
-      if (is_rgb)
-        cinfo.matrix = GST_VIDEO_COLOR_MATRIX_RGB;
+    if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type))
+      fmt.fmt.pix_mp.colorspace = req_cspace;
+    else
+      fmt.fmt.pix.colorspace = req_cspace;
 
-      g_value_init (&colorimetry, G_TYPE_STRING);
-      g_value_take_string (&colorimetry,
-          gst_video_colorimetry_to_string (&cinfo));
-      gst_structure_take_value (s, "colorimetry", &colorimetry);
+    if (gst_v4l2_object_try_fmt (v4l2object, &fmt) == 0) {
+      enum v4l2_colorspace colorspace;
+
+      if (V4L2_TYPE_IS_MULTIPLANAR (v4l2object->type))
+        colorspace = fmt.fmt.pix_mp.colorspace;
+      else
+        colorspace = fmt.fmt.pix.colorspace;
+
+      if (colorspace == req_cspace) {
+        if (gst_v4l2_object_get_colorspace (&fmt, &cinfo))
+          gst_v4l2_object_fill_colorimetry_list (&list, &cinfo);
+      }
     }
   }
+
+  if (gst_value_list_get_size (&list) > 0)
+    gst_structure_take_value (s, "colorimetry", &list);
+  else
+    g_value_unset (&list);
+
+  return;
 }
 
 /* The frame interval enumeration code first appeared in Linux 2.6.19. */
@@ -2758,13 +2835,13 @@
   /* find transport */
   mode = v4l2object->req_mode;
 
-  if (v4l2object->vcap.capabilities & V4L2_CAP_READWRITE) {
+  if (v4l2object->device_caps & V4L2_CAP_READWRITE) {
     if (v4l2object->req_mode == GST_V4L2_IO_AUTO)
       mode = GST_V4L2_IO_RW;
   } else if (v4l2object->req_mode == GST_V4L2_IO_RW)
     goto method_not_supported;
 
-  if (v4l2object->vcap.capabilities & V4L2_CAP_STREAMING) {
+  if (v4l2object->device_caps & V4L2_CAP_STREAMING) {
     if (v4l2object->req_mode == GST_V4L2_IO_AUTO)
       mode = GST_V4L2_IO_MMAP;
   } else if (v4l2object->req_mode == GST_V4L2_IO_MMAP)
@@ -3547,6 +3624,8 @@
   struct v4l2_fmtdesc *fmtdesc;
   struct v4l2_format fmt;
   struct v4l2_crop crop;
+  struct v4l2_selection sel;
+  struct v4l2_rect *r = NULL;
   GstVideoFormat format;
   guint width, height;
   GstVideoAlignment align;
@@ -3577,15 +3656,26 @@
   width = fmt.fmt.pix.width;
   height = fmt.fmt.pix.height;
 
-  memset (&crop, 0, sizeof (struct v4l2_crop));
-  crop.type = v4l2object->type;
-  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CROP, &crop) >= 0) {
-    align.padding_left = crop.c.left;
-    align.padding_top = crop.c.top;
-    align.padding_right = width - crop.c.width - crop.c.left;
-    align.padding_bottom = height - crop.c.height - crop.c.top;
-    width = crop.c.width;
-    height = crop.c.height;
+  /* Use the default compose rectangle */
+  memset (&sel, 0, sizeof (struct v4l2_selection));
+  sel.type = v4l2object->type;
+  sel.target = V4L2_SEL_TGT_COMPOSE_DEFAULT;
+  if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_SELECTION, &sel) >= 0) {
+    r = &sel.r;
+  } else {
+    /* For ancient kernels, fall back to G_CROP */
+    memset (&crop, 0, sizeof (struct v4l2_crop));
+    crop.type = v4l2object->type;
+    if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_G_CROP, &crop) >= 0)
+      r = &crop.c;
+  }
+  if (r) {
+    align.padding_left = r->left;
+    align.padding_top = r->top;
+    align.padding_right = width - r->width - r->left;
+    align.padding_bottom = height - r->height - r->top;
+    width = r->width;
+    height = r->height;
   }
 
   gst_video_info_set_format (info, format, width, height);
@@ -3604,6 +3694,8 @@
       goto unsupported_field;
   }
 
+  gst_v4l2_object_get_colorspace (&fmt, &info->colorimetry);
+
   gst_v4l2_object_save_format (v4l2object, fmtdesc, &fmt, info, &align);
 
   /* Shall we setup the pool ? */
diff --git a/sys/v4l2/gstv4l2object.h b/sys/v4l2/gstv4l2object.h
index 7117d43..5fff161 100644
--- a/sys/v4l2/gstv4l2object.h
+++ b/sys/v4l2/gstv4l2object.h
@@ -133,6 +133,8 @@
 
   /* the video device's capabilities */
   struct v4l2_capability vcap;
+  /* opened device specific capabilities */
+  guint32 device_caps;
 
   /* the video device's window properties */
   struct v4l2_window vwin;
diff --git a/sys/v4l2/gstv4l2radio.c b/sys/v4l2/gstv4l2radio.c
index 7a6463c..5d74e7e 100644
--- a/sys/v4l2/gstv4l2radio.c
+++ b/sys/v4l2/gstv4l2radio.c
@@ -90,7 +90,12 @@
   if (res < 0)
     goto caps_failed;
 
-  if (!(vc.capabilities & V4L2_CAP_TUNER))
+  if (vc.capabilities & V4L2_CAP_DEVICE_CAPS)
+    v4l2object->device_caps = vc.device_caps;
+  else
+    v4l2object->device_caps = vc.capabilities;
+
+  if (!(v4l2object->device_caps & V4L2_CAP_TUNER))
     goto not_a_tuner;
 
   /* getting audio input */
diff --git a/sys/v4l2/gstv4l2sink.c b/sys/v4l2/gstv4l2sink.c
index ae4a3c2..b5f34eb 100644
--- a/sys/v4l2/gstv4l2sink.c
+++ b/sys/v4l2/gstv4l2sink.c
@@ -250,10 +250,10 @@
     struct v4l2_format format;
 
     memset (&format, 0x00, sizeof (struct v4l2_format));
-    if ( v4l2sink->v4l2object->vcap.capabilities & V4L2_CAP_VIDEO_OUTPUT_OVERLAY )
-		format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY;
-	else
-		format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
+    if (v4l2sink->v4l2object->device_caps & V4L2_CAP_VIDEO_OUTPUT_OVERLAY)
+      format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT_OVERLAY;
+    else
+      format.type = V4L2_BUF_TYPE_VIDEO_OVERLAY;
 
     if (v4l2_ioctl (fd, VIDIOC_G_FMT, &format) < 0) {
       GST_WARNING_OBJECT (v4l2sink, "VIDIOC_G_FMT failed");
diff --git a/sys/v4l2/gstv4l2src.c b/sys/v4l2/gstv4l2src.c
index a6d34b1..3b722b2 100644
--- a/sys/v4l2/gstv4l2src.c
+++ b/sys/v4l2/gstv4l2src.c
@@ -308,27 +308,13 @@
   peercaps = gst_pad_peer_query_caps (GST_BASE_SRC_PAD (basesrc), NULL);
   GST_DEBUG_OBJECT (basesrc, "caps of peer: %" GST_PTR_FORMAT, peercaps);
   LOG_CAPS (basesrc, peercaps);
+
   if (peercaps && !gst_caps_is_any (peercaps)) {
     GstCaps *icaps = NULL;
-    int i;
 
     /* Prefer the first caps we are compatible with that the peer proposed */
-    for (i = 0; i < gst_caps_get_size (peercaps); i++) {
-      /* get intersection */
-      GstCaps *ipcaps = gst_caps_copy_nth (peercaps, i);
-
-      GST_DEBUG_OBJECT (basesrc, "peer: %" GST_PTR_FORMAT, ipcaps);
-      LOG_CAPS (basesrc, ipcaps);
-
-      icaps = gst_caps_intersect (thiscaps, ipcaps);
-      gst_caps_unref (ipcaps);
-
-      if (!gst_caps_is_empty (icaps))
-        break;
-
-      gst_caps_unref (icaps);
-      icaps = NULL;
-    }
+    icaps = gst_caps_intersect_full (peercaps, thiscaps,
+        GST_CAPS_INTERSECT_FIRST);
 
     GST_DEBUG_OBJECT (basesrc, "intersect: %" GST_PTR_FORMAT, icaps);
     LOG_CAPS (basesrc, icaps);
@@ -343,6 +329,7 @@
 
         if (gst_structure_get_int (s, "width", &twidth)
             && gst_structure_get_int (s, "height", &theight)) {
+          int i;
 
           /* Walk the structure backwards to get the first entry of the
            * smallest resolution bigger (or equal to) the preferred resolution)
diff --git a/sys/v4l2/gstv4l2transform.c b/sys/v4l2/gstv4l2transform.c
index 3090ff6..96e8ef5 100644
--- a/sys/v4l2/gstv4l2transform.c
+++ b/sys/v4l2/gstv4l2transform.c
@@ -864,6 +864,12 @@
   /* fixate remaining fields */
   othercaps = gst_caps_fixate (othercaps);
 
+  if (direction == GST_PAD_SINK) {
+    if (gst_caps_is_subset (caps, othercaps)) {
+      gst_caps_replace (&othercaps, caps);
+    }
+  }
+
   return othercaps;
 }
 
diff --git a/sys/v4l2/gstv4l2videodec.c b/sys/v4l2/gstv4l2videodec.c
index 8ca5e38..d148b66 100644
--- a/sys/v4l2/gstv4l2videodec.c
+++ b/sys/v4l2/gstv4l2videodec.c
@@ -489,7 +489,7 @@
 }
 
 static gboolean
-gst_v4l2_video_remove_padding(GstCapsFeatures * features,
+gst_v4l2_video_remove_padding (GstCapsFeatures * features,
     GstStructure * structure, gpointer user_data)
 {
   GstV4l2VideoDec *self = GST_V4L2_VIDEO_DEC (user_data);
@@ -497,10 +497,10 @@
   GstVideoInfo *info = &self->v4l2capture->info;
   int width, height;
 
-  if (!gst_structure_get_int(structure, "width", &width))
+  if (!gst_structure_get_int (structure, "width", &width))
     return TRUE;
 
-  if (!gst_structure_get_int(structure, "height", &height))
+  if (!gst_structure_get_int (structure, "height", &height))
     return TRUE;
 
   if (align->padding_left != 0 || align->padding_top != 0 ||
@@ -508,7 +508,7 @@
       height != info->height + align->padding_bottom)
     return TRUE;
 
-  gst_structure_set(structure,
+  gst_structure_set (structure,
       "width", G_TYPE_INT, width - align->padding_right,
       "height", G_TYPE_INT, height - align->padding_bottom, NULL);
 
@@ -534,7 +534,7 @@
     if (!self->input_state)
       goto not_negotiated;
     if (!gst_v4l2_object_set_format (self->v4l2output, self->input_state->caps,
-          &error))
+            &error))
       goto not_negotiated;
   }
 
diff --git a/sys/v4l2/v4l2-utils.c b/sys/v4l2/v4l2-utils.c
index ce364a0..260c5df 100644
--- a/sys/v4l2/v4l2-utils.c
+++ b/sys/v4l2/v4l2-utils.c
@@ -29,7 +29,7 @@
 /* Common device iterator */
 /**************************/
 
-#if HAVE_GUDEV
+#ifdef HAVE_GUDEV
 #include <gudev/gudev.h>
 
 struct _GstV4l2GUdevIterator
@@ -171,6 +171,7 @@
   if (v4l2err) {
     g_clear_error (&v4l2err->error);
     g_free (v4l2err->dbg_message);
+    v4l2err->dbg_message = NULL;
   }
 }
 
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index bfb6557..23581ff 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -74,11 +74,16 @@
   if (v4l2_ioctl (v4l2object->video_fd, VIDIOC_QUERYCAP, &v4l2object->vcap) < 0)
     goto cap_failed;
 
+  if (v4l2object->vcap.capabilities & V4L2_CAP_DEVICE_CAPS)
+    v4l2object->device_caps = v4l2object->vcap.device_caps;
+  else
+    v4l2object->device_caps = v4l2object->vcap.capabilities;
+
   GST_LOG_OBJECT (e, "driver:      '%s'", v4l2object->vcap.driver);
   GST_LOG_OBJECT (e, "card:        '%s'", v4l2object->vcap.card);
   GST_LOG_OBJECT (e, "bus_info:    '%s'", v4l2object->vcap.bus_info);
   GST_LOG_OBJECT (e, "version:     %08x", v4l2object->vcap.version);
-  GST_LOG_OBJECT (e, "capabilites: %08x", v4l2object->vcap.capabilities);
+  GST_LOG_OBJECT (e, "capabilites: %08x", v4l2object->device_caps);
 
   return TRUE;
 
@@ -484,16 +489,17 @@
    * in a contiguous manner. In this case the first v4l2 plane
    * contains all the gst planes.
    */
-#define CHECK_CAPS (V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_VIDEO_M2M_MPLANE)
   switch (v4l2object->type) {
     case V4L2_BUF_TYPE_VIDEO_OUTPUT:
-      if (v4l2object->vcap.capabilities & CHECK_CAPS) {
+      if (v4l2object->device_caps &
+          (V4L2_CAP_VIDEO_OUTPUT_MPLANE | V4L2_CAP_VIDEO_M2M_MPLANE)) {
         GST_DEBUG ("adjust type to multi-planar output");
         v4l2object->type = V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE;
       }
       break;
     case V4L2_BUF_TYPE_VIDEO_CAPTURE:
-      if (v4l2object->vcap.capabilities & CHECK_CAPS) {
+      if (v4l2object->device_caps &
+          (V4L2_CAP_VIDEO_CAPTURE_MPLANE | V4L2_CAP_VIDEO_M2M_MPLANE)) {
         GST_DEBUG ("adjust type to multi-planar capture");
         v4l2object->type = V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE;
       }
@@ -501,7 +507,6 @@
     default:
       break;
   }
-#undef CHECK_CAPS
 }
 
 /******************************************************
@@ -556,23 +561,23 @@
 
   /* do we need to be a capture device? */
   if (GST_IS_V4L2SRC (v4l2object->element) &&
-      !(v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_CAPTURE |
+      !(v4l2object->device_caps & (V4L2_CAP_VIDEO_CAPTURE |
               V4L2_CAP_VIDEO_CAPTURE_MPLANE)))
     goto not_capture;
 
   if (GST_IS_V4L2SINK (v4l2object->element) &&
-      !(v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_OUTPUT |
+      !(v4l2object->device_caps & (V4L2_CAP_VIDEO_OUTPUT |
               V4L2_CAP_VIDEO_OUTPUT_MPLANE)))
     goto not_output;
 
   if (GST_IS_V4L2_VIDEO_DEC (v4l2object->element) &&
       /* Today's M2M device only expose M2M */
-      !((v4l2object->vcap.capabilities & (V4L2_CAP_VIDEO_M2M |
+      !((v4l2object->device_caps & (V4L2_CAP_VIDEO_M2M |
                   V4L2_CAP_VIDEO_M2M_MPLANE)) ||
           /* But legacy driver may expose both CAPTURE and OUTPUT */
-          ((v4l2object->vcap.capabilities &
+          ((v4l2object->device_caps &
                   (V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_VIDEO_CAPTURE_MPLANE)) &&
-              (v4l2object->vcap.capabilities &
+              (v4l2object->device_caps &
                   (V4L2_CAP_VIDEO_OUTPUT | V4L2_CAP_VIDEO_OUTPUT_MPLANE)))))
     goto not_m2m;
 
@@ -625,7 +630,7 @@
     GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, NOT_FOUND,
         (_("Device '%s' is not a capture device."),
             v4l2object->videodev),
-        ("Capabilities: 0x%x", v4l2object->vcap.capabilities));
+        ("Capabilities: 0x%x", v4l2object->device_caps));
     goto error;
   }
 not_output:
@@ -633,7 +638,7 @@
     GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, NOT_FOUND,
         (_("Device '%s' is not a output device."),
             v4l2object->videodev),
-        ("Capabilities: 0x%x", v4l2object->vcap.capabilities));
+        ("Capabilities: 0x%x", v4l2object->device_caps));
     goto error;
   }
 not_m2m:
@@ -641,7 +646,7 @@
     GST_ELEMENT_ERROR (v4l2object->element, RESOURCE, NOT_FOUND,
         (_("Device '%s' is not a M2M device."),
             v4l2object->videodev),
-        ("Capabilities: 0x%x", v4l2object->vcap.capabilities));
+        ("Capabilities: 0x%x", v4l2object->device_caps));
     goto error;
   }
 error:
@@ -670,6 +675,7 @@
   GST_V4L2_CHECK_NOT_ACTIVE (v4l2object);
 
   v4l2object->vcap = other->vcap;
+  v4l2object->device_caps = other->device_caps;
   gst_v4l2_adjust_buf_type (v4l2object);
 
   v4l2object->video_fd = v4l2_dup (other->video_fd);
@@ -1034,7 +1040,7 @@
 
   /* ERRORS */
 input_failed:
-  if (v4l2object->vcap.capabilities & V4L2_CAP_TUNER) {
+  if (v4l2object->device_caps & V4L2_CAP_TUNER) {
     /* only give a warning message if driver actually claims to have tuner
      * support
      */
@@ -1059,7 +1065,7 @@
 
   /* ERRORS */
 input_failed:
-  if (v4l2object->vcap.capabilities & V4L2_CAP_TUNER) {
+  if (v4l2object->device_caps & V4L2_CAP_TUNER) {
     /* only give a warning message if driver actually claims to have tuner
      * support
      */
@@ -1091,7 +1097,7 @@
 
   /* ERRORS */
 output_failed:
-  if (v4l2object->vcap.capabilities & V4L2_CAP_TUNER) {
+  if (v4l2object->device_caps & V4L2_CAP_TUNER) {
     /* only give a warning message if driver actually claims to have tuner
      * support
      */
@@ -1116,7 +1122,7 @@
 
   /* ERRORS */
 output_failed:
-  if (v4l2object->vcap.capabilities & V4L2_CAP_TUNER) {
+  if (v4l2object->device_caps & V4L2_CAP_TUNER) {
     /* only give a warning message if driver actually claims to have tuner
      * support
      */
diff --git a/sys/waveform/Makefile.in b/sys/waveform/Makefile.in
index 17d9922..5a6e9d9 100644
--- a/sys/waveform/Makefile.in
+++ b/sys/waveform/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -343,6 +344,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -449,6 +451,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -516,6 +521,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/waveform/gstwaveformsink.c b/sys/waveform/gstwaveformsink.c
index 9341475..30b2ad5 100644
--- a/sys/waveform/gstwaveformsink.c
+++ b/sys/waveform/gstwaveformsink.c
@@ -130,8 +130,8 @@
       "Output to a sound card via WaveForm API",
       "Sebastien Moutte <sebastien@moutte.net>");
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&waveformsink_sink_factory));
+  gst_element_class_add_static_pad_template (element_class,
+      &waveformsink_sink_factory);
 }
 
 static void
diff --git a/sys/ximage/Makefile.in b/sys/ximage/Makefile.in
index ff70e60..78977c5 100644
--- a/sys/ximage/Makefile.in
+++ b/sys/ximage/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -344,6 +345,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -450,6 +452,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -517,6 +522,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/sys/ximage/gstximagesrc.c b/sys/ximage/gstximagesrc.c
index 93f8f47..8aad4e2 100644
--- a/sys/ximage/gstximagesrc.c
+++ b/sys/ximage/gstximagesrc.c
@@ -1287,7 +1287,7 @@
       "Lutz Mueller <lutz@users.sourceforge.net>, "
       "Jan Schmidt <thaytan@mad.scientist.com>, "
       "Zaheer Merali <zaheerabbas at merali dot org>");
-  gst_element_class_add_pad_template (ec, gst_static_pad_template_get (&t));
+  gst_element_class_add_static_pad_template (ec, &t);
 
   bc->fixate = gst_ximage_src_fixate;
   bc->get_caps = gst_ximage_src_get_caps;
diff --git a/sys/ximage/ximageutil.c b/sys/ximage/ximageutil.c
index ac2fd49..57c9392 100644
--- a/sys/ximage/ximageutil.c
+++ b/sys/ximage/ximageutil.c
@@ -37,12 +37,21 @@
 }
 
 static gboolean
-gst_meta_ximage_transform (GstBuffer * dest, GstMeta * meta,
-    GstBuffer * buffer, GQuark type, gpointer data)
+gst_meta_ximage_init (GstMeta * meta, gpointer params, GstBuffer * buffer)
 {
-  /* ximage metadata can't be transformed or copied */
+  GstMetaXImage *emeta = (GstMetaXImage *) meta;
 
-  return FALSE;
+  emeta->parent = NULL;
+  emeta->ximage = NULL;
+#ifdef HAVE_XSHM
+  emeta->SHMInfo.shmaddr = ((void *) -1);
+  emeta->SHMInfo.shmid = -1;
+  emeta->SHMInfo.readOnly = TRUE;
+#endif
+  emeta->width = emeta->height = emeta->size = 0;
+  emeta->return_func = NULL;
+
+  return TRUE;
 }
 
 const GstMetaInfo *
@@ -53,8 +62,8 @@
   if (g_once_init_enter (&meta_ximage_info)) {
     const GstMetaInfo *meta =
         gst_meta_register (gst_meta_ximage_api_get_type (), "GstMetaXImageSrc",
-        sizeof (GstMetaXImage), (GstMetaInitFunction) NULL,
-        (GstMetaFreeFunction) NULL, gst_meta_ximage_transform);
+        sizeof (GstMetaXImage), (GstMetaInitFunction) gst_meta_ximage_init,
+        (GstMetaFreeFunction) NULL, (GstMetaTransformFunction) NULL);
     g_once_init_leave (&meta_ximage_info, meta);
   }
   return meta_ximage_info;
diff --git a/tests/Makefile.in b/tests/Makefile.in
index f313808..2e05f3a 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -314,6 +315,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -420,6 +422,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -487,6 +492,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/check/Makefile.am b/tests/check/Makefile.am
index 3aec98c..aa40c70 100644
--- a/tests/check/Makefile.am
+++ b/tests/check/Makefile.am
@@ -133,7 +133,9 @@
 endif
 
 if USE_PLUGIN_ISOMP4
-check_isomp4 = elements/qtmux
+check_isomp4 = \
+	elements/qtmux \
+	elements/qtdemux
 else
 check_isomp4 =
 endif
@@ -219,7 +221,9 @@
 if USE_PLUGIN_RTP
 check_rtp = \
 	elements/rtp-payloading \
-	elements/rtph263
+	elements/rtph261 \
+	elements/rtph263 \
+	elements/rtpvp9
 else
 check_rtp =
 endif
@@ -305,7 +309,7 @@
 endif
 
 if USE_VPX
-check_vpx=elements/vp8enc elements/vp8dec
+check_vpx=elements/vp8enc elements/vp8dec elements/vp9enc
 else
 check_vpx=
 endif
@@ -399,7 +403,7 @@
 AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS) \
 	$(GST_OPTION_CFLAGS) $(GST_CFLAGS) -DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
 	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_PLUGIN_LOADING_WHITELIST\"" \
-	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
+	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS $(PTHREAD_CFLAGS)
 LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS)
 
 # valgrind testing
@@ -529,6 +533,9 @@
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
 
+elements_rtph261_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph261_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
+
 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)
 
@@ -561,10 +568,10 @@
 elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
 
 elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
+elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 
 elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
+elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 
 elements_rtpaux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtpaux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
@@ -582,6 +589,9 @@
 pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_LDADD  = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 
+elements_vp9enc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
+elements_vp9enc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
+
 pipelines_wavenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_wavenc_LDADD  = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 
@@ -613,4 +623,6 @@
 distclean-local-orc:
 	rm -rf orc
 
-EXTRA_DIST = gst-plugins-good.supp
+EXTRA_DIST = \
+	gst-plugins-good.supp	\
+	elements/qtdemux.h
diff --git a/tests/check/Makefile.in b/tests/check/Makefile.in
index ae6b0de..9dcc99d 100644
--- a/tests/check/Makefile.in
+++ b/tests/check/Makefile.in
@@ -115,6 +115,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -197,7 +198,8 @@
 @USE_PLUGIN_FLV_TRUE@	elements/flvmux$(EXEEXT)
 @USE_GDK_PIXBUF_TRUE@am__EXEEXT_13 = elements/gdkpixbufsink$(EXEEXT) \
 @USE_GDK_PIXBUF_TRUE@	elements/gdkpixbufoverlay$(EXEEXT)
-@USE_PLUGIN_ISOMP4_TRUE@am__EXEEXT_14 = elements/qtmux$(EXEEXT)
+@USE_PLUGIN_ISOMP4_TRUE@am__EXEEXT_14 = elements/qtmux$(EXEEXT) \
+@USE_PLUGIN_ISOMP4_TRUE@	elements/qtdemux$(EXEEXT)
 @USE_PLUGIN_ICYDEMUX_TRUE@am__EXEEXT_15 = elements/icydemux$(EXEEXT)
 @USE_PLUGIN_ID3DEMUX_TRUE@am__EXEEXT_16 = elements/id3demux$(EXEEXT)
 @USE_PLUGIN_IMAGEFREEZE_TRUE@am__EXEEXT_17 =  \
@@ -222,7 +224,9 @@
 @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@	elements/rtph263$(EXEEXT)
+@USE_PLUGIN_RTP_TRUE@	elements/rtph261$(EXEEXT) \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph263$(EXEEXT) \
+@USE_PLUGIN_RTP_TRUE@	elements/rtpvp9$(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) \
@@ -249,7 +253,8 @@
 @USE_PLUGIN_VIDEOMIXER_TRUE@am__EXEEXT_36 =  \
 @USE_PLUGIN_VIDEOMIXER_TRUE@	elements/videomixer$(EXEEXT)
 @USE_VPX_TRUE@am__EXEEXT_37 = elements/vp8enc$(EXEEXT) \
-@USE_VPX_TRUE@	elements/vp8dec$(EXEEXT)
+@USE_VPX_TRUE@	elements/vp8dec$(EXEEXT) \
+@USE_VPX_TRUE@	elements/vp9enc$(EXEEXT)
 @USE_PLUGIN_WAVENC_TRUE@am__EXEEXT_38 = pipelines/wavenc$(EXEEXT)
 @USE_WAVPACK_TRUE@am__EXEEXT_39 = elements/wavpackdec$(EXEEXT) \
 @USE_WAVPACK_TRUE@	elements/wavpackenc$(EXEEXT) \
@@ -575,6 +580,10 @@
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_multifile_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_qtdemux_SOURCES = elements/qtdemux.c
+elements_qtdemux_OBJECTS = elements/qtdemux.$(OBJEXT)
+elements_qtdemux_LDADD = $(LDADD)
+elements_qtdemux_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_qtmux_SOURCES = elements/qtmux.c
 elements_qtmux_OBJECTS = elements/elements_qtmux-qtmux.$(OBJEXT)
 elements_qtmux_DEPENDENCIES = $(am__DEPENDENCIES_1) \
@@ -641,11 +650,21 @@
 elements_rtpcollision_OBJECTS =  \
 	elements/elements_rtpcollision-rtpcollision.$(OBJEXT)
 elements_rtpcollision_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
 elements_rtpcollision_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_rtpcollision_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_rtph261_SOURCES = elements/rtph261.c
+elements_rtph261_OBJECTS =  \
+	elements/elements_rtph261-rtph261.$(OBJEXT)
+elements_rtph261_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+elements_rtph261_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_rtph261_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 elements_rtph263_SOURCES = elements/rtph263.c
 elements_rtph263_OBJECTS =  \
 	elements/elements_rtph263-rtph263.$(OBJEXT)
@@ -684,11 +703,16 @@
 elements_rtpsession_OBJECTS =  \
 	elements/elements_rtpsession-rtpsession.$(OBJEXT)
 elements_rtpsession_DEPENDENCIES = $(am__DEPENDENCIES_1) \
-	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_2)
+	$(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
 elements_rtpsession_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
 	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
 	$(elements_rtpsession_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
+elements_rtpvp9_SOURCES = elements/rtpvp9.c
+elements_rtpvp9_OBJECTS = elements/rtpvp9.$(OBJEXT)
+elements_rtpvp9_LDADD = $(LDADD)
+elements_rtpvp9_DEPENDENCIES = $(am__DEPENDENCIES_1)
 elements_shapewipe_SOURCES = elements/shapewipe.c
 elements_shapewipe_OBJECTS = elements/shapewipe.$(OBJEXT)
 elements_shapewipe_LDADD = $(LDADD)
@@ -775,6 +799,14 @@
 elements_vp8enc_OBJECTS = elements/vp8enc.$(OBJEXT)
 elements_vp8enc_LDADD = $(LDADD)
 elements_vp8enc_DEPENDENCIES = $(am__DEPENDENCIES_1)
+elements_vp9enc_SOURCES = elements/vp9enc.c
+elements_vp9enc_OBJECTS = elements/elements_vp9enc-vp9enc.$(OBJEXT)
+elements_vp9enc_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+	$(am__DEPENDENCIES_2)
+elements_vp9enc_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+	$(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+	$(elements_vp9enc_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \
+	-o $@
 elements_wavpackdec_SOURCES = elements/wavpackdec.c
 elements_wavpackdec_OBJECTS = elements/wavpackdec.$(OBJEXT)
 elements_wavpackdec_LDADD = $(LDADD)
@@ -916,20 +948,21 @@
 	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/qtdemux.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/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) \
+	elements/rtph261.c elements/rtph263.c \
+	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
+	elements/rtpsession.c elements/rtpvp9.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/vp9enc.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) \
 	$(nodist_orc_videomixer_SOURCES) pipelines/effectv.c \
 	pipelines/flacdec.c pipelines/simple-launch-lines.c \
@@ -955,20 +988,21 @@
 	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/qtdemux.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/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 \
+	elements/rtph261.c elements/rtph263.c \
+	elements/rtpjitterbuffer.c elements/rtpmux.c elements/rtprtx.c \
+	elements/rtpsession.c elements/rtpvp9.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/vp9enc.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 \
 	pipelines/wavenc.c pipelines/wavpack.c
 am__can_run_installinfo = \
@@ -1306,6 +1340,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -1412,6 +1447,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -1479,6 +1517,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -1616,7 +1655,10 @@
 @USE_PLUGIN_FLV_TRUE@        elements/flvmux
 
 @USE_PLUGIN_ISOMP4_FALSE@check_isomp4 = 
-@USE_PLUGIN_ISOMP4_TRUE@check_isomp4 = elements/qtmux
+@USE_PLUGIN_ISOMP4_TRUE@check_isomp4 = \
+@USE_PLUGIN_ISOMP4_TRUE@	elements/qtmux \
+@USE_PLUGIN_ISOMP4_TRUE@	elements/qtdemux
+
 @USE_PLUGIN_LAW_FALSE@check_law = 
 @USE_PLUGIN_LAW_TRUE@check_law = \
 @USE_PLUGIN_LAW_TRUE@	elements/mulawdec \
@@ -1659,7 +1701,9 @@
 @USE_PLUGIN_RTP_FALSE@check_rtp = 
 @USE_PLUGIN_RTP_TRUE@check_rtp = \
 @USE_PLUGIN_RTP_TRUE@	elements/rtp-payloading \
-@USE_PLUGIN_RTP_TRUE@	elements/rtph263
+@USE_PLUGIN_RTP_TRUE@	elements/rtph261 \
+@USE_PLUGIN_RTP_TRUE@	elements/rtph263 \
+@USE_PLUGIN_RTP_TRUE@	elements/rtpvp9
 
 @USE_PLUGIN_RTPMANAGER_FALSE@check_rtpmanager = 
 @USE_PLUGIN_RTPMANAGER_TRUE@check_rtpmanager = \
@@ -1702,7 +1746,7 @@
 @USE_PLUGIN_VIDEOMIXER_FALSE@check_videomixer = 
 @USE_PLUGIN_VIDEOMIXER_TRUE@check_videomixer = elements/videomixer
 @USE_VPX_FALSE@check_vpx = 
-@USE_VPX_TRUE@check_vpx = elements/vp8enc elements/vp8dec
+@USE_VPX_TRUE@check_vpx = elements/vp8enc elements/vp8dec elements/vp9enc
 @USE_PLUGIN_WAVENC_FALSE@check_wavenc = 
 @USE_PLUGIN_WAVENC_TRUE@check_wavenc = pipelines/wavenc
 @USE_WAVPACK_FALSE@check_wavpack = 
@@ -1724,7 +1768,7 @@
 AM_CFLAGS = $(GST_OBJ_CFLAGS) $(GST_CHECK_CFLAGS) $(CHECK_CFLAGS) \
 	$(GST_OPTION_CFLAGS) $(GST_CFLAGS) -DGST_TEST_FILES_PATH="\"$(TEST_FILES_DIRECTORY)\"" \
 	-DGST_CHECK_TEST_ENVIRONMENT_BEACON="\"GST_PLUGIN_LOADING_WHITELIST\"" \
-	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS
+	-UG_DISABLE_ASSERT -UG_DISABLE_CAST_CHECKS $(PTHREAD_CFLAGS)
 
 LDADD = $(GST_OBJ_LIBS) $(GST_CHECK_LIBS) $(CHECK_LIBS)
 
@@ -1827,6 +1871,8 @@
              $(GST_BASE_LIBS) $(GST_LIBS) $(GST_CHECK_LIBS) $(LDADD)
 
 elements_rtpbin_buffer_list_SOURCES = elements/rtpbin_buffer_list.c
+elements_rtph261_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(AM_CFLAGS)
+elements_rtph261_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(GST_BASE_LIBS) $(LDADD)
 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)
@@ -1852,9 +1898,9 @@
 elements_rtprtx_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtprtx_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
 elements_rtpsession_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
+elements_rtpsession_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 elements_rtpcollision_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
-elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstnet-$(GST_API_VERSION) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
+elements_rtpcollision_LDADD = $(GST_PLUGINS_BASE_LIBS) $(GST_NET_LIBS) -lgstrtp-$(GST_API_VERSION) $(GIO_LIBS) $(LDADD)
 elements_rtpaux_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 elements_rtpaux_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstrtp-$(GST_API_VERSION) $(LDADD)
 
@@ -1870,6 +1916,8 @@
 elements_videomixer_CFLAGS = $(GST_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_flacdec_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
+elements_vp9enc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
+elements_vp9enc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_API_VERSION) $(LDADD)
 pipelines_wavenc_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(CFLAGS) $(AM_CFLAGS)
 pipelines_wavenc_LDADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_API_VERSION) $(LDADD)
 pipelines_wavpack_LDADD = $(LDADD) $(GST_BASE_LIBS)
@@ -1883,7 +1931,10 @@
 orc_videobox_CFLAGS = $(ORC_CFLAGS)
 orc_videobox_LDADD = $(ORC_LIBS) -lorc-test-0.4
 nodist_orc_videobox_SOURCES = orc/videobox.c
-EXTRA_DIST = gst-plugins-good.supp
+EXTRA_DIST = \
+	gst-plugins-good.supp	\
+	elements/qtdemux.h
+
 all: all-am
 
 .SUFFIXES:
@@ -2225,6 +2276,12 @@
 elements/multifile$(EXEEXT): $(elements_multifile_OBJECTS) $(elements_multifile_DEPENDENCIES) $(EXTRA_elements_multifile_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/multifile$(EXEEXT)
 	$(AM_V_CCLD)$(elements_multifile_LINK) $(elements_multifile_OBJECTS) $(elements_multifile_LDADD) $(LIBS)
+elements/qtdemux.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/qtdemux$(EXEEXT): $(elements_qtdemux_OBJECTS) $(elements_qtdemux_DEPENDENCIES) $(EXTRA_elements_qtdemux_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/qtdemux$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_qtdemux_OBJECTS) $(elements_qtdemux_LDADD) $(LIBS)
 elements/elements_qtmux-qtmux.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2279,6 +2336,12 @@
 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_rtph261-rtph261.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/rtph261$(EXEEXT): $(elements_rtph261_OBJECTS) $(elements_rtph261_DEPENDENCIES) $(EXTRA_elements_rtph261_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/rtph261$(EXEEXT)
+	$(AM_V_CCLD)$(elements_rtph261_LINK) $(elements_rtph261_OBJECTS) $(elements_rtph261_LDADD) $(LIBS)
 elements/elements_rtph263-rtph263.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2309,6 +2372,12 @@
 elements/rtpsession$(EXEEXT): $(elements_rtpsession_OBJECTS) $(elements_rtpsession_DEPENDENCIES) $(EXTRA_elements_rtpsession_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/rtpsession$(EXEEXT)
 	$(AM_V_CCLD)$(elements_rtpsession_LINK) $(elements_rtpsession_OBJECTS) $(elements_rtpsession_LDADD) $(LIBS)
+elements/rtpvp9.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/rtpvp9$(EXEEXT): $(elements_rtpvp9_OBJECTS) $(elements_rtpvp9_DEPENDENCIES) $(EXTRA_elements_rtpvp9_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/rtpvp9$(EXEEXT)
+	$(AM_V_CCLD)$(LINK) $(elements_rtpvp9_OBJECTS) $(elements_rtpvp9_LDADD) $(LIBS)
 elements/shapewipe.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2387,6 +2456,12 @@
 elements/vp8enc$(EXEEXT): $(elements_vp8enc_OBJECTS) $(elements_vp8enc_DEPENDENCIES) $(EXTRA_elements_vp8enc_DEPENDENCIES) elements/$(am__dirstamp)
 	@rm -f elements/vp8enc$(EXEEXT)
 	$(AM_V_CCLD)$(LINK) $(elements_vp8enc_OBJECTS) $(elements_vp8enc_LDADD) $(LIBS)
+elements/elements_vp9enc-vp9enc.$(OBJEXT): elements/$(am__dirstamp) \
+	elements/$(DEPDIR)/$(am__dirstamp)
+
+elements/vp9enc$(EXEEXT): $(elements_vp9enc_OBJECTS) $(elements_vp9enc_DEPENDENCIES) $(EXTRA_elements_vp9enc_DEPENDENCIES) elements/$(am__dirstamp)
+	@rm -f elements/vp9enc$(EXEEXT)
+	$(AM_V_CCLD)$(elements_vp9enc_LINK) $(elements_vp9enc_OBJECTS) $(elements_vp9enc_LDADD) $(LIBS)
 elements/wavpackdec.$(OBJEXT): elements/$(am__dirstamp) \
 	elements/$(DEPDIR)/$(am__dirstamp)
 
@@ -2550,6 +2625,7 @@
 @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_rtph261-rtph261.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@
@@ -2562,6 +2638,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videocrop-videocrop.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videofilter-videofilter.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_videomixer-videomixer.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/elements_vp9enc-vp9enc.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/flacparse.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/flvmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/gdkpixbufoverlay.Po@am__quote@
@@ -2573,8 +2650,10 @@
 @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@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/qtdemux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtp-payloading.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpbin.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/rtpvp9.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/shapewipe.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/splitmux.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@elements/$(DEPDIR)/udpsink.Po@am__quote@
@@ -3104,6 +3183,20 @@
 @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_rtph261-rtph261.o: elements/rtph261.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph261_CFLAGS) $(CFLAGS) -MT elements/elements_rtph261-rtph261.o -MD -MP -MF elements/$(DEPDIR)/elements_rtph261-rtph261.Tpo -c -o elements/elements_rtph261-rtph261.o `test -f 'elements/rtph261.c' || echo '$(srcdir)/'`elements/rtph261.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph261-rtph261.Tpo elements/$(DEPDIR)/elements_rtph261-rtph261.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph261.c' object='elements/elements_rtph261-rtph261.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_rtph261_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph261-rtph261.o `test -f 'elements/rtph261.c' || echo '$(srcdir)/'`elements/rtph261.c
+
+elements/elements_rtph261-rtph261.obj: elements/rtph261.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_rtph261_CFLAGS) $(CFLAGS) -MT elements/elements_rtph261-rtph261.obj -MD -MP -MF elements/$(DEPDIR)/elements_rtph261-rtph261.Tpo -c -o elements/elements_rtph261-rtph261.obj `if test -f 'elements/rtph261.c'; then $(CYGPATH_W) 'elements/rtph261.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph261.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_rtph261-rtph261.Tpo elements/$(DEPDIR)/elements_rtph261-rtph261.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/rtph261.c' object='elements/elements_rtph261-rtph261.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_rtph261_CFLAGS) $(CFLAGS) -c -o elements/elements_rtph261-rtph261.obj `if test -f 'elements/rtph261.c'; then $(CYGPATH_W) 'elements/rtph261.c'; else $(CYGPATH_W) '$(srcdir)/elements/rtph261.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
@@ -3272,6 +3365,20 @@
 @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_videomixer_CFLAGS) $(CFLAGS) -c -o elements/elements_videomixer-videomixer.obj `if test -f 'elements/videomixer.c'; then $(CYGPATH_W) 'elements/videomixer.c'; else $(CYGPATH_W) '$(srcdir)/elements/videomixer.c'; fi`
 
+elements/elements_vp9enc-vp9enc.o: elements/vp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vp9enc_CFLAGS) $(CFLAGS) -MT elements/elements_vp9enc-vp9enc.o -MD -MP -MF elements/$(DEPDIR)/elements_vp9enc-vp9enc.Tpo -c -o elements/elements_vp9enc-vp9enc.o `test -f 'elements/vp9enc.c' || echo '$(srcdir)/'`elements/vp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vp9enc-vp9enc.Tpo elements/$(DEPDIR)/elements_vp9enc-vp9enc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vp9enc.c' object='elements/elements_vp9enc-vp9enc.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_vp9enc_CFLAGS) $(CFLAGS) -c -o elements/elements_vp9enc-vp9enc.o `test -f 'elements/vp9enc.c' || echo '$(srcdir)/'`elements/vp9enc.c
+
+elements/elements_vp9enc-vp9enc.obj: elements/vp9enc.c
+@am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(elements_vp9enc_CFLAGS) $(CFLAGS) -MT elements/elements_vp9enc-vp9enc.obj -MD -MP -MF elements/$(DEPDIR)/elements_vp9enc-vp9enc.Tpo -c -o elements/elements_vp9enc-vp9enc.obj `if test -f 'elements/vp9enc.c'; then $(CYGPATH_W) 'elements/vp9enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp9enc.c'; fi`
+@am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) elements/$(DEPDIR)/elements_vp9enc-vp9enc.Tpo elements/$(DEPDIR)/elements_vp9enc-vp9enc.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@	$(AM_V_CC)source='elements/vp9enc.c' object='elements/elements_vp9enc-vp9enc.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_vp9enc_CFLAGS) $(CFLAGS) -c -o elements/elements_vp9enc-vp9enc.obj `if test -f 'elements/vp9enc.c'; then $(CYGPATH_W) 'elements/vp9enc.c'; else $(CYGPATH_W) '$(srcdir)/elements/vp9enc.c'; fi`
+
 orc/orc_deinterlace-deinterlace.o: orc/deinterlace.c
 @am__fastdepCC_TRUE@	$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(orc_deinterlace_CFLAGS) $(CFLAGS) -MT orc/orc_deinterlace-deinterlace.o -MD -MP -MF orc/$(DEPDIR)/orc_deinterlace-deinterlace.Tpo -c -o orc/orc_deinterlace-deinterlace.o `test -f 'orc/deinterlace.c' || echo '$(srcdir)/'`orc/deinterlace.c
 @am__fastdepCC_TRUE@	$(AM_V_at)$(am__mv) orc/$(DEPDIR)/orc_deinterlace-deinterlace.Tpo orc/$(DEPDIR)/orc_deinterlace-deinterlace.Po
@@ -3811,6 +3918,13 @@
 	--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/qtdemux.log: elements/qtdemux$(EXEEXT)
+	@p='elements/qtdemux$(EXEEXT)'; \
+	b='elements/qtdemux'; \
+	$(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/icydemux.log: elements/icydemux$(EXEEXT)
 	@p='elements/icydemux$(EXEEXT)'; \
 	b='elements/icydemux'; \
@@ -3944,6 +4058,13 @@
 	--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/rtph261.log: elements/rtph261$(EXEEXT)
+	@p='elements/rtph261$(EXEEXT)'; \
+	b='elements/rtph261'; \
+	$(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/rtph263.log: elements/rtph263$(EXEEXT)
 	@p='elements/rtph263$(EXEEXT)'; \
 	b='elements/rtph263'; \
@@ -3951,6 +4072,13 @@
 	--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/rtpvp9.log: elements/rtpvp9$(EXEEXT)
+	@p='elements/rtpvp9$(EXEEXT)'; \
+	b='elements/rtpvp9'; \
+	$(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'; \
@@ -4112,6 +4240,13 @@
 	--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/vp9enc.log: elements/vp9enc$(EXEEXT)
+	@p='elements/vp9enc$(EXEEXT)'; \
+	b='elements/vp9enc'; \
+	$(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)
 pipelines/wavenc.log: pipelines/wavenc$(EXEEXT)
 	@p='pipelines/wavenc$(EXEEXT)'; \
 	b='pipelines/wavenc'; \
diff --git a/tests/check/elements/amrparse.c b/tests/check/elements/amrparse.c
index ee5b455..e49e9e0 100644
--- a/tests/check/elements/amrparse.c
+++ b/tests/check/elements/amrparse.c
@@ -60,6 +60,7 @@
     GST_STATIC_CAPS (SRC_CAPS_WB)
     );
 
+static GstCaps *input_caps = NULL;
 
 /* some data */
 
@@ -86,6 +87,33 @@
   0xff, 0xff, 0xff, 0xff, 0xff
 };
 
+static void
+setup_amrnb (void)
+{
+  ctx_factory = "amrparse";
+  ctx_sink_template = &sinktemplate_nb;
+  ctx_src_template = &srctemplate_nb;
+  input_caps = gst_caps_from_string (SRC_CAPS_NB);
+  g_assert (input_caps);
+  ctx_input_caps = input_caps;
+}
+
+static void
+setup_amrwb (void)
+{
+  ctx_factory = "amrparse";
+  ctx_sink_template = &sinktemplate_wb;
+  ctx_src_template = &srctemplate_wb;
+  input_caps = gst_caps_from_string (SRC_CAPS_WB);
+  g_assert (input_caps);
+  ctx_input_caps = input_caps;
+}
+
+static void
+teardown (void)
+{
+  gst_caps_unref (input_caps);
+}
 
 GST_START_TEST (test_parse_nb_normal)
 {
@@ -238,53 +266,13 @@
 
 GST_END_TEST;
 
-
-
-/*
- * Create test suite.
- */
-static Suite *
-amrnb_parse_suite (void)
-{
-  Suite *s = suite_create ("amrwb_parse");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  /* AMR-NB tests */
-  tcase_add_test (tc_chain, test_parse_nb_normal);
-  tcase_add_test (tc_chain, test_parse_nb_drain_single);
-  tcase_add_test (tc_chain, test_parse_nb_drain_garbage);
-  tcase_add_test (tc_chain, test_parse_nb_split);
-  tcase_add_test (tc_chain, test_parse_nb_detect_stream);
-  tcase_add_test (tc_chain, test_parse_nb_skip_garbage);
-
-  return s;
-}
-
-static Suite *
-amrwb_parse_suite (void)
-{
-  Suite *s = suite_create ("amrnb_parse");
-  TCase *tc_chain = tcase_create ("general");
-
-  suite_add_tcase (s, tc_chain);
-  /* AMR-WB tests */
-  tcase_add_test (tc_chain, test_parse_wb_normal);
-  tcase_add_test (tc_chain, test_parse_wb_drain_single);
-  tcase_add_test (tc_chain, test_parse_wb_drain_garbage);
-  tcase_add_test (tc_chain, test_parse_wb_split);
-  tcase_add_test (tc_chain, test_parse_wb_detect_stream);
-  tcase_add_test (tc_chain, test_parse_wb_skip_garbage);
-
-  return s;
-}
-
 /*
  * TODO:
  *   - Both push- and pull-modes need to be tested
  *      * Pull-mode & EOS
  */
 
+#if 0
 int
 main (int argc, char **argv)
 {
@@ -297,12 +285,6 @@
   gst_check_init (&argc, &argv);
 
   /* init test context */
-  ctx_factory = "amrparse";
-  ctx_sink_template = &sinktemplate_nb;
-  ctx_src_template = &srctemplate_nb;
-  caps = gst_caps_from_string (SRC_CAPS_NB);
-  g_assert (caps);
-  ctx_input_caps = caps;
 
   srunner_run_all (sr, CK_NORMAL);
   nf = srunner_ntests_failed (sr);
@@ -312,12 +294,6 @@
   s = amrwb_parse_suite ();
   sr = srunner_create (s);
 
-  ctx_sink_template = &sinktemplate_wb;
-  ctx_src_template = &srctemplate_wb;
-  caps = gst_caps_from_string (SRC_CAPS_WB);
-  g_assert (caps);
-  ctx_input_caps = caps;
-
   srunner_run_all (sr, CK_NORMAL);
   nf += srunner_ntests_failed (sr);
   srunner_free (sr);
@@ -325,3 +301,37 @@
 
   return nf;
 }
+#endif
+
+static Suite *
+amrparse_suite (void)
+{
+  Suite *s = suite_create ("amrparse");
+  TCase *tc_chain;
+
+  /* AMR-NB tests */
+  tc_chain = tcase_create ("amrnb");
+  tcase_add_checked_fixture (tc_chain, setup_amrnb, teardown);
+  tcase_add_test (tc_chain, test_parse_nb_normal);
+  tcase_add_test (tc_chain, test_parse_nb_drain_single);
+  tcase_add_test (tc_chain, test_parse_nb_drain_garbage);
+  tcase_add_test (tc_chain, test_parse_nb_split);
+  tcase_add_test (tc_chain, test_parse_nb_detect_stream);
+  tcase_add_test (tc_chain, test_parse_nb_skip_garbage);
+  suite_add_tcase (s, tc_chain);
+
+  /* AMR-WB tests */
+  tc_chain = tcase_create ("amrwb");
+  tcase_add_checked_fixture (tc_chain, setup_amrwb, teardown);
+  tcase_add_test (tc_chain, test_parse_wb_normal);
+  tcase_add_test (tc_chain, test_parse_wb_drain_single);
+  tcase_add_test (tc_chain, test_parse_wb_drain_garbage);
+  tcase_add_test (tc_chain, test_parse_wb_split);
+  tcase_add_test (tc_chain, test_parse_wb_detect_stream);
+  tcase_add_test (tc_chain, test_parse_wb_skip_garbage);
+  suite_add_tcase (s, tc_chain);
+
+  return s;
+}
+
+GST_CHECK_MAIN (amrparse)
diff --git a/tests/check/elements/audiofirfilter.c b/tests/check/elements/audiofirfilter.c
index dd31e87..d8b452c 100644
--- a/tests/check/elements/audiofirfilter.c
+++ b/tests/check/elements/audiofirfilter.c
@@ -158,7 +158,6 @@
   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));
 
   fail_if (gst_element_set_state (pipeline,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
@@ -171,6 +170,8 @@
   fail_unless (gst_element_set_state (pipeline,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
 
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (GST_OBJECT (bus));
   g_main_loop_unref (loop);
   gst_object_unref (pipeline);
 }
diff --git a/tests/check/elements/audioiirfilter.c b/tests/check/elements/audioiirfilter.c
index 8faae79..af2c9d3 100644
--- a/tests/check/elements/audioiirfilter.c
+++ b/tests/check/elements/audioiirfilter.c
@@ -155,7 +155,6 @@
   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));
 
   fail_if (gst_element_set_state (pipeline,
           GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE);
@@ -168,6 +167,8 @@
   fail_unless (gst_element_set_state (pipeline,
           GST_STATE_NULL) == GST_STATE_CHANGE_SUCCESS);
 
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (GST_OBJECT (bus));
   g_main_loop_unref (loop);
   gst_object_unref (pipeline);
 }
diff --git a/tests/check/elements/autodetect.c b/tests/check/elements/autodetect.c
index 578627c..eb36977 100644
--- a/tests/check/elements/autodetect.c
+++ b/tests/check/elements/autodetect.c
@@ -45,8 +45,7 @@
 
   gst_element_class_set_static_metadata (gstelement_class, "Fake Audio Sink",
       "Sink/Audio", "Audio sink fake for testing", "Stefan Sauer");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &pad_template);
 }
 
 static void
@@ -70,8 +69,7 @@
 
   gst_element_class_set_static_metadata (gstelement_class, "Fake Video Sink",
       "Sink/Video", "Video sink fake for testing", "Stefan Sauer");
-  gst_element_class_add_pad_template (gstelement_class,
-      gst_static_pad_template_get (&pad_template));
+  gst_element_class_add_static_pad_template (gstelement_class, &pad_template);
 }
 
 static void
diff --git a/tests/check/elements/capssetter.c b/tests/check/elements/capssetter.c
index 17e563b..afaad41 100644
--- a/tests/check/elements/capssetter.c
+++ b/tests/check/elements/capssetter.c
@@ -61,6 +61,7 @@
 {
   GST_DEBUG ("cleanup_capssetter");
 
+  gst_check_drop_buffers ();
   gst_pad_set_active (mysrcpad, FALSE);
   gst_pad_set_active (mysinkpad, FALSE);
   gst_check_teardown_src_pad (capssetter);
diff --git a/tests/check/elements/deinterlace.c b/tests/check/elements/deinterlace.c
index 13616b2..b2db1a5 100644
--- a/tests/check/elements/deinterlace.c
+++ b/tests/check/elements/deinterlace.c
@@ -985,6 +985,37 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_fields_auto_expected_caps)
+{
+  deinterlace_set_caps_with_filter_and_check_result (0, 3,
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=interleaved, framerate=20/1",
+      "video/x-raw, interlace-mode=progressive, framerate=20/1",
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=progressive, framerate=20/1");
+
+  deinterlace_set_caps_with_filter_and_check_result (0, 3,
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=interleaved, framerate=20/1",
+      "video/x-raw, interlace-mode=progressive, framerate=40/1",
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=progressive, framerate=40/1");
+
+  deinterlace_set_caps_with_filter_and_check_result (0, 3,
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=interleaved, framerate=20/1",
+      "video/x-raw, interlace-mode=progressive",
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=progressive, framerate=40/1");
+
+  deinterlace_set_caps_with_filter_and_check_result (0, 3,
+      "video/x-raw, format=I420, width=320, height=240, "
+      "interlace-mode=interleaved, framerate=20/1",
+      "video/x-raw, interlace-mode=progressive, framerate=15/1", NULL);
+}
+
+GST_END_TEST;
+
 
 
 static Suite *
@@ -1013,6 +1044,7 @@
   tcase_add_test (tc_chain, test_mode_interlaced_expected_caps);
   tcase_add_test (tc_chain, test_mode_auto_expected_caps);
   tcase_add_test (tc_chain, test_mode_auto_strict_expected_caps);
+  tcase_add_test (tc_chain, test_fields_auto_expected_caps);
 
   return s;
 }
diff --git a/tests/check/elements/deinterleave.c b/tests/check/elements/deinterleave.c
index f81fddb..b246105 100644
--- a/tests/check/elements/deinterleave.c
+++ b/tests/check/elements/deinterleave.c
@@ -191,8 +191,10 @@
   mysinkpads = NULL;
 
   g_object_unref (deinterleave);
+  gst_bus_set_flushing (bus, TRUE);
   g_object_unref (bus);
   gst_caps_unref (caps);
+  gst_object_unref (mysrcpad);
 }
 
 GST_END_TEST;
@@ -262,8 +264,10 @@
   mysinkpads = NULL;
 
   g_object_unref (deinterleave);
+  gst_bus_set_flushing (bus, TRUE);
   g_object_unref (bus);
   gst_caps_unref (caps);
+  gst_object_unref (mysrcpad);
 }
 
 GST_END_TEST;
@@ -399,9 +403,11 @@
   mysinkpads = NULL;
 
   g_object_unref (deinterleave);
+  gst_bus_set_flushing (bus, TRUE);
   g_object_unref (bus);
   gst_caps_unref (caps);
   gst_caps_unref (caps2);
+  gst_object_unref (mysrcpad);
 }
 
 GST_END_TEST;
diff --git a/tests/check/elements/flvdemux.c b/tests/check/elements/flvdemux.c
index 8f834ed..b8955bf 100644
--- a/tests/check/elements/flvdemux.c
+++ b/tests/check/elements/flvdemux.c
@@ -330,7 +330,7 @@
   guint8 flv_header[] = {
     0x46, 0x4c, 0x56, 0x01, 0x04, 0x00, 0x00, 0x00,
     0x09, 0x00, 0x00, 0x00, 0x00,
-    0x12, 0x00, 0x00, 0x2d, /* script tag */
+    0x12, 0x00, 0x00, 0x2d,     /* script tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
     0x00, 0x0a, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61,
     0x44, 0x61, 0x74, 0x61, 0x03, 0x00, 0x06, 0x53,
@@ -341,13 +341,13 @@
   };
 
   guint8 aac_header[] = {
-    0x08, 0x00, 0x00, 0x04, /* audio tag */
+    0x08, 0x00, 0x00, 0x04,     /* audio tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf,
     0x00, 0x13, 0x10, 0x00, 0x00, 0x00, 0x0f,
   };
 
   guint8 aac_buffer[] = {
-    0x08, 0x00, 0x01, 0x57, /* audio tag */
+    0x08, 0x00, 0x01, 0x57,     /* audio tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf,
     0x01, 0x21, 0x21, 0x45, 0x00, 0x14, 0x50, 0x01,
     0x46, 0xf0, 0x4d, 0xfb, 0x01, 0x3c, 0x08, 0x40,
@@ -414,7 +414,6 @@
     gint rate;
     gint channels;
     const GValue *codec_data;
-    const GstBuffer *buf;
 
     caps = gst_pad_get_current_caps (h->sinkpad);
     s = gst_caps_get_structure (caps, 0);
@@ -439,7 +438,6 @@
     codec_data = gst_structure_get_value (s, "codec_data");
     fail_unless (codec_data != NULL);
     fail_unless (G_VALUE_HOLDS (codec_data, GST_TYPE_BUFFER));
-    buf = gst_value_get_buffer (codec_data);
 
     gst_caps_unref (caps);
   }
@@ -457,7 +455,7 @@
   guint8 flv_header[] = {
     0x46, 0x4c, 0x56, 0x01, 0x01, 0x00, 0x00, 0x00,
     0x09, 0x00, 0x00, 0x00, 0x00,
-    0x12, 0x00, 0x00, 0x2d, /* script tag */
+    0x12, 0x00, 0x00, 0x2d,     /* script tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
     0x00, 0x0a, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x61,
     0x44, 0x61, 0x74, 0x61, 0x03, 0x00, 0x06, 0x53,
@@ -468,7 +466,7 @@
   };
 
   guint8 h264_packet0[] = {
-    0x09, 0x00, 0x00, 0x1e, /* video tag */
+    0x09, 0x00, 0x00, 0x1e,     /* video tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17,
     0x00, 0x00, 0x00, 0x00, 0x01, 0x42, 0xc0, 0x1e,
     0xff, 0xe1, 0x00, 0x0a, 0x67, 0x42, 0xc0, 0x1e,
@@ -478,7 +476,7 @@
   };
 
   guint8 h264_packet1[] = {
-    0x09, 0x00, 0x00, 0x1b, /* video tag */
+    0x09, 0x00, 0x00, 0x1b,     /* video tag */
     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27,
     0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a,
     0x67, 0x42, 0xc0, 0x1e, 0x95, 0xa0, 0x28, 0x0b,
@@ -501,7 +499,6 @@
     const GstStructure *s;
     const gchar *stream_format;
     const GValue *codec_data;
-    const GstBuffer *buf;
 
     caps = gst_pad_get_current_caps (h->sinkpad);
     s = gst_caps_get_structure (caps, 0);
@@ -514,7 +511,6 @@
     codec_data = gst_structure_get_value (s, "codec_data");
     fail_unless (codec_data != NULL);
     fail_unless (G_VALUE_HOLDS (codec_data, GST_TYPE_BUFFER));
-    buf = gst_value_get_buffer (codec_data);
 
     gst_caps_unref (caps);
   }
diff --git a/tests/check/elements/flvmux.c b/tests/check/elements/flvmux.c
index 8ce29f5..0cf9b99 100644
--- a/tests/check/elements/flvmux.c
+++ b/tests/check/elements/flvmux.c
@@ -1,6 +1,8 @@
 /* GStreamer unit tests for flvmux
  *
  * Copyright (C) 2009 Tim-Philipp Müller  <tim centricular net>
+ * Copyright (C) 2016 Havard Graff <havard@pexip.com>
+ * Copyright (C) 2016 David Buchmann <david@pexip.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
@@ -333,6 +335,93 @@
 
 GST_END_TEST;
 
+static void
+check_buf_type_timestamp (GstBuffer * buf, gint packet_type, gint timestamp)
+{
+  GstMapInfo map = GST_MAP_INFO_INIT;
+  gst_buffer_map (buf, &map, GST_MAP_READ);
+  fail_unless_equals_int (packet_type, map.data[0]);
+  fail_unless_equals_int (timestamp, map.data[6]);
+  gst_buffer_unmap (buf, &map);
+  gst_buffer_unref (buf);
+}
+
+GST_START_TEST (test_increasing_timestamp_when_pts_none)
+{
+  const gint AUDIO = 0x08;
+  const gint VIDEO = 0x09;
+  gint timestamp = 3;
+  GstClockTime base_time = 42 * GST_SECOND;
+  GstPad *audio_sink, *video_sink, *audio_src, *video_src;
+  GstHarness *h, *audio, *video, *audio_q, *video_q;
+  GstCaps *audio_caps, *video_caps;
+  GstBuffer *buf;
+
+  h = gst_harness_new_with_padnames ("flvmux", NULL, "src");
+  audio = gst_harness_new_with_element (h->element, "audio", NULL);
+  video = gst_harness_new_with_element (h->element, "video", NULL);
+  audio_q = gst_harness_new ("queue");
+  video_q = gst_harness_new ("queue");
+
+  audio_sink = GST_PAD_PEER (audio->srcpad);
+  video_sink = GST_PAD_PEER (video->srcpad);
+  audio_src = GST_PAD_PEER (audio_q->sinkpad);
+  video_src = GST_PAD_PEER (video_q->sinkpad);
+
+  gst_pad_unlink (audio->srcpad, audio_sink);
+  gst_pad_unlink (video->srcpad, video_sink);
+  gst_pad_unlink (audio_src, audio_q->sinkpad);
+  gst_pad_unlink (video_src, video_q->sinkpad);
+  gst_pad_link (audio_src, audio_sink);
+  gst_pad_link (video_src, video_sink);
+
+  audio_caps = gst_caps_new_simple ("audio/x-speex",
+      "rate", G_TYPE_INT, 16000, "channels", G_TYPE_INT, 1, NULL);
+  gst_harness_set_src_caps (audio_q, audio_caps);
+  video_caps = gst_caps_new_simple ("video/x-h264",
+      "stream-format", G_TYPE_STRING, "avc", NULL);
+  gst_harness_set_src_caps (video_q, video_caps);
+
+  /* Push audio + video + audio with increasing DTS, but PTS for video is
+   * GST_CLOCK_TIME_NONE
+   */
+  buf = gst_buffer_new ();
+  GST_BUFFER_DTS (buf) = timestamp * GST_MSECOND + base_time;
+  GST_BUFFER_PTS (buf) = timestamp * GST_MSECOND + base_time;
+  gst_harness_push (audio_q, buf);
+
+  buf = gst_buffer_new ();
+  GST_BUFFER_DTS (buf) = (timestamp + 1) * GST_MSECOND + base_time;
+  GST_BUFFER_PTS (buf) = GST_CLOCK_TIME_NONE;
+  gst_harness_push (video_q, buf);
+
+  buf = gst_buffer_new ();
+  GST_BUFFER_DTS (buf) = (timestamp + 2) * GST_MSECOND + base_time;
+  GST_BUFFER_PTS (buf) = (timestamp + 2) * GST_MSECOND + base_time;
+  gst_harness_push (audio_q, buf);
+
+  /* Pull two metadata packets out */
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* Check that we receive the packets in monotonically increasing order and
+   * that their timestamps are correct (should start at 0)
+   */
+  buf = gst_harness_pull (h);
+  check_buf_type_timestamp (buf, AUDIO, 0);
+  buf = gst_harness_pull (h);
+  check_buf_type_timestamp (buf, VIDEO, 1);
+
+  /* teardown */
+  gst_harness_teardown (h);
+  gst_harness_teardown (audio);
+  gst_harness_teardown (video);
+  gst_harness_teardown (audio_q);
+  gst_harness_teardown (video_q);
+}
+
+GST_END_TEST;
+
 static Suite *
 flvmux_suite (void)
 {
@@ -351,6 +440,7 @@
   tcase_add_loop_test (tc_chain, test_index_writing, 1, loop);
 
   tcase_add_test (tc_chain, test_speex_streamable);
+  tcase_add_test (tc_chain, test_increasing_timestamp_when_pts_none);
 
   return s;
 }
diff --git a/tests/check/elements/icydemux.c b/tests/check/elements/icydemux.c
index 525e309..1a17e79 100644
--- a/tests/check/elements/icydemux.c
+++ b/tests/check/elements/icydemux.c
@@ -148,6 +148,7 @@
   gst_object_unref (bus);
   bus = NULL;
 
+  gst_check_drop_buffers ();
   gst_check_teardown_src_pad (icydemux);
   if (sinkpad)
     gst_check_teardown_sink_pad (icydemux);
diff --git a/tests/check/elements/interleave.c b/tests/check/elements/interleave.c
index 67355e8..0d9d562 100644
--- a/tests/check/elements/interleave.c
+++ b/tests/check/elements/interleave.c
@@ -251,6 +251,7 @@
 
   fail_unless (have_data == 2);
 
+  gst_bus_set_flushing (bus, TRUE);
   gst_element_set_state (interleave, GST_STATE_NULL);
   gst_element_set_state (queue, GST_STATE_NULL);
 
@@ -377,6 +378,7 @@
 
   fail_unless (have_data == 2);
 
+  gst_bus_set_flushing (bus, TRUE);
   gst_element_set_state (interleave, GST_STATE_NULL);
   gst_element_set_state (queue, GST_STATE_NULL);
 
diff --git a/tests/check/elements/jpegenc.c b/tests/check/elements/jpegenc.c
index b774316..c191a7e 100644
--- a/tests/check/elements/jpegenc.c
+++ b/tests/check/elements/jpegenc.c
@@ -81,6 +81,7 @@
   GST_DEBUG ("cleanup_jpegenc");
   gst_element_set_state (jpegenc, GST_STATE_NULL);
 
+  gst_check_drop_buffers ();
   gst_pad_set_active (mysrcpad, FALSE);
   gst_pad_set_active (mysinkpad, FALSE);
   gst_check_teardown_sink_pad (jpegenc);
diff --git a/tests/check/elements/level.c b/tests/check/elements/level.c
index 33cde14..f05370f 100644
--- a/tests/check/elements/level.c
+++ b/tests/check/elements/level.c
@@ -241,6 +241,7 @@
   gst_object_unref (bus);
   gst_element_set_state (level, GST_STATE_NULL);
   cleanup_level (level);
+  gst_check_drop_buffers ();
 }
 
 GST_END_TEST;
diff --git a/tests/check/elements/multifile.c b/tests/check/elements/multifile.c
index 68717dc..e7abffe 100644
--- a/tests/check/elements/multifile.c
+++ b/tests/check/elements/multifile.c
@@ -371,6 +371,7 @@
 
   gst_element_set_state (src, GST_STATE_NULL);
 
+  gst_check_drop_buffers ();
   gst_check_teardown_pad_by_name (src, "src");
   gst_check_teardown_element (src);
 }
diff --git a/tests/check/elements/qtdemux.c b/tests/check/elements/qtdemux.c
new file mode 100644
index 0000000..56b6693
--- /dev/null
+++ b/tests/check/elements/qtdemux.c
@@ -0,0 +1,154 @@
+/* GStreamer
+ *
+ * unit test for qtdemux
+ *
+ * Copyright (C) <2016> Edward Hervey <edward@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 "qtdemux.h"
+
+typedef struct
+{
+  GstPad *srcpad;
+  guint expected_size;
+  GstClockTime expected_time;
+} CommonTestData;
+
+static GstPadProbeReturn
+qtdemux_probe (GstPad * pad, GstPadProbeInfo * info, CommonTestData * data)
+{
+  GstBuffer *buf = GST_PAD_PROBE_INFO_BUFFER (info);
+
+  fail_unless_equals_int (gst_buffer_get_size (buf), data->expected_size);
+  fail_unless_equals_uint64 (GST_BUFFER_PTS (buf), data->expected_time);
+  gst_buffer_unref (buf);
+  return GST_PAD_PROBE_HANDLED;
+}
+
+static void
+qtdemux_pad_added_cb (GstElement * element, GstPad * pad, CommonTestData * data)
+{
+  data->srcpad = pad;
+  gst_pad_add_probe (pad, GST_PAD_PROBE_TYPE_BUFFER,
+      (GstPadProbeCallback) qtdemux_probe, data, NULL);
+}
+
+GST_START_TEST (test_qtdemux_input_gap)
+{
+  GstElement *qtdemux;
+  GstPad *sinkpad;
+  CommonTestData data = { 0, };
+  GstBuffer *inbuf;
+  GstSegment segment;
+  GstEvent *event;
+  guint i, offset;
+  GstClockTime pts;
+
+  /* The goal of this test is to check that qtdemux can properly handle
+   * fragmented input from dashdemux, with gaps in it.
+   *
+   * Input segment :
+   *   - TIME
+   * Input buffers :
+   *   - The offset is set on buffers, it corresponds to the offset
+   *     within the current fragment.
+   *   - Buffer of the beginning of a fragment has the PTS set, others
+   *     don't.
+   *   - By extension, the beginning of a fragment also has an offset
+   *     of 0.
+   */
+
+  qtdemux = gst_element_factory_make ("qtdemux", NULL);
+  gst_element_set_state (qtdemux, GST_STATE_PLAYING);
+  sinkpad = gst_element_get_static_pad (qtdemux, "sink");
+
+  /* We'll want to know when the source pad is added */
+  g_signal_connect (qtdemux, "pad-added", (GCallback) qtdemux_pad_added_cb,
+      &data);
+
+  /* Send the initial STREAM_START and segment (TIME) event */
+  event = gst_event_new_stream_start ("TEST");
+  GST_DEBUG ("Pushing stream-start event");
+  fail_unless (gst_pad_send_event (sinkpad, event) == TRUE);
+  gst_segment_init (&segment, GST_FORMAT_TIME);
+  event = gst_event_new_segment (&segment);
+  GST_DEBUG ("Pushing segment event");
+  fail_unless (gst_pad_send_event (sinkpad, event) == TRUE);
+
+  /* Feed the init buffer, should create the source pad */
+  inbuf = gst_buffer_new_and_alloc (init_mp4_len);
+  gst_buffer_fill (inbuf, 0, init_mp4, init_mp4_len);
+  GST_BUFFER_PTS (inbuf) = 0;
+  GST_BUFFER_OFFSET (inbuf) = 0;
+  GST_DEBUG ("Pushing header buffer");
+  fail_unless (gst_pad_chain (sinkpad, inbuf) == GST_FLOW_OK);
+
+  /* Now send the trun of the first fragment */
+  inbuf = gst_buffer_new_and_alloc (seg_1_moof_size);
+  gst_buffer_fill (inbuf, 0, seg_1_m4f, seg_1_moof_size);
+  GST_BUFFER_PTS (inbuf) = 0;
+  GST_BUFFER_OFFSET (inbuf) = 0;
+  /* We are simulating that this fragment can happen at any point */
+  GST_BUFFER_FLAG_SET (inbuf, GST_BUFFER_FLAG_DISCONT);
+  GST_DEBUG ("Pushing trun buffer");
+  fail_unless (gst_pad_chain (sinkpad, inbuf) == GST_FLOW_OK);
+  fail_if (data.srcpad == NULL);
+
+  /* We are now ready to send some buffers with gaps */
+  offset = seg_1_sample_0_offset;
+  pts = 0;
+
+  GST_DEBUG ("Pushing gap'ed buffers");
+  for (i = 0; i < 129; i++) {
+    /* Let's send one every 3 */
+    if ((i % 3) == 0) {
+      GST_DEBUG ("Pushing buffer #%d offset:%" G_GUINT32_FORMAT, i, offset);
+      inbuf = gst_buffer_new_and_alloc (seg_1_sample_sizes[i]);
+      gst_buffer_fill (inbuf, 0, seg_1_m4f + offset, seg_1_sample_sizes[i]);
+      GST_BUFFER_OFFSET (inbuf) = offset;
+      GST_BUFFER_FLAG_SET (inbuf, GST_BUFFER_FLAG_DISCONT);
+      data.expected_time =
+          gst_util_uint64_scale (pts, GST_SECOND, seg_1_timescale);
+      data.expected_size = seg_1_sample_sizes[i];
+      fail_unless (gst_pad_chain (sinkpad, inbuf) == GST_FLOW_OK);
+    }
+    /* Finally move offset forward */
+    offset += seg_1_sample_sizes[i];
+    pts += seg_1_sample_duration;
+  }
+
+  gst_object_unref (sinkpad);
+  gst_element_set_state (qtdemux, GST_STATE_NULL);
+  gst_object_unref (qtdemux);
+}
+
+GST_END_TEST;
+
+static Suite *
+qtdemux_suite (void)
+{
+  Suite *s = suite_create ("qtdemux");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+  tcase_add_test (tc_chain, test_qtdemux_input_gap);
+
+  return s;
+}
+
+GST_CHECK_MAIN (qtdemux)
diff --git a/tests/check/elements/qtdemux.h b/tests/check/elements/qtdemux.h
new file mode 100644
index 0000000..b8425f0
--- /dev/null
+++ b/tests/check/elements/qtdemux.h
@@ -0,0 +1,4251 @@
+/* GStreamer
+ *
+ * unit test for qtdemux
+ *
+ * Copyright (C) <2016> Edward Hervey <edward@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.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <glib/gstdio.h>
+
+#include <gst/check/gstcheck.h>
+
+/* Fragments taken from http://www.bok.net/dash/tears_of_steel/cleartext/stream.mpd
+ *
+ * Audio stream (aac)
+ * Header + first fragment
+ */
+
+/* http://www.bok.net/dash/tears_of_steel/cleartext/audio/en/init.mp4 */
+static guint8 init_mp4[] = {
+  0x00, 0x00, 0x00, 0x20, 0x66, 0x74, 0x79, 0x70, 0x69, 0x73, 0x6f, 0x6d,
+  0x00, 0x00, 0x02, 0x00, 0x69, 0x73, 0x6f, 0x6d, 0x69, 0x73, 0x6f, 0x32,
+  0x61, 0x76, 0x63, 0x31, 0x6d, 0x70, 0x34, 0x31, 0x00, 0x00, 0x02, 0x50,
+  0x6d, 0x6f, 0x6f, 0x76, 0x00, 0x00, 0x00, 0x6c, 0x6d, 0x76, 0x68, 0x64,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x03, 0xe8, 0x00, 0x0b, 0x33, 0xd7, 0x00, 0x01, 0x00, 0x00,
+  0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x01, 0xa4, 0x74, 0x72, 0x61, 0x6b,
+  0x00, 0x00, 0x00, 0x5c, 0x74, 0x6b, 0x68, 0x64, 0x00, 0x00, 0x00, 0x07,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x33, 0xbc, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x40,
+  0x6d, 0x64, 0x69, 0x61, 0x00, 0x00, 0x00, 0x20, 0x6d, 0x64, 0x68, 0x64,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0xac, 0x44, 0x00, 0x00, 0x00, 0x00, 0x15, 0xc7, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x35, 0x68, 0x64, 0x6c, 0x72, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x73, 0x6f, 0x75, 0x6e, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x65, 0x6e, 0x74,
+  0x6f, 0x34, 0x20, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x20, 0x48, 0x61, 0x6e,
+  0x64, 0x6c, 0x65, 0x72, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x6d, 0x69, 0x6e,
+  0x66, 0x00, 0x00, 0x00, 0x10, 0x73, 0x6d, 0x68, 0x64, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x64, 0x69, 0x6e,
+  0x66, 0x00, 0x00, 0x00, 0x1c, 0x64, 0x72, 0x65, 0x66, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0c, 0x75, 0x72, 0x6c,
+  0x20, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0xa7, 0x73, 0x74, 0x62,
+  0x6c, 0x00, 0x00, 0x00, 0x5b, 0x73, 0x74, 0x73, 0x64, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4b, 0x6d, 0x70, 0x34,
+  0x61, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x10, 0x00, 0x00, 0x00,
+  0x00, 0xac, 0x44, 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x65, 0x73, 0x64,
+  0x73, 0x00, 0x00, 0x00, 0x00, 0x03, 0x19, 0x00, 0x00, 0x00, 0x04, 0x11,
+  0x40, 0x15, 0x00, 0x00, 0x00, 0x00, 0x01, 0xf4, 0x01, 0x00, 0x01, 0xf4,
+  0x01, 0x05, 0x02, 0x12, 0x10, 0x06, 0x01, 0x02, 0x00, 0x00, 0x00, 0x14,
+  0x73, 0x74, 0x73, 0x7a, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x73, 0x63,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x73, 0x74, 0x74, 0x73, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x10, 0x73, 0x74, 0x63, 0x6f, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x6d, 0x76, 0x65, 0x78,
+  0x00, 0x00, 0x00, 0x10, 0x6d, 0x65, 0x68, 0x64, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x0b, 0x33, 0xd7, 0x00, 0x00, 0x00, 0x20, 0x74, 0x72, 0x65, 0x78,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+guint init_mp4_len = 624;
+
+/* http://www.bok.net/dash/tears_of_steel/cleartext/audio/en/seg-1.m4f */
+static const guint8 seg_1_m4f[] = {
+  0x00, 0x00, 0x04, 0x60, 0x6d, 0x6f, 0x6f, 0x66, 0x00, 0x00, 0x00, 0x10,
+  0x6d, 0x66, 0x68, 0x64, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+  0x00, 0x00, 0x04, 0x48, 0x74, 0x72, 0x61, 0x66, 0x00, 0x00, 0x00, 0x10,
+  0x74, 0x66, 0x68, 0x64, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02,
+  0x00, 0x00, 0x00, 0x14, 0x74, 0x66, 0x64, 0x74, 0x01, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x1c,
+  0x74, 0x72, 0x75, 0x6e, 0x00, 0x00, 0x03, 0x01, 0x00, 0x00, 0x00, 0x81,
+  0x00, 0x00, 0x04, 0x68, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x73,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x74, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xdd, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x02, 0x12,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xe9, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xce, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xb9,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xa5, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xa4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x9a,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x92, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x8e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7d,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7d, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x82, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x82,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x71, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x72, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6a,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5a, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x65, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x63,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x78, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x50, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x55,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x66, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6a,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x9f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x82,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6c, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x58, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x82,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x66, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x6d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x94,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x56, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x69, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6e,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x69, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x86,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5c, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x6e, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x67,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x65, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x68, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5d,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x64, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x6d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x89,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x61, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x81, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7d,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5c, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x59, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x9e,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x74, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x71, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x91,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x87, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x4d, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x53,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xa7, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x57, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xbd,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xa9, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xa6, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x9f,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x96, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x85, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x8b,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x77, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x64, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xba,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xb0, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x87, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x81,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x53, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x15, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x25,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x3c, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x47, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x35,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x85, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x67, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xab,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x46, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xa4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x97,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x3c, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x6a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xa3,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5d, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x83, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x46,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x6f, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x58,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xa9, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x49, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7b,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x93, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x3a, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x8d,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x70, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x85, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7c,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x75, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x56, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x57,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x70, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xb4, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x67,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x60, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x69, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6e,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x5e, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0xa3, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x4b,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0xaa, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x91, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x7e,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x46, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x9b, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x6c,
+  0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x01, 0x52, 0x00, 0x00, 0x04, 0x00,
+  0x00, 0x00, 0x01, 0x59, 0x00, 0x00, 0xbd, 0x32, 0x6d, 0x64, 0x61, 0x74,
+  0x21, 0x11, 0x45, 0x00, 0x14, 0x50, 0x01, 0x46, 0xff, 0xf1, 0x0a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5d, 0xe9, 0x82, 0x14, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xbc, 0x21,
+  0x1a, 0x93, 0xa9, 0x04, 0x3e, 0xa3, 0x59, 0x41, 0x67, 0xa6, 0x1c, 0x02,
+  0x81, 0x4a, 0x3d, 0x3e, 0x5d, 0x30, 0x1f, 0x5b, 0x59, 0x41, 0x49, 0xde,
+  0x22, 0x1e, 0x81, 0x0b, 0x3f, 0xf6, 0xff, 0xf1, 0x0a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a, 0x5a,
+  0x5d, 0xe6, 0xc2, 0x14, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4,
+  0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xb4, 0xbc, 0x21,
+  0x1a, 0x93, 0x85, 0x9a, 0x92, 0xc6, 0x41, 0x30, 0x91, 0x8c, 0x45, 0x08,
+  0xa4, 0xc5, 0x45, 0x20, 0xcc, 0xd6, 0x22, 0x84, 0xa1, 0x02, 0x53, 0x1a,
+  0xc8, 0x9a, 0x50, 0x21, 0x89, 0xfe, 0x70, 0x24, 0x76, 0x64, 0x5c, 0xee,
+  0x1e, 0x76, 0x20, 0x03, 0x90, 0x52, 0x88, 0x20, 0xb8, 0xf0, 0x58, 0xf0,
+  0x1f, 0xd8, 0xeb, 0x14, 0x9b, 0x1f, 0xdf, 0xf1, 0xe8, 0xce, 0xa8, 0xf3,
+  0x93, 0xa7, 0x34, 0x9a, 0x26, 0x92, 0x9b, 0xb7, 0xbe, 0x40, 0xcb, 0xf0,
+  0xcc, 0x8f, 0x36, 0x98, 0x48, 0x18, 0xe6, 0x17, 0x61, 0x56, 0x23, 0x0e,
+  0x33, 0x2a, 0xc2, 0x32, 0x01, 0x57, 0xdb, 0x6e, 0x05, 0x22, 0x56, 0xcd,
+  0x69, 0x9b, 0xb6, 0x2e, 0x12, 0xbf, 0x4a, 0x76, 0x24, 0x60, 0xc0, 0xe8,
+  0xdd, 0x2b, 0x57, 0x4d, 0x2e, 0xd3, 0x18, 0x4e, 0x10, 0x64, 0xcb, 0xb6,
+  0x74, 0xb0, 0x9b, 0xd4, 0xd9, 0x83, 0x11, 0xb6, 0x14, 0xb8, 0xee, 0xc0,
+  0xde, 0x35, 0xc5, 0xb4, 0x1e, 0x52, 0xa2, 0xa6, 0x74, 0x07, 0x25, 0x9d,
+  0xa7, 0x52, 0xa4, 0xc6, 0x45, 0x03, 0xad, 0xb4, 0x03, 0xd4, 0x0b, 0xc6,
+  0x12, 0x4b, 0xdf, 0x5d, 0x64, 0xea, 0xea, 0xda, 0x84, 0x00, 0x6f, 0x46,
+  0xe4, 0x39, 0x16, 0xf2, 0xca, 0x8f, 0xd0, 0x29, 0x0d, 0xee, 0x47, 0x32,
+  0xbe, 0x51, 0x6b, 0xef, 0x59, 0x15, 0xe5, 0x13, 0x0b, 0x77, 0x92, 0x15,
+  0x7f, 0x04, 0x5d, 0xea, 0xca, 0xc0, 0x40, 0x39, 0xa5, 0x12, 0x15, 0x7d,
+  0xea, 0x12, 0xe7, 0x25, 0xf2, 0x94, 0xb1, 0x2e, 0x7d, 0x57, 0xdc, 0x99,
+  0xae, 0xa2, 0xea, 0x33, 0xba, 0xa1, 0xcb, 0xc1, 0x54, 0x3b, 0x06, 0xe3,
+  0x34, 0x50, 0xba, 0x89, 0xec, 0xaa, 0xec, 0x47, 0xe6, 0xdc, 0x3b, 0xfa,
+  0x1a, 0xe1, 0xe9, 0xc7, 0x46, 0x40, 0x1c, 0xa1, 0x89, 0x98, 0x23, 0x84,
+  0x6e, 0xe8, 0xba, 0x8c, 0xcb, 0x01, 0x48, 0xa8, 0x28, 0x16, 0xa8, 0x6b,
+  0x22, 0x69, 0x40, 0x86, 0x20, 0x79, 0x83, 0x21, 0x7b, 0x6f, 0x6d, 0xb4,
+  0xda, 0x6e, 0x31, 0x2a, 0x26, 0x12, 0xa5, 0xb7, 0x4a, 0x91, 0x30, 0x55,
+  0xb4, 0xe6, 0x99, 0x6a, 0xa6, 0x12, 0x1f, 0x72, 0xdb, 0x65, 0xdc, 0xbe,
+  0x17, 0x15, 0x6b, 0xc0, 0x9e, 0x55, 0x20, 0x8c, 0xf5, 0x27, 0x3c, 0x09,
+  0x42, 0xcc, 0x78, 0x8d, 0x24, 0x37, 0xb9, 0x45, 0xdd, 0x14, 0xa5, 0x99,
+  0xde, 0x15, 0xa0, 0x5a, 0x3e, 0xfe, 0x8c, 0xd7, 0x2a, 0x14, 0x52, 0xef,
+  0x6e, 0x87, 0x9c, 0x22, 0x9d, 0x08, 0x65, 0x59, 0xb5, 0x60, 0x78, 0xfd,
+  0xc3, 0x2e, 0x6a, 0x88, 0x13, 0xc2, 0x4f, 0x72, 0x6c, 0x92, 0x02, 0x4c,
+  0x88, 0xd4, 0xc4, 0x80, 0xc1, 0x48, 0x56, 0x4c, 0x39, 0x98, 0x5d, 0x9d,
+  0x31, 0x35, 0x81, 0x47, 0x72, 0x4d, 0xe5, 0x77, 0x54, 0xf8, 0x88, 0xe4,
+  0x07, 0xad, 0xa1, 0xa6, 0xa1, 0xe9, 0x69, 0x16, 0xad, 0x33, 0x88, 0x86,
+  0xee, 0x18, 0xea, 0x37, 0xca, 0x8d, 0xd8, 0x5f, 0x95, 0x04, 0xc3, 0x55,
+  0x76, 0x45, 0xf7, 0xd5, 0x9c, 0x32, 0x4e, 0x80, 0x80, 0xd0, 0x9c, 0x41,
+  0xa7, 0x54, 0xbc, 0x36, 0x90, 0xb3, 0xcf, 0xc0, 0x70, 0x46, 0x45, 0x34,
+  0xca, 0x93, 0x3c, 0x6b, 0xa6, 0xed, 0x40, 0x8a, 0x98, 0x29, 0x12, 0x78,
+  0xd9, 0x6c, 0x37, 0x04, 0xad, 0xf3, 0x09, 0x6e, 0x6e, 0xce, 0xe9, 0x1c,
+  0x29, 0x05, 0x06, 0x08, 0x63, 0x7e, 0x43, 0x3a, 0x2e, 0x2e, 0xef, 0x85,
+  0xb7, 0x89, 0xc0, 0xf5, 0xf5, 0x72, 0x90, 0x1c, 0x21, 0x1a, 0x88, 0x07,
+  0xff, 0xff, 0xff, 0xfe, 0xef, 0x66, 0xa3, 0x31, 0x11, 0x6c, 0x44, 0x13,
+  0x12, 0x88, 0xe1, 0x0e, 0x18, 0xe3, 0x70, 0xa0, 0x14, 0x2a, 0xe9, 0x28,
+  0x82, 0x44, 0xe4, 0x68, 0x38, 0x21, 0x08, 0x2c, 0xa4, 0xd9, 0x1e, 0xc4,
+  0x79, 0x28, 0x10, 0x2e, 0xe4, 0x78, 0x52, 0x24, 0x21, 0x11, 0x83, 0xf6,
+  0xba, 0xd5, 0xa8, 0xe4, 0xbc, 0xf1, 0x3c, 0x65, 0x25, 0x7a, 0xb4, 0x5c,
+  0x89, 0xce, 0x14, 0xb2, 0x8e, 0x93, 0x52, 0xf3, 0x82, 0x4c, 0x4d, 0x42,
+  0x68, 0xb5, 0xc8, 0x15, 0xea, 0xd1, 0x1d, 0xa6, 0xf3, 0x83, 0xf4, 0x1f,
+  0x18, 0x97, 0xb7, 0x98, 0xfd, 0x9c, 0x13, 0x5c, 0x90, 0xe1, 0x7d, 0x88,
+  0xaf, 0x4f, 0x16, 0x8e, 0x7e, 0xfe, 0x99, 0x74, 0x80, 0x25, 0xea, 0x96,
+  0x13, 0x20, 0x3d, 0xdf, 0x79, 0x3e, 0x93, 0xdb, 0x74, 0x9a, 0x11, 0x4e,
+  0xe9, 0xd8, 0x40, 0x1a, 0x1c, 0x0c, 0x04, 0x44, 0x8e, 0x1e, 0x86, 0x34,
+  0x42, 0x68, 0x68, 0x0e, 0xf9, 0xc2, 0x12, 0x4b, 0x0e, 0x57, 0x10, 0xd4,
+  0x80, 0xc2, 0xd0, 0xe8, 0x8c, 0xc2, 0xb2, 0x97, 0x99, 0xdd, 0xcd, 0x08,
+  0xaa, 0x6b, 0x46, 0xab, 0x6c, 0xaf, 0x97, 0x4b, 0x6f, 0x8b, 0x62, 0x81,
+  0x25, 0xed, 0x44, 0x90, 0x2b, 0x71, 0xdb, 0x12, 0x4c, 0x6d, 0x08, 0xb5,
+  0x8b, 0x4b, 0x12, 0x92, 0x28, 0x83, 0xbb, 0xb4, 0x54, 0x2d, 0x17, 0xbc,
+  0x25, 0x67, 0xb5, 0xf2, 0x06, 0x20, 0x8d, 0x47, 0x7d, 0x5d, 0x23, 0x89,
+  0xa8, 0x9d, 0x94, 0x6e, 0x3c, 0xc9, 0x46, 0x12, 0x60, 0x46, 0x2c, 0x4c,
+  0xb6, 0xeb, 0x4b, 0x51, 0xf6, 0xd2, 0x4d, 0x7c, 0x7d, 0x07, 0x49, 0xb5,
+  0x30, 0xc0, 0xc3, 0x53, 0x62, 0x1f, 0xf4, 0xa2, 0xb6, 0x76, 0xd2, 0x35,
+  0xd1, 0xaa, 0xb1, 0xf5, 0x9a, 0x8c, 0x83, 0xde, 0x6c, 0xa9, 0x35, 0xbc,
+  0xcf, 0x2d, 0xad, 0x2b, 0xf1, 0xf7, 0x79, 0xff, 0x48, 0x1f, 0xb1, 0xfa,
+  0x0e, 0x2e, 0x07, 0x57, 0x7c, 0xed, 0x76, 0x70, 0xf9, 0x7a, 0xfc, 0x9e,
+  0x17, 0x9c, 0x01, 0xdb, 0xd0, 0xc6, 0x46, 0xb0, 0x50, 0x6c, 0x14, 0x1b,
+  0x0a, 0x88, 0xe1, 0xc0, 0xa9, 0x9a, 0x32, 0x2a, 0xae, 0xaa, 0xd5, 0x50,
+  0x46, 0x5c, 0xc2, 0x25, 0x5b, 0x05, 0x67, 0xd8, 0xd7, 0xcf, 0xa9, 0x49,
+  0xa6, 0x6b, 0x90, 0x2f, 0xb8, 0xa7, 0x16, 0x1c, 0xae, 0x05, 0xbd, 0x14,
+  0x6a, 0xb2, 0x64, 0x7c, 0xd8, 0x1a, 0xff, 0x67, 0xc4, 0xb4, 0x4f, 0x3f,
+  0x49, 0xe4, 0xdc, 0x02, 0x68, 0x90, 0x15, 0x62, 0xda, 0x17, 0xaf, 0x24,
+  0x19, 0xbb, 0x8c, 0x5d, 0x18, 0x7c, 0x9d, 0x63, 0x85, 0xfa, 0xad, 0xba,
+  0x10, 0xb6, 0x05, 0x64, 0x00, 0x4f, 0x8f, 0x5c, 0xcd, 0xb8, 0x4a, 0xd6,
+  0x8e, 0x2e, 0x02, 0x3b, 0xee, 0xe6, 0x43, 0xca, 0xca, 0x28, 0x2d, 0x24,
+  0x47, 0x11, 0xda, 0x1a, 0x03, 0xdd, 0xf2, 0xbd, 0x3b, 0x89, 0x8d, 0x54,
+  0x8e, 0xb3, 0xb1, 0x21, 0x8d, 0xfa, 0xad, 0xa6, 0x58, 0x5d, 0x13, 0x39,
+  0x3d, 0xc6, 0xfe, 0xd3, 0xec, 0xf2, 0x55, 0xf9, 0x9b, 0x25, 0x22, 0x06,
+  0x80, 0xbc, 0x93, 0x77, 0x7b, 0x46, 0xb3, 0x33, 0xa3, 0x7a, 0xf2, 0x83,
+  0xa4, 0x17, 0x2b, 0x14, 0x5a, 0x74, 0xc4, 0x62, 0xf4, 0xba, 0x78, 0xa6,
+  0xb6, 0xbf, 0x62, 0x03, 0xed, 0xc2, 0x75, 0xa7, 0xb7, 0x8c, 0x8f, 0x02,
+  0x14, 0x71, 0x81, 0xaa, 0xb7, 0xaa, 0xb0, 0x79, 0x4e, 0x1f, 0x3d, 0x47,
+  0x55, 0xaa, 0x41, 0x48, 0x42, 0xc9, 0x5b, 0xeb, 0xba, 0x7d, 0x3d, 0x4d,
+  0x35, 0x71, 0x7a, 0xd6, 0x4e, 0x2c, 0xaf, 0x04, 0x43, 0xc8, 0x63, 0x1e,
+  0xf1, 0xa0, 0x1b, 0x57, 0x07, 0x95, 0xa6, 0xc3, 0xe3, 0x2e, 0xa6, 0x6e,
+  0x41, 0x5a, 0xae, 0x3c, 0xce, 0xb0, 0xbf, 0xa3, 0x71, 0xe8, 0xbe, 0xf3,
+  0xef, 0x7d, 0x5f, 0x1f, 0xa3, 0xa3, 0xb4, 0xf3, 0x00, 0x70, 0x21, 0x1a,
+  0x93, 0x9d, 0x89, 0x90, 0x9a, 0x61, 0x50, 0xdc, 0x20, 0xa5, 0x46, 0x10,
+  0xc8, 0x4d, 0xe8, 0x05, 0x40, 0x4b, 0xa0, 0x12, 0x99, 0x8b, 0x27, 0x05,
+  0xc4, 0x96, 0x5f, 0xc3, 0x7a, 0x86, 0xcc, 0xed, 0x25, 0x8a, 0x2a, 0x90,
+  0x1e, 0x99, 0xd0, 0x46, 0x2c, 0x1f, 0x2f, 0x53, 0xec, 0x7d, 0x03, 0xd7,
+  0xc7, 0x6f, 0xc9, 0x64, 0x1c, 0x8a, 0xfd, 0xb5, 0x2b, 0x63, 0x89, 0xf9,
+  0x3e, 0x16, 0xc0, 0xb0, 0xb7, 0xbc, 0x3b, 0xa4, 0xda, 0x6e, 0xab, 0x46,
+  0x7c, 0xf7, 0x92, 0x5f, 0xf0, 0xda, 0xe6, 0xfc, 0x56, 0x1a, 0x24, 0xf0,
+  0xca, 0xf7, 0xa5, 0xa5, 0x7b, 0x70, 0x70, 0xaf, 0x8b, 0xcd, 0x18, 0xed,
+  0xc3, 0x7a, 0x4a, 0x26, 0x7d, 0xfb, 0x22, 0x94, 0x92, 0xd9, 0xcd, 0x98,
+  0xd3, 0x3a, 0x1e, 0x43, 0x74, 0x2b, 0xfd, 0x07, 0x8d, 0x2b, 0xad, 0xfe,
+  0xe9, 0xae, 0xa4, 0x1d, 0xa1, 0x2f, 0xa7, 0xb3, 0x59, 0xf4, 0x5c, 0x6e,
+  0x3e, 0xf8, 0x82, 0x3b, 0x49, 0xeb, 0xa9, 0xf5, 0xf7, 0xb7, 0x83, 0x05,
+  0xae, 0x75, 0x54, 0x01, 0x71, 0xd4, 0xa5, 0x00, 0x8a, 0x86, 0x81, 0x7b,
+  0xd0, 0x07, 0x77, 0xba, 0x44, 0xc4, 0x94, 0x3e, 0x6f, 0x5d, 0x2a, 0x75,
+  0x2a, 0x5b, 0x39, 0x4c, 0x68, 0x32, 0x65, 0x82, 0x6e, 0x9c, 0xff, 0x35,
+  0xd0, 0x78, 0x73, 0xb3, 0xb7, 0x7f, 0xa2, 0xc3, 0x90, 0xcc, 0x83, 0x90,
+  0x78, 0x69, 0xd5, 0xf2, 0xbb, 0x9d, 0x75, 0x4f, 0x1e, 0xe3, 0xb0, 0x7b,
+  0x80, 0xef, 0x62, 0x92, 0x32, 0xae, 0x02, 0xda, 0x92, 0x9c, 0x6b, 0x1b,
+  0x7f, 0x0e, 0xc7, 0x4a, 0xc3, 0x4f, 0x5b, 0x08, 0xd2, 0xac, 0x22, 0x7b,
+  0xa5, 0x10, 0x90, 0xa9, 0x55, 0x2b, 0x86, 0xfc, 0x3f, 0xc4, 0xf9, 0x5f,
+  0x7f, 0xde, 0x72, 0xbf, 0x9f, 0xda, 0x00, 0x74, 0xb1, 0x32, 0x92, 0xcc,
+  0x4a, 0x1c, 0x84, 0x10, 0xe7, 0x40, 0xa3, 0x2c, 0x03, 0x7a, 0x00, 0xb0,
+  0x2e, 0xa1, 0x69, 0x3a, 0x69, 0x6a, 0x52, 0x02, 0x42, 0x9e, 0xda, 0x67,
+  0xf2, 0xe2, 0x11, 0x3d, 0x27, 0x65, 0x21, 0x70, 0x61, 0x92, 0xfe, 0x33,
+  0xc3, 0x9f, 0x87, 0x86, 0xef, 0x12, 0x35, 0xc8, 0x6b, 0x21, 0xde, 0x72,
+  0xb4, 0xe4, 0xff, 0x87, 0x52, 0x2a, 0xa4, 0x83, 0x99, 0xd4, 0x6c, 0x5f,
+  0xac, 0x67, 0xb5, 0x27, 0x2e, 0xed, 0x58, 0x08, 0x00, 0xaf, 0xc0, 0x6b,
+  0x8a, 0xd7, 0xb7, 0x81, 0xbc, 0x5b, 0x4a, 0x27, 0xce, 0x15, 0x70, 0xac,
+  0x9f, 0xf2, 0xba, 0x39, 0xd4, 0x9d, 0xe7, 0xb8, 0xc4, 0xd9, 0x37, 0x5e,
+  0x9b, 0xaa, 0xf0, 0xf6, 0x51, 0x9b, 0x50, 0xf1, 0xb7, 0x27, 0xbd, 0xa7,
+  0x75, 0x9f, 0x92, 0x10, 0x3c, 0xa3, 0x7c, 0x38, 0x2e, 0x5f, 0x99, 0xfc,
+  0xbd, 0x3f, 0x03, 0x5a, 0xcd, 0xd7, 0xfe, 0xc0, 0x3e, 0x36, 0x8d, 0x73,
+  0xdc, 0xf6, 0x82, 0x0d, 0x72, 0x42, 0xb4, 0xd3, 0x38, 0xba, 0xa9, 0x16,
+  0x0c, 0x8c, 0xaf, 0x95, 0x02, 0xbb, 0xe5, 0x54, 0x7b, 0xdc, 0x5d, 0xc9,
+  0xd4, 0xdd, 0x12, 0xd6, 0xba, 0x89, 0x6c, 0xb5, 0xfb, 0x6f, 0x9c, 0xab,
+  0x38, 0x7e, 0xda, 0x54, 0x1d, 0xbc, 0x67, 0xeb, 0xf2, 0xfd, 0xad, 0x44,
+  0xd2, 0x9a, 0x86, 0x6a, 0x0c, 0x36, 0x00, 0xcd, 0x18, 0xee, 0x90, 0x5e,
+  0x05, 0x32, 0x0c, 0x9b, 0x35, 0x78, 0x85, 0x62, 0x22, 0x65, 0x06, 0x17,
+  0x04, 0xf0, 0x89, 0x79, 0xd3, 0x41, 0x9b, 0xc7, 0x9f, 0xbd, 0x2b, 0x67,
+  0x75, 0x7f, 0x06, 0xf9, 0xa5, 0x6d, 0x9c, 0xff, 0x07, 0xc3, 0xe7, 0x7f,
+  0x1b, 0xf3, 0x2d, 0x2f, 0xa7, 0x00, 0xe0, 0x21, 0x1a, 0x93, 0xa5, 0x21,
+  0x90, 0x85, 0x22, 0xa2, 0x58, 0x50, 0x41, 0x09, 0xac, 0xcd, 0x64, 0x54,
+  0x02, 0xb1, 0x7b, 0x0b, 0x50, 0x52, 0xc8, 0x9f, 0xb0, 0x98, 0x3f, 0xd7,
+  0xe3, 0x79, 0x76, 0xd1, 0x9b, 0xde, 0x98, 0x38, 0x60, 0x7b, 0xa8, 0xf1,
+  0x09, 0x11, 0x36, 0x8a, 0x4a, 0xe2, 0xb3, 0xa5, 0x29, 0x75, 0x66, 0x93,
+  0xc1, 0xa4, 0xcd, 0x6d, 0x0c, 0xd9, 0x02, 0x35, 0x43, 0xf5, 0x61, 0xb6,
+  0xa4, 0x76, 0x29, 0x06, 0x71, 0x70, 0x8f, 0xbf, 0xe8, 0x70, 0xc9, 0x95,
+  0x9e, 0xfc, 0xf8, 0xc2, 0x13, 0xe3, 0x49, 0x95, 0x61, 0x1b, 0x79, 0x24,
+  0xe0, 0x58, 0x80, 0x8a, 0x80, 0xd1, 0x59, 0xa7, 0x91, 0x02, 0x11, 0xd3,
+  0x5d, 0x2a, 0x80, 0xaf, 0xdf, 0x90, 0xe8, 0xe4, 0xbc, 0x47, 0xbd, 0x28,
+  0x82, 0x02, 0xd4, 0xbd, 0xce, 0xad, 0x08, 0xf0, 0x0b, 0x4f, 0xdc, 0x39,
+  0x50, 0x15, 0xb7, 0x6a, 0xe5, 0x4f, 0x94, 0x7e, 0x7a, 0x41, 0xd9, 0xe2,
+  0x1d, 0x2b, 0xd7, 0x80, 0xcf, 0x8a, 0x28, 0xbd, 0x6c, 0x97, 0xc8, 0xe3,
+  0x56, 0x7e, 0xab, 0xb6, 0x09, 0xd7, 0xb6, 0x9b, 0xe9, 0xcc, 0x59, 0x73,
+  0x95, 0x5e, 0xa4, 0x2d, 0xea, 0x70, 0x19, 0xdd, 0x66, 0x87, 0xa0, 0xab,
+  0x1a, 0xd1, 0x39, 0x70, 0x26, 0xb7, 0x3a, 0x27, 0x87, 0x70, 0x3b, 0x77,
+  0x47, 0xca, 0x8e, 0x38, 0xb8, 0x95, 0xc7, 0xb6, 0x9b, 0x8a, 0x26, 0x68,
+  0x8f, 0xbb, 0xdf, 0x19, 0x18, 0xc8, 0x77, 0xca, 0x94, 0x2c, 0x94, 0x6e,
+  0xa5, 0x38, 0xde, 0xd6, 0x6f, 0x75, 0x5b, 0x59, 0xbb, 0xd8, 0xf5, 0x69,
+  0x54, 0xd0, 0xd8, 0xc7, 0x57, 0x8b, 0xb1, 0xe7, 0x67, 0xbd, 0xf9, 0x03,
+  0xba, 0x60, 0x8a, 0x87, 0x82, 0xb8, 0x4e, 0x00, 0x29, 0x50, 0x01, 0x58,
+  0x20, 0x94, 0x90, 0x50, 0x5f, 0xe7, 0xfa, 0x2f, 0xeb, 0xdf, 0x51, 0x07,
+  0xfe, 0xb7, 0xd7, 0x73, 0x91, 0x1e, 0x8f, 0xa6, 0x3f, 0xb8, 0xe9, 0xa5,
+  0x31, 0x1f, 0x0f, 0xc1, 0x1c, 0xf2, 0x6f, 0xf6, 0x28, 0xb5, 0x8c, 0x9c,
+  0x80, 0x3a, 0x1e, 0x87, 0xf6, 0x7e, 0x21, 0x75, 0x80, 0x43, 0xb4, 0x28,
+  0xfc, 0x07, 0x8f, 0x10, 0x02, 0x00, 0x45, 0x6d, 0xcd, 0x7e, 0x2b, 0xad,
+  0xcf, 0xb1, 0x95, 0xdd, 0xe5, 0xb3, 0x7a, 0x4b, 0xff, 0xcc, 0xa7, 0xaa,
+  0x51, 0x4a, 0xab, 0x9b, 0x1b, 0x3c, 0x6b, 0xa5, 0x58, 0xb0, 0xad, 0x2b,
+  0x62, 0x6d, 0x7e, 0x98, 0x42, 0x1a, 0x84, 0xcf, 0xf4, 0x71, 0x55, 0x89,
+  0x48, 0xab, 0xea, 0x00, 0x00, 0xa2, 0x10, 0x6a, 0x8d, 0xe8, 0xed, 0x39,
+  0x70, 0x66, 0xd4, 0x1b, 0xcd, 0x77, 0x30, 0x3f, 0x9c, 0x75, 0x7f, 0xd6,
+  0xfb, 0x66, 0x28, 0x16, 0xbf, 0x1e, 0x8a, 0x2b, 0x44, 0x48, 0x57, 0xa1,
+  0x67, 0xbf, 0x80, 0x77, 0xd7, 0x1c, 0x63, 0x9d, 0x61, 0x30, 0x86, 0x9d,
+  0x18, 0x5f, 0x1c, 0xf2, 0xc2, 0xfd, 0x34, 0xa1, 0x8d, 0x1a, 0xfd, 0x56,
+  0x14, 0x63, 0x82, 0xa1, 0xed, 0x5c, 0xd9, 0x45, 0x05, 0x86, 0xca, 0x81,
+  0x1c, 0x9c, 0x8d, 0x1d, 0x67, 0xbd, 0x51, 0xa0, 0xa7, 0x64, 0x0d, 0xf9,
+  0x44, 0x6d, 0xa8, 0x62, 0x22, 0x37, 0x52, 0xd2, 0xd6, 0x33, 0xd2, 0xc5,
+  0xd2, 0xb7, 0x33, 0x7a, 0x76, 0x36, 0xee, 0x37, 0x63, 0x9f, 0x33, 0x1f,
+  0x2e, 0xaf, 0xc6, 0xeb, 0xf7, 0x76, 0x5e, 0x1f, 0x2f, 0x9b, 0xcc, 0x01,
+  0xc0, 0x21, 0x1a, 0x93, 0x95, 0x15, 0x94, 0x8d, 0x22, 0x21, 0x60, 0x82,
+  0x14, 0x6f, 0x5b, 0x8d, 0xc5, 0xd3, 0x76, 0xa5, 0x00, 0x02, 0x11, 0x51,
+  0xf6, 0x1a, 0x05, 0x0a, 0x96, 0xb8, 0xfb, 0x3b, 0xf7, 0x3c, 0xf9, 0xb3,
+  0xc7, 0x4f, 0xbe, 0x9c, 0xb4, 0x2d, 0xbf, 0x3e, 0x35, 0xc4, 0x0e, 0x54,
+  0x68, 0xb0, 0x64, 0xc6, 0xa9, 0xcd, 0x0e, 0xda, 0x09, 0x50, 0x53, 0xe6,
+  0x67, 0xcb, 0x46, 0xbe, 0x2d, 0x48, 0x2a, 0x06, 0xb1, 0x1f, 0x64, 0x45,
+  0x25, 0x22, 0x8e, 0x29, 0xcd, 0x60, 0x7a, 0x8c, 0xb4, 0xfa, 0xe5, 0x55,
+  0x82, 0x99, 0x37, 0xb1, 0xc2, 0x2b, 0xb9, 0x42, 0x57, 0xde, 0x8b, 0xde,
+  0x1d, 0x66, 0x5d, 0xf5, 0xe7, 0x91, 0x78, 0x63, 0x31, 0x3f, 0x7a, 0x2f,
+  0xf5, 0xbd, 0x56, 0xf8, 0xf6, 0x99, 0xbf, 0x5a, 0xf0, 0x15, 0xb6, 0xbc,
+  0x47, 0xc9, 0xce, 0x84, 0x65, 0x57, 0x57, 0x7a, 0x94, 0x64, 0x3b, 0x31,
+  0x5d, 0xd5, 0x81, 0x9f, 0x87, 0xf2, 0x79, 0x7d, 0x3e, 0x79, 0x85, 0x84,
+  0x93, 0xd1, 0x2f, 0xc1, 0xd1, 0xfb, 0x0e, 0x8c, 0x0c, 0xdd, 0x91, 0x57,
+  0xf8, 0x8e, 0x8d, 0xab, 0xf4, 0x5d, 0x03, 0xa3, 0x77, 0x39, 0xb6, 0xd6,
+  0xe8, 0x86, 0x43, 0x18, 0xf0, 0xad, 0x50, 0x01, 0x97, 0xa2, 0xde, 0xc8,
+  0x98, 0x0a, 0x8b, 0x6d, 0x47, 0x12, 0x92, 0xe2, 0x8e, 0xc1, 0xcb, 0x6b,
+  0x8f, 0x05, 0x3a, 0x88, 0xb2, 0xe8, 0x4f, 0x6a, 0xd9, 0x20, 0xf7, 0xee,
+  0x3e, 0x15, 0x6b, 0xa3, 0xbd, 0x8d, 0xbf, 0x14, 0x82, 0x8d, 0xa6, 0xc6,
+  0xe0, 0xbe, 0x53, 0x1a, 0x3d, 0xfc, 0x9f, 0x67, 0x8a, 0x39, 0x01, 0xc9,
+  0x8a, 0x91, 0x23, 0x22, 0x18, 0x50, 0x37, 0x0b, 0x22, 0xb2, 0x5d, 0x29,
+  0x56, 0x14, 0x2a, 0x80, 0x10, 0x42, 0x50, 0xc7, 0xf2, 0x4e, 0x5b, 0xe9,
+  0xcc, 0xab, 0xc3, 0x9a, 0xe9, 0xee, 0x0b, 0x93, 0x59, 0xc5, 0xd8, 0x4d,
+  0x72, 0xdd, 0x83, 0xb3, 0x0b, 0xd7, 0xdb, 0x9d, 0x1a, 0x75, 0x6c, 0xfc,
+  0x39, 0x78, 0x8c, 0x96, 0x32, 0x68, 0xc1, 0x0a, 0x00, 0x21, 0x72, 0x16,
+  0x04, 0x7b, 0xf6, 0x55, 0x46, 0x85, 0x78, 0x06, 0xd4, 0x83, 0x51, 0xe3,
+  0xa4, 0xdb, 0x50, 0x96, 0x3e, 0x16, 0x0c, 0x17, 0xe0, 0x94, 0xdd, 0x68,
+  0xe1, 0xf8, 0xe1, 0x87, 0x8f, 0x22, 0xb3, 0x65, 0x57, 0xa9, 0x0a, 0x22,
+  0x5c, 0x64, 0xc9, 0xa3, 0xc9, 0x6b, 0xb5, 0x61, 0x31, 0xb8, 0xf0, 0x6a,
+  0x2a, 0xbd, 0x13, 0x2f, 0xe7, 0xdd, 0x18, 0x0c, 0x6a, 0x9f, 0x71, 0x79,
+  0x00, 0x11, 0x56, 0x31, 0x0d, 0xee, 0xb6, 0x34, 0xd5, 0x81, 0xe3, 0xe8,
+  0x5b, 0xd8, 0x20, 0x1b, 0x3d, 0xe6, 0x53, 0x1a, 0xa2, 0xb3, 0x49, 0x65,
+  0x35, 0x95, 0x8f, 0x64, 0xc1, 0x72, 0xee, 0x9d, 0xff, 0x3a, 0x2d, 0xdf,
+  0xb7, 0x17, 0xeb, 0xdf, 0x85, 0x0e, 0x75, 0x7b, 0x12, 0xe5, 0xe0, 0x9f,
+  0x11, 0xa3, 0x16, 0x7e, 0x9f, 0x1d, 0x72, 0x47, 0x3c, 0xae, 0x06, 0x40,
+  0x81, 0x63, 0x85, 0x04, 0x0d, 0x1e, 0x4b, 0x7d, 0x3e, 0xa6, 0x9a, 0xc6,
+  0x45, 0x5f, 0x93, 0xde, 0xf7, 0x0b, 0xc3, 0xaf, 0xd1, 0x78, 0x7e, 0xe4,
+  0xab, 0xea, 0xf8, 0x11, 0xe1, 0x76, 0xda, 0xde, 0xd0, 0x07, 0x21, 0x1a,
+  0x88, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xed, 0x65, 0xa3, 0x41, 0x49, 0xe8,
+  0x68, 0x23, 0x85, 0x2a, 0xcc, 0xde, 0xa4, 0x0a, 0xd8, 0x02, 0x00, 0x12,
+  0x50, 0x30, 0xff, 0x46, 0x8c, 0x66, 0xd8, 0xeb, 0xe2, 0x27, 0xd1, 0x59,
+  0x7d, 0xd7, 0xc6, 0x1d, 0x26, 0x43, 0x34, 0xca, 0xf0, 0x0a, 0xed, 0x71,
+  0xbe, 0x82, 0x03, 0x18, 0xe2, 0x88, 0xb4, 0xd3, 0x2c, 0x68, 0x1e, 0x2b,
+  0xd4, 0xc6, 0xe7, 0xb5, 0x65, 0x00, 0x65, 0xbc, 0xb5, 0x87, 0xe5, 0xf1,
+  0x16, 0x70, 0xf4, 0x25, 0xf3, 0x3c, 0x46, 0x72, 0x4e, 0x0b, 0x73, 0x10,
+  0x20, 0x16, 0xc7, 0x7d, 0xbe, 0x98, 0x7b, 0x1b, 0xa5, 0x25, 0x7a, 0xfa,
+  0x77, 0xe4, 0x87, 0x20, 0xe9, 0x4e, 0x48, 0xf1, 0x3b, 0x42, 0xcb, 0x57,
+  0xc1, 0x8b, 0xa4, 0xcc, 0xab, 0xba, 0x7f, 0x5e, 0xfb, 0x81, 0x93, 0xe4,
+  0xa8, 0xb5, 0xb0, 0xcc, 0x4e, 0x5b, 0xa2, 0xd7, 0xb7, 0x38, 0x06, 0x9a,
+  0x64, 0x9d, 0xfa, 0x15, 0x33, 0x1f, 0x46, 0x52, 0xd1, 0x11, 0x0a, 0x02,
+  0xbe, 0x74, 0xad, 0x3a, 0x02, 0x78, 0x05, 0xfa, 0x5c, 0xe4, 0xa7, 0x97,
+  0x4b, 0x26, 0x01, 0x33, 0x09, 0xa0, 0xc8, 0xfe, 0xac, 0xba, 0x8e, 0x5b,
+  0x83, 0x03, 0xa1, 0x46, 0xf8, 0xcc, 0x29, 0xd1, 0xcb, 0xb0, 0x86, 0xd0,
+  0xb8, 0x5f, 0x46, 0xef, 0xa1, 0x41, 0x8d, 0xab, 0x56, 0x82, 0x46, 0x2a,
+  0xa1, 0x44, 0x44, 0x0b, 0x7a, 0x16, 0x50, 0x7f, 0x50, 0xfb, 0x33, 0x84,
+  0xfb, 0xee, 0x9e, 0x8c, 0xf6, 0x49, 0xf1, 0x56, 0x4e, 0x95, 0x85, 0x82,
+  0x7e, 0x7e, 0x3f, 0x99, 0xe8, 0xfd, 0x2f, 0x57, 0x5c, 0xc0, 0x0f, 0x3e,
+  0xb6, 0x1a, 0x3c, 0x8a, 0x83, 0x61, 0x40, 0x8c, 0x3b, 0xba, 0xa9, 0x4a,
+  0x92, 0xba, 0xc8, 0x0d, 0xc0, 0x00, 0x15, 0x68, 0xe4, 0x39, 0x27, 0x27,
+  0x44, 0xa8, 0xa0, 0x2a, 0x36, 0xaa, 0x39, 0x1f, 0xb7, 0xac, 0x52, 0x03,
+  0x40, 0x13, 0x63, 0x1e, 0x2d, 0x45, 0x82, 0x7a, 0x26, 0x8b, 0x9a, 0x08,
+  0xa5, 0x7b, 0xb6, 0x39, 0x4e, 0x96, 0x56, 0xa8, 0x65, 0x13, 0xf7, 0xc5,
+  0xf4, 0x4a, 0x38, 0xad, 0x4d, 0x24, 0x9d, 0x6f, 0x73, 0x23, 0x61, 0x74,
+  0xde, 0x0b, 0x2f, 0x5c, 0xb3, 0x3b, 0x36, 0xf6, 0xda, 0x9b, 0xf3, 0xe9,
+  0xf8, 0xad, 0xce, 0x4e, 0xc5, 0xc9, 0x63, 0xec, 0xd1, 0xd2, 0xdb, 0xf1,
+  0xc2, 0xe6, 0x14, 0x9d, 0x3d, 0xda, 0x78, 0x5a, 0x19, 0x6a, 0xe4, 0xed,
+  0x69, 0xf5, 0x5d, 0x1f, 0x56, 0xbe, 0x7c, 0x91, 0x28, 0xde, 0x0f, 0x54,
+  0xf7, 0xd0, 0x6a, 0x1a, 0x11, 0x02, 0x06, 0xe8, 0x15, 0x8e, 0x23, 0x4f,
+  0xc5, 0x33, 0x58, 0x6c, 0xa3, 0x21, 0x82, 0x87, 0xc1, 0xc3, 0x2f, 0x1b,
+  0x13, 0x3d, 0x86, 0x2d, 0xec, 0xe2, 0x37, 0x65, 0xe9, 0x2d, 0x93, 0xdc,
+  0x5d, 0x3b, 0x7b, 0x9a, 0xf6, 0x98, 0xc4, 0x22, 0x9d, 0x24, 0x10, 0x99,
+  0x93, 0x0d, 0x5a, 0x51, 0xf7, 0x97, 0xb1, 0x62, 0xa5, 0x8a, 0x92, 0x50,
+  0xb7, 0xf7, 0xaf, 0x1e, 0x5f, 0xdb, 0xbf, 0xb4, 0xfc, 0xc8, 0x70, 0x21,
+  0x1a, 0x88, 0x00, 0xff, 0xff, 0xff, 0xfe, 0xf3, 0x65, 0xa5, 0xa0, 0x88,
+  0xea, 0x44, 0x21, 0x09, 0x05, 0x04, 0x10, 0xb3, 0x88, 0x6e, 0x56, 0xa0,
+  0x06, 0xc0, 0x09, 0x42, 0x55, 0xa5, 0x7b, 0x89, 0xb7, 0x8b, 0xe1, 0xd3,
+  0x20, 0x3b, 0x16, 0x0e, 0x93, 0xef, 0x7b, 0xaa, 0xe3, 0xfa, 0x9f, 0xca,
+  0x90, 0xc5, 0x6c, 0x5b, 0x6e, 0x4d, 0x0d, 0xd7, 0x76, 0xa4, 0x69, 0x23,
+  0x92, 0x56, 0x65, 0x4b, 0xe9, 0x6a, 0x0a, 0x36, 0x29, 0x65, 0x87, 0xcf,
+  0xbb, 0x00, 0x06, 0x0c, 0x4f, 0x52, 0xde, 0xf4, 0x4b, 0x67, 0xcb, 0x25,
+  0xfc, 0xcd, 0xae, 0xbb, 0x37, 0x19, 0x90, 0x2b, 0x03, 0x69, 0x6f, 0xb2,
+  0xa1, 0x2c, 0x63, 0x11, 0x2d, 0xef, 0x24, 0x9b, 0x61, 0xca, 0x24, 0x88,
+  0xd2, 0xe4, 0x83, 0x61, 0x62, 0xa6, 0x53, 0x03, 0x75, 0x12, 0xb7, 0x30,
+  0xea, 0x4d, 0x2a, 0xa6, 0x71, 0x67, 0x6a, 0x26, 0x88, 0x6f, 0x48, 0x72,
+  0x4b, 0x25, 0x8a, 0xc8, 0x9d, 0xc5, 0x0c, 0x5d, 0xd5, 0xd2, 0x6f, 0xc8,
+  0x72, 0x96, 0x1c, 0x4f, 0xd6, 0xc9, 0x54, 0x68, 0x2f, 0x99, 0x33, 0x99,
+  0xb0, 0xcb, 0xb2, 0x02, 0x1a, 0xf4, 0x0c, 0xce, 0x88, 0xee, 0x6e, 0xef,
+  0x65, 0xe0, 0x41, 0x02, 0x2c, 0x01, 0x35, 0xa2, 0x62, 0x9e, 0x4c, 0x32,
+  0x24, 0x46, 0x61, 0x3b, 0xd6, 0xf3, 0x8b, 0x89, 0x64, 0x4b, 0xf2, 0xa9,
+  0x00, 0xf3, 0xa9, 0x3d, 0xc6, 0x19, 0x9c, 0x23, 0x4a, 0xdf, 0xc1, 0x55,
+  0x46, 0xd8, 0x9b, 0xd8, 0x2f, 0xdb, 0x46, 0xbb, 0x4a, 0x92, 0x75, 0x40,
+  0xa2, 0x3b, 0x2d, 0xeb, 0x72, 0x17, 0xdf, 0x17, 0xc6, 0x20, 0xf1, 0xeb,
+  0x46, 0x11, 0x11, 0x70, 0x37, 0x0e, 0xd5, 0x01, 0x53, 0x8a, 0x83, 0x65,
+  0x45, 0x00, 0x40, 0x90, 0x04, 0xa7, 0x8d, 0x2f, 0xfb, 0xbf, 0xac, 0xec,
+  0x5a, 0x01, 0x2c, 0xd1, 0xf9, 0x9a, 0x8b, 0x25, 0x4a, 0x3e, 0x7a, 0xba,
+  0x74, 0x73, 0xb0, 0x4f, 0x09, 0xe3, 0xb3, 0xa6, 0x3c, 0x8c, 0x38, 0x4c,
+  0x7d, 0x48, 0xdc, 0x32, 0x05, 0xeb, 0x27, 0xcc, 0xc6, 0x03, 0xcb, 0x84,
+  0x50, 0xf3, 0x75, 0xe0, 0xea, 0x34, 0xd9, 0x41, 0x0b, 0x91, 0x94, 0xd9,
+  0xe7, 0x55, 0xd3, 0x46, 0x29, 0x88, 0x6d, 0x72, 0x56, 0x3d, 0xdc, 0x3a,
+  0x0b, 0x8a, 0x98, 0x45, 0xb5, 0x17, 0x45, 0x0d, 0x73, 0xe5, 0xf5, 0x02,
+  0x91, 0x58, 0x62, 0xd3, 0xc0, 0xd4, 0xe8, 0x5c, 0xf4, 0x2a, 0xe9, 0x89,
+  0xf3, 0x68, 0x95, 0xcb, 0x13, 0xa1, 0xe4, 0xce, 0x78, 0x89, 0x12, 0x47,
+  0xfe, 0xcf, 0xb1, 0x5f, 0xf2, 0x52, 0xf8, 0xde, 0xef, 0xd2, 0x7f, 0x75,
+  0xb9, 0xf0, 0x08, 0x40, 0x34, 0x0e, 0xe4, 0xf1, 0x1a, 0x42, 0x83, 0xbd,
+  0x5e, 0xfc, 0x49, 0x37, 0x11, 0x46, 0x9a, 0x6c, 0x3d, 0xd2, 0x9a, 0x17,
+  0x9a, 0x73, 0x57, 0xb6, 0xf5, 0x53, 0x89, 0x67, 0xc2, 0xb2, 0x6a, 0xf4,
+  0xaf, 0xf0, 0x08, 0xae, 0xd8, 0x6d, 0xac, 0x72, 0xac, 0xef, 0xe2, 0x8b,
+  0xf3, 0x79, 0x7c, 0x1f, 0x53, 0xd6, 0xfa, 0xbf, 0x12, 0x00, 0x38, 0x21,
+  0x1a, 0x88, 0x00, 0x7f, 0xff, 0xff, 0xfe, 0xed, 0x6d, 0x61, 0xa1, 0x89,
+  0xac, 0x48, 0x12, 0x84, 0x01, 0x51, 0x95, 0x2a, 0x03, 0x77, 0x00, 0x08,
+  0x24, 0xd8, 0x93, 0xc1, 0x2a, 0x88, 0x91, 0x54, 0x42, 0x28, 0x64, 0xe2,
+  0x10, 0x4c, 0x3a, 0x8e, 0x26, 0x04, 0x1e, 0xe8, 0xb3, 0xc2, 0x3e, 0x0e,
+  0x7e, 0x6d, 0xfd, 0x1d, 0x6b, 0x4c, 0x69, 0xef, 0xfe, 0x46, 0x53, 0x7c,
+  0x3a, 0xd2, 0xc6, 0xd4, 0xb8, 0x38, 0x61, 0x06, 0xa3, 0x5e, 0x7e, 0x0a,
+  0x0b, 0xd1, 0x34, 0x5e, 0x96, 0x8c, 0x28, 0x12, 0x5a, 0xc8, 0x20, 0xa4,
+  0xc6, 0x2b, 0x00, 0x8f, 0x23, 0xb6, 0x06, 0xe7, 0xe3, 0x80, 0x91, 0x88,
+  0xdf, 0x30, 0xa5, 0x8d, 0x9a, 0x55, 0x82, 0xf0, 0x31, 0x8d, 0x47, 0x0b,
+  0x16, 0xbf, 0x45, 0x92, 0x94, 0xc6, 0x98, 0x21, 0xf3, 0xd5, 0x07, 0xd9,
+  0xcc, 0x71, 0xe3, 0x27, 0x5a, 0x5a, 0xb1, 0xf1, 0x81, 0xfc, 0x2a, 0x07,
+  0xfd, 0x45, 0xf8, 0x65, 0x39, 0x8e, 0x88, 0x54, 0xff, 0x7d, 0x74, 0x45,
+  0x0f, 0x8b, 0x35, 0x21, 0xf4, 0x59, 0xed, 0xfb, 0xa6, 0x76, 0x7c, 0x8d,
+  0x95, 0x14, 0xe9, 0x90, 0x8a, 0xf3, 0x68, 0x27, 0x80, 0x35, 0x30, 0xa2,
+  0x4c, 0x8c, 0x1a, 0x10, 0xea, 0xc8, 0x8c, 0xc8, 0xe5, 0xb6, 0x22, 0x1e,
+  0xe6, 0xb1, 0x4b, 0x10, 0x9c, 0xa4, 0xdf, 0xcc, 0x03, 0xe0, 0xd1, 0x3e,
+  0xfb, 0x65, 0x3d, 0x0d, 0x20, 0x78, 0x95, 0x2e, 0x8c, 0x83, 0x32, 0xef,
+  0xcd, 0x83, 0x09, 0x14, 0x22, 0x97, 0x8d, 0x4b, 0x21, 0x1d, 0x6e, 0x8e,
+  0xf3, 0x35, 0x13, 0xa1, 0x46, 0x95, 0x86, 0x7f, 0x7f, 0x87, 0x1f, 0x4e,
+  0x73, 0x00, 0x0f, 0x3e, 0xc5, 0x29, 0x45, 0x06, 0xc1, 0x81, 0xb8, 0x76,
+  0x00, 0xa4, 0x54, 0x00, 0x01, 0x00, 0x58, 0x36, 0x74, 0x34, 0xd6, 0xb4,
+  0xa2, 0x28, 0x1f, 0x4c, 0xdd, 0x72, 0xce, 0xae, 0xb0, 0x74, 0x76, 0xec,
+  0x6b, 0x50, 0xef, 0xa5, 0x99, 0x11, 0x64, 0x3e, 0x4f, 0xae, 0x77, 0x7b,
+  0xfd, 0xf1, 0xbe, 0x9e, 0xa6, 0x68, 0x4f, 0xb4, 0x4a, 0x2c, 0x3b, 0xcf,
+  0x0d, 0xd8, 0xa8, 0xe2, 0x88, 0x83, 0x14, 0x4b, 0x30, 0xc6, 0x97, 0x7b,
+  0x62, 0xb8, 0x03, 0x21, 0x58, 0x5d, 0x73, 0x8b, 0x71, 0x01, 0xb5, 0x76,
+  0x23, 0xe6, 0xbc, 0x75, 0xaf, 0xa1, 0xce, 0x37, 0xea, 0xbd, 0xe1, 0x4c,
+  0xf5, 0x42, 0x0d, 0x71, 0x5b, 0xc2, 0xc6, 0x3d, 0xd9, 0xc5, 0x1a, 0x93,
+  0x73, 0xfd, 0x9f, 0xd8, 0x33, 0xe2, 0x25, 0x10, 0x7b, 0xb4, 0xbd, 0x60,
+  0xf7, 0x19, 0x31, 0xca, 0x86, 0x97, 0x71, 0xaa, 0x6b, 0x89, 0x45, 0x85,
+  0x96, 0xd5, 0xed, 0x41, 0x30, 0x80, 0xa2, 0x42, 0x88, 0xbb, 0xc9, 0xd5,
+  0xed, 0xcb, 0x48, 0x64, 0x60, 0x4e, 0xa6, 0xfd, 0xa3, 0xf2, 0xf6, 0x13,
+  0x74, 0x8d, 0xe7, 0x41, 0x51, 0x8f, 0x75, 0x8d, 0xaf, 0xd9, 0x16, 0xb1,
+  0xa7, 0x57, 0xc0, 0xfa, 0xb9, 0xf0, 0xfc, 0xfe, 0xeb, 0x8d, 0xb4, 0x03,
+  0x07, 0x21, 0x1a, 0x8c, 0x00, 0x01, 0xff, 0xff, 0xfe, 0xed, 0x6f, 0x62,
+  0x8a, 0x10, 0x84, 0x34, 0x14, 0x11, 0x42, 0x62, 0xaa, 0xf3, 0x81, 0x88,
+  0x28, 0x50, 0x20, 0x04, 0x91, 0x83, 0x32, 0x31, 0x11, 0x30, 0x28, 0x78,
+  0xda, 0x4b, 0xfa, 0xb6, 0x71, 0x89, 0xa8, 0x1e, 0x93, 0x61, 0xcd, 0x9c,
+  0x53, 0x72, 0x73, 0x79, 0xf6, 0x1f, 0x24, 0x58, 0xf3, 0x5b, 0x65, 0xa7,
+  0x9b, 0x23, 0xc8, 0x72, 0xb9, 0x8e, 0x88, 0x11, 0x65, 0x47, 0xa7, 0x8f,
+  0x88, 0x68, 0xf9, 0x15, 0xc4, 0x95, 0x26, 0xcd, 0x0d, 0xa8, 0x5f, 0x16,
+  0xd8, 0xec, 0xc6, 0xa7, 0x38, 0x0b, 0x0c, 0x0b, 0x23, 0x0a, 0x9b, 0xa2,
+  0xcf, 0xc7, 0x0d, 0x3d, 0x37, 0x8f, 0x7a, 0x7d, 0x57, 0xd5, 0x59, 0x36,
+  0x62, 0x84, 0xba, 0xde, 0xf2, 0x64, 0x77, 0xe7, 0xa6, 0x95, 0x4d, 0x73,
+  0x3c, 0x07, 0x9a, 0xb9, 0xe4, 0x66, 0x21, 0xc1, 0x1e, 0x71, 0x13, 0x60,
+  0x7b, 0x24, 0xad, 0x4b, 0x61, 0x47, 0x40, 0xf4, 0xea, 0xf2, 0xc6, 0xcd,
+  0x05, 0x5c, 0x42, 0x9e, 0x6e, 0xbe, 0x1a, 0x4b, 0xab, 0x90, 0xb5, 0x29,
+  0x87, 0x51, 0x9e, 0x69, 0x77, 0xed, 0x68, 0x32, 0xb6, 0xbe, 0xa3, 0x93,
+  0x9a, 0x67, 0xc2, 0xd3, 0xc7, 0x17, 0x84, 0xf0, 0x61, 0x88, 0x74, 0xd6,
+  0x51, 0x90, 0x5b, 0x40, 0x84, 0x36, 0x67, 0x40, 0xa4, 0xcf, 0x6e, 0xdd,
+  0x36, 0x5b, 0xa8, 0xde, 0xa4, 0x5c, 0xfb, 0xcf, 0xf7, 0xe5, 0x26, 0x84,
+  0x5d, 0x46, 0xba, 0x64, 0x8d, 0x83, 0x00, 0xa9, 0xba, 0xd2, 0xd8, 0xbc,
+  0x8d, 0xc6, 0xbc, 0xdd, 0xad, 0x59, 0xfb, 0x52, 0x7f, 0xed, 0x21, 0xcd,
+  0xdb, 0xb1, 0xd9, 0xfc, 0xfd, 0x3d, 0x78, 0xf9, 0x7b, 0x78, 0x00, 0x3b,
+  0xb0, 0x7e, 0x25, 0x14, 0x14, 0x11, 0x42, 0xe6, 0x29, 0x25, 0x54, 0xab,
+  0xaa, 0x58, 0x30, 0x08, 0xa1, 0x11, 0x14, 0x29, 0xbd, 0xe3, 0x7a, 0x5a,
+  0x13, 0x99, 0xaf, 0x0e, 0xc7, 0x3a, 0x69, 0x40, 0x65, 0x02, 0xb3, 0x41,
+  0xda, 0xbf, 0x51, 0xb9, 0x27, 0xd0, 0xc0, 0x30, 0x67, 0x30, 0x38, 0xc8,
+  0x0f, 0x0a, 0x04, 0x3c, 0x95, 0x0f, 0x91, 0x96, 0x28, 0x7e, 0x5f, 0x54,
+  0x49, 0x13, 0x20, 0xd3, 0xd0, 0x48, 0xbb, 0xae, 0x12, 0x02, 0x95, 0xa1,
+  0xc1, 0x5a, 0x67, 0xd9, 0x4b, 0x79, 0x50, 0x28, 0x53, 0xc9, 0x01, 0x0b,
+  0xae, 0xfb, 0xf0, 0x5d, 0xa1, 0x67, 0xa3, 0xc2, 0x47, 0x36, 0x9f, 0x77,
+  0xa8, 0x42, 0x4a, 0xd4, 0xed, 0xdc, 0x6d, 0x2c, 0x70, 0xc8, 0x19, 0xc2,
+  0x42, 0xde, 0x04, 0xd8, 0x84, 0x11, 0x78, 0xf1, 0xda, 0x9e, 0xba, 0x4e,
+  0x49, 0xcc, 0x89, 0x00, 0xdc, 0x34, 0x8a, 0x10, 0xa6, 0xca, 0x12, 0x05,
+  0x71, 0x58, 0x44, 0x88, 0x53, 0x4f, 0xbf, 0x8e, 0x81, 0xa3, 0x1a, 0x46,
+  0xaa, 0xfd, 0xf1, 0xd9, 0xc8, 0x04, 0x8d, 0x76, 0x69, 0x1f, 0x77, 0xa3,
+  0x9f, 0xbf, 0xf0, 0xf4, 0xe6, 0x40, 0x38, 0x21, 0x1a, 0x88, 0x00, 0x3f,
+  0xff, 0xff, 0xfe, 0xff, 0x6c, 0x81, 0xa1, 0x0a, 0x08, 0x26, 0x14, 0x09,
+  0x42, 0xd0, 0xb6, 0x5a, 0xe6, 0xf4, 0x01, 0x80, 0x40, 0x2a, 0xea, 0xe8,
+  0x2d, 0x8e, 0x2a, 0xfa, 0xae, 0x01, 0x1b, 0x36, 0xc3, 0xed, 0xd6, 0x65,
+  0x40, 0xc2, 0xb9, 0x27, 0x8c, 0xf2, 0x36, 0x49, 0xc3, 0xf5, 0xa6, 0x19,
+  0x7e, 0xb8, 0xf4, 0x85, 0x31, 0x23, 0x9f, 0x7e, 0x2f, 0xaa, 0xe1, 0xe1,
+  0x07, 0x40, 0x52, 0xd1, 0x28, 0xc8, 0x07, 0xfe, 0xc6, 0x5c, 0x7f, 0x34,
+  0x70, 0xba, 0x74, 0xec, 0x87, 0xe1, 0x89, 0x74, 0x09, 0x8f, 0xe8, 0x7e,
+  0xfa, 0xfc, 0x4d, 0xfc, 0x66, 0x02, 0xf6, 0xb2, 0x62, 0x86, 0x38, 0xc9,
+  0x8c, 0x03, 0x23, 0x02, 0x48, 0x04, 0x12, 0x56, 0x12, 0x74, 0x20, 0xd9,
+  0x0e, 0xb3, 0xbd, 0x6a, 0x29, 0x08, 0xf1, 0xf6, 0xc8, 0x9a, 0x28, 0xfc,
+  0xde, 0x14, 0x60, 0xbe, 0x66, 0x39, 0x64, 0x6a, 0x38, 0xdd, 0xd1, 0x1e,
+  0xba, 0xd7, 0x6a, 0xf1, 0x7a, 0xa9, 0x5f, 0xb3, 0x6f, 0x34, 0x2a, 0x2f,
+  0x27, 0x75, 0xf0, 0xee, 0x69, 0x2c, 0xc8, 0xfb, 0xd2, 0x1a, 0xf1, 0x7e,
+  0xda, 0xf5, 0xeb, 0x30, 0xe3, 0xf9, 0xcc, 0x13, 0x8a, 0xb5, 0xcb, 0x9d,
+  0x4c, 0x90, 0x2e, 0x31, 0xb2, 0x61, 0x2a, 0x3d, 0xdd, 0x9c, 0xfb, 0xeb,
+  0xc6, 0x81, 0xa1, 0xa9, 0x92, 0xeb, 0x6c, 0x8c, 0xa9, 0x6c, 0xce, 0xb9,
+  0x2b, 0x02, 0x14, 0x43, 0x86, 0x22, 0x28, 0x14, 0x9c, 0x49, 0x79, 0x72,
+  0x9e, 0xb2, 0x91, 0xa0, 0x4a, 0x64, 0x9d, 0xba, 0x25, 0xd6, 0x7a, 0xbd,
+  0x1f, 0x97, 0xcf, 0xe1, 0xc8, 0x01, 0xe3, 0xda, 0xa6, 0x28, 0xa0, 0xa0,
+  0x6e, 0x1d, 0x80, 0x4a, 0x88, 0x28, 0x00, 0x00, 0x44, 0x60, 0x56, 0x9e,
+  0xee, 0xc5, 0x55, 0xcd, 0x29, 0x82, 0x55, 0x78, 0xed, 0xd5, 0xb3, 0x29,
+  0x09, 0x3a, 0xd7, 0x0c, 0x06, 0x72, 0x15, 0x0f, 0x9e, 0x08, 0xbc, 0xe7,
+  0xb5, 0xd3, 0x46, 0x84, 0x42, 0x73, 0xa2, 0xda, 0x31, 0xa9, 0x27, 0x6f,
+  0x4b, 0xf6, 0xb3, 0xac, 0xc3, 0x9e, 0xb4, 0xd5, 0xf8, 0xbb, 0x9f, 0xbd,
+  0x91, 0x22, 0xb5, 0xfd, 0xba, 0x91, 0xc1, 0x6e, 0xb0, 0xd5, 0x70, 0x38,
+  0x62, 0x3b, 0x06, 0x20, 0xdc, 0x62, 0xcd, 0x1f, 0x67, 0xd9, 0xf1, 0xf2,
+  0xfa, 0x00, 0xb2, 0x31, 0x02, 0x1f, 0x3e, 0xdf, 0x97, 0x25, 0xa6, 0xe1,
+  0x51, 0xba, 0x37, 0x4c, 0x12, 0x1d, 0x4c, 0x3a, 0xbe, 0x41, 0xc4, 0x3b,
+  0x24, 0x9f, 0x5f, 0xf9, 0xaa, 0x7b, 0xdd, 0x5c, 0xa8, 0x46, 0x77, 0xa1,
+  0x4a, 0xf4, 0x24, 0xd1, 0xac, 0x46, 0x4c, 0xdb, 0xeb, 0x82, 0x98, 0x33,
+  0x33, 0x8d, 0x62, 0x40, 0x98, 0xc1, 0x3a, 0xe3, 0x11, 0xac, 0x2e, 0x97,
+  0x6f, 0x6d, 0x91, 0xc6, 0xc8, 0x62, 0x97, 0x19, 0x86, 0xdd, 0x7b, 0x8d,
+  0xaf, 0xb3, 0xdf, 0xf0, 0xf8, 0x1d, 0x48, 0x03, 0x07, 0x21, 0x1a, 0x88,
+  0x00, 0x00, 0xff, 0xff, 0xfe, 0xf1, 0x6a, 0xa3, 0xa1, 0xc0, 0x24, 0x84,
+  0x23, 0x06, 0x06, 0xa1, 0x00, 0x10, 0x18, 0x00, 0x10, 0x12, 0x54, 0xd8,
+  0xc0, 0xc5, 0xf2, 0xa4, 0x8a, 0x79, 0x40, 0x84, 0x63, 0xb8, 0x8a, 0x1b,
+  0x84, 0x11, 0x31, 0x67, 0x78, 0x24, 0x8a, 0x0c, 0xaa, 0x2c, 0x86, 0x2b,
+  0x70, 0x14, 0xb5, 0xe5, 0xb9, 0xb0, 0x9b, 0x2a, 0x4f, 0x16, 0x8d, 0x8f,
+  0x80, 0xa8, 0xe3, 0x0d, 0x3c, 0xaf, 0x67, 0x0f, 0xaa, 0xe4, 0x92, 0x24,
+  0x28, 0xfc, 0x0f, 0x3b, 0x2c, 0x77, 0x55, 0x73, 0x21, 0x8b, 0x2d, 0x07,
+  0xc2, 0x02, 0xa9, 0x7e, 0x47, 0xec, 0xb8, 0x25, 0xc8, 0x20, 0x8d, 0xb1,
+  0x22, 0xc2, 0xda, 0x93, 0x4d, 0x3a, 0xca, 0xbd, 0x8c, 0xd3, 0x14, 0xea,
+  0x4c, 0xd3, 0x16, 0x26, 0x5c, 0xa8, 0x41, 0x9b, 0xa5, 0x0c, 0x5b, 0xd6,
+  0x06, 0x2a, 0xda, 0x6b, 0xad, 0x46, 0x5a, 0x44, 0x66, 0x60, 0x40, 0x00,
+  0x3c, 0x41, 0xd5, 0x45, 0xd6, 0x5c, 0x48, 0xf6, 0x5a, 0xc8, 0xa0, 0xa5,
+  0x16, 0x45, 0x96, 0x30, 0x49, 0x10, 0xd3, 0xd3, 0xd4, 0x98, 0x4d, 0xb7,
+  0xa4, 0x89, 0x9a, 0xde, 0xb7, 0xc8, 0x8b, 0x64, 0x0d, 0x59, 0x81, 0x04,
+  0x5e, 0xef, 0x7e, 0x61, 0x14, 0xc2, 0xb5, 0x71, 0xd1, 0x16, 0x54, 0x9a,
+  0x48, 0x97, 0xcb, 0x25, 0xba, 0xba, 0xea, 0xa6, 0x82, 0x45, 0x0e, 0x38,
+  0x62, 0x4c, 0x86, 0x82, 0xed, 0x52, 0x2d, 0x16, 0x15, 0x6b, 0x34, 0x96,
+  0x18, 0xb1, 0x8e, 0x09, 0x58, 0x88, 0x78, 0xa4, 0x9a, 0xd7, 0x2e, 0x3b,
+  0x37, 0x96, 0x85, 0x55, 0xee, 0xee, 0x8e, 0x1c, 0x3e, 0x1f, 0x1f, 0xa2,
+  0x00, 0x1e, 0x7e, 0x65, 0x28, 0x22, 0x87, 0x60, 0x0a, 0x81, 0x57, 0x88,
+  0x50, 0x00, 0x2e, 0x55, 0x05, 0x28, 0x62, 0x3a, 0x0c, 0xc5, 0xad, 0xd3,
+  0x38, 0x67, 0xae, 0x2d, 0xa6, 0x00, 0x31, 0x9e, 0xbc, 0x6a, 0x24, 0x14,
+  0xae, 0xb1, 0x64, 0xef, 0x33, 0x14, 0xa8, 0x0c, 0x29, 0x33, 0x2d, 0x20,
+  0xbe, 0x50, 0x33, 0x6d, 0x67, 0x03, 0xb2, 0x37, 0x42, 0x92, 0x17, 0x49,
+  0x48, 0x4a, 0x52, 0x41, 0xad, 0x4c, 0x9d, 0xb5, 0x79, 0xdc, 0x85, 0x04,
+  0x32, 0x0a, 0x8c, 0xa6, 0x37, 0x32, 0x78, 0x78, 0x11, 0x8f, 0xd4, 0xc1,
+  0x99, 0xf6, 0x59, 0xa0, 0xcd, 0x06, 0xaf, 0x7f, 0xf2, 0x9a, 0xc0, 0x34,
+  0x26, 0x02, 0x6a, 0x69, 0x81, 0x02, 0x40, 0xf3, 0x08, 0x64, 0xa4, 0xf4,
+  0xfb, 0x36, 0x4b, 0x97, 0xe2, 0xa7, 0x81, 0xb9, 0x42, 0x94, 0xca, 0x52,
+  0x5e, 0x5d, 0x07, 0x01, 0x73, 0x5c, 0xde, 0xc1, 0x24, 0xad, 0xe1, 0x45,
+  0x2c, 0x0f, 0xbf, 0x19, 0xc9, 0x1d, 0x12, 0x5a, 0x52, 0x88, 0xbf, 0x57,
+  0x2f, 0x8f, 0x46, 0xbe, 0xf0, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0xff,
+  0xff, 0xfe, 0xfd, 0x6b, 0xa2, 0x31, 0x05, 0x44, 0x64, 0x13, 0x11, 0x42,
+  0x10, 0xe1, 0x22, 0xa5, 0x2a, 0xa5, 0x00, 0x80, 0x22, 0x25, 0x60, 0xfa,
+  0x12, 0x01, 0x15, 0xf1, 0xe3, 0xbf, 0xb9, 0xc0, 0x85, 0x3f, 0x9f, 0x20,
+  0x8f, 0xf2, 0x67, 0xba, 0xcb, 0xe1, 0x23, 0xfa, 0x6b, 0x37, 0x6b, 0x9c,
+  0x6e, 0x8a, 0xa8, 0x07, 0xa3, 0x37, 0xaf, 0x78, 0x7a, 0x6b, 0x57, 0x17,
+  0xb6, 0x47, 0x74, 0x88, 0x18, 0xe7, 0xf8, 0xd5, 0x06, 0x99, 0xc8, 0xfc,
+  0xfd, 0x33, 0x87, 0x72, 0x6f, 0xb6, 0x51, 0x97, 0xbd, 0x8c, 0xae, 0x30,
+  0x94, 0x34, 0xd1, 0x02, 0x3b, 0xab, 0x3e, 0xee, 0xd3, 0xff, 0xb5, 0x70,
+  0xc9, 0x2c, 0xb6, 0x85, 0x9b, 0x57, 0x91, 0x00, 0x30, 0xd5, 0x8d, 0x86,
+  0x4c, 0xb3, 0x74, 0x8e, 0xc5, 0xf4, 0x56, 0xc6, 0x95, 0x33, 0x4e, 0x1b,
+  0x6c, 0x23, 0xca, 0x22, 0x71, 0x84, 0x0d, 0x06, 0xba, 0x24, 0xf5, 0x5b,
+  0x0c, 0x81, 0x44, 0x1b, 0x55, 0x1d, 0x84, 0x94, 0xb7, 0xe8, 0x3d, 0x21,
+  0xcd, 0xa7, 0xfe, 0x0e, 0xca, 0x58, 0xb0, 0xb3, 0xda, 0xe4, 0xb1, 0xec,
+  0x0c, 0x56, 0x25, 0x9d, 0x2d, 0xbf, 0x7d, 0xc7, 0x00, 0x8b, 0x12, 0x5b,
+  0xd3, 0xf1, 0xc4, 0xb2, 0xb6, 0x85, 0x9f, 0xc3, 0x46, 0xad, 0xdf, 0x49,
+  0xbe, 0xdb, 0xae, 0x9c, 0x8b, 0xc3, 0x0f, 0x36, 0xf7, 0xcb, 0xbb, 0x2a,
+  0x7c, 0x9e, 0xbf, 0xf7, 0xef, 0x8e, 0xc2, 0x68, 0xf6, 0xda, 0x5a, 0x6a,
+  0xc5, 0x11, 0x75, 0x0e, 0x7b, 0xae, 0xf8, 0xf6, 0x61, 0xd5, 0xdd, 0xdf,
+  0xec, 0xfb, 0xeb, 0xa2, 0x40, 0x1e, 0x7e, 0x64, 0xd4, 0x19, 0x8a, 0x08,
+  0xe1, 0xd8, 0x00, 0xa8, 0x88, 0x00, 0x00, 0x2d, 0x01, 0xad, 0x0c, 0x89,
+  0x80, 0x2e, 0x30, 0x8a, 0x00, 0xbc, 0x21, 0x07, 0x0e, 0x05, 0x5e, 0x7b,
+  0xf5, 0x95, 0x69, 0x5f, 0x6b, 0x8c, 0x41, 0x9e, 0x43, 0x80, 0x91, 0x71,
+  0x00, 0x30, 0x70, 0xc8, 0x60, 0x5d, 0x2a, 0x81, 0xe8, 0xc1, 0xb0, 0xed,
+  0x51, 0x1d, 0x73, 0xac, 0x3b, 0xea, 0xa5, 0x83, 0x65, 0x65, 0xf0, 0x6c,
+  0x29, 0xf3, 0xf7, 0x96, 0x89, 0xa7, 0xae, 0xa0, 0xdc, 0x71, 0x53, 0x72,
+  0x3a, 0x1c, 0xeb, 0xb6, 0x50, 0xc2, 0x6b, 0x4b, 0xd3, 0x37, 0x2f, 0xb8,
+  0xc2, 0xc9, 0x44, 0xbe, 0x43, 0xf0, 0x0e, 0xe9, 0x0a, 0xa1, 0x24, 0x42,
+  0xef, 0x24, 0x72, 0xee, 0xb8, 0x8e, 0xa0, 0x0c, 0x65, 0xd0, 0xaa, 0xbc,
+  0x57, 0x1d, 0x79, 0x72, 0x30, 0x35, 0x82, 0xc2, 0x7d, 0x94, 0xbe, 0x1e,
+  0x4d, 0x3b, 0x00, 0x10, 0xcc, 0x8d, 0x91, 0x4c, 0xa0, 0xd4, 0xfd, 0x36,
+  0xc1, 0x76, 0x5c, 0x52, 0x28, 0x39, 0x7c, 0xbf, 0xf2, 0x75, 0x1a, 0x1e,
+  0x26, 0xc0, 0x0e, 0x21, 0x1a, 0x88, 0x00, 0x3f, 0xff, 0xff, 0xfe, 0xfd,
+  0x6c, 0xa2, 0xa2, 0x04, 0xea, 0x66, 0x1a, 0x84, 0x21, 0x67, 0x00, 0xa5,
+  0x00, 0x00, 0x0b, 0x28, 0x77, 0xbf, 0xd9, 0xf9, 0xe7, 0xd0, 0xff, 0xd0,
+  0x48, 0x01, 0x26, 0x40, 0x54, 0x07, 0xc7, 0x3d, 0xe1, 0xdd, 0x7b, 0xf7,
+  0xeb, 0xda, 0xef, 0x87, 0xcf, 0x5b, 0x4b, 0x57, 0xc9, 0xa0, 0xde, 0x1d,
+  0xdb, 0xb8, 0x39, 0x27, 0xff, 0x3a, 0x7f, 0x75, 0xe8, 0x32, 0x80, 0x2a,
+  0xb8, 0xdc, 0x64, 0x83, 0xca, 0x53, 0x4e, 0x7f, 0x3b, 0x7c, 0x61, 0xf1,
+  0x2b, 0x18, 0x60, 0x97, 0x3b, 0x72, 0xb9, 0x37, 0x1c, 0x2d, 0xe9, 0x99,
+  0x6d, 0x95, 0x21, 0x3e, 0xf8, 0xe3, 0x06, 0x77, 0xb1, 0xaf, 0xed, 0xaa,
+  0xd2, 0x05, 0x66, 0x13, 0x59, 0xa9, 0xf0, 0xaa, 0xcd, 0x18, 0xea, 0x9e,
+  0x32, 0xc7, 0xce, 0x7e, 0x95, 0x70, 0xc6, 0xb5, 0xa7, 0xe9, 0x08, 0x57,
+  0xb5, 0xbc, 0xb4, 0x96, 0xf1, 0x2f, 0x1e, 0x38, 0xad, 0xb3, 0x56, 0x37,
+  0x2d, 0xd3, 0x6e, 0x5e, 0x10, 0xce, 0x36, 0xec, 0x82, 0x8d, 0xc1, 0x0d,
+  0xd5, 0xc9, 0xbd, 0xae, 0xe8, 0xa3, 0x0a, 0x24, 0xc4, 0xe5, 0x33, 0x51,
+  0x46, 0xc2, 0xe3, 0x8e, 0xdc, 0xe8, 0x4e, 0x33, 0x1b, 0x2a, 0xf3, 0x55,
+  0xd5, 0x7d, 0xa2, 0xef, 0x57, 0xdd, 0xe1, 0x24, 0x87, 0xe1, 0xe1, 0xa0,
+  0xf9, 0xd9, 0x19, 0xe2, 0xd6, 0x1d, 0xd4, 0x6d, 0xef, 0x0a, 0xf2, 0xbb,
+  0xef, 0xf7, 0xf4, 0xbc, 0xf4, 0x7c, 0x57, 0x8d, 0xed, 0x35, 0x96, 0xfd,
+  0xe7, 0x27, 0xb2, 0x4e, 0x73, 0x72, 0xed, 0xd7, 0xeb, 0x8f, 0x5e, 0x7c,
+  0x79, 0x00, 0x3c, 0xfb, 0x54, 0x62, 0xd2, 0x3a, 0x0a, 0x06, 0xa1, 0xdc,
+  0xa0, 0x54, 0x00, 0x00, 0x00, 0x12, 0x26, 0x0c, 0x56, 0x5e, 0x55, 0xb9,
+  0xbc, 0x64, 0x62, 0x8d, 0x74, 0xc1, 0xa7, 0xa2, 0x39, 0x55, 0x6e, 0xec,
+  0xc3, 0x3b, 0xc7, 0x84, 0x67, 0x75, 0x57, 0xa4, 0x76, 0x93, 0xfc, 0xb3,
+  0x78, 0x61, 0x81, 0xe3, 0xcf, 0xe3, 0x44, 0xdc, 0xdc, 0x6f, 0xb5, 0x9a,
+  0x39, 0xdd, 0xd1, 0x01, 0xea, 0xee, 0xad, 0x15, 0x86, 0x43, 0x30, 0x39,
+  0x0a, 0x52, 0x9c, 0x7d, 0x2c, 0x86, 0xc3, 0xd0, 0xb0, 0x81, 0x4a, 0xd2,
+  0xc5, 0x18, 0xdf, 0x51, 0x52, 0x84, 0x9d, 0xde, 0x15, 0x51, 0x31, 0x54,
+  0x0f, 0x29, 0xfc, 0xdf, 0x0c, 0xe7, 0xd7, 0x48, 0xb4, 0x50, 0xed, 0xcb,
+  0xee, 0xdb, 0xc7, 0x19, 0xc2, 0x64, 0xc1, 0xdc, 0x95, 0x05, 0x1a, 0x2c,
+  0x56, 0xcd, 0x20, 0xf4, 0x0c, 0x5b, 0x54, 0x8f, 0x96, 0x89, 0x9d, 0x5b,
+  0x00, 0x30, 0x8c, 0x17, 0xd0, 0x86, 0xd2, 0x62, 0x76, 0x42, 0x39, 0x76,
+  0x52, 0xda, 0xa2, 0xd7, 0x5b, 0x73, 0x3f, 0x1b, 0xa7, 0xcb, 0x1f, 0x57,
+  0x3e, 0x5d, 0x1c, 0x00, 0x38, 0x21, 0x1a, 0x88, 0x00, 0x03, 0xff, 0xff,
+  0xfe, 0xfd, 0x68, 0xa4, 0x30, 0x90, 0x44, 0xd4, 0x2c, 0x0d, 0xc2, 0x02,
+  0x12, 0x4b, 0xa2, 0x84, 0x00, 0x02, 0x21, 0x43, 0xdb, 0x48, 0xa4, 0xd5,
+  0xbb, 0x89, 0x11, 0x5f, 0xc4, 0xe6, 0x72, 0x48, 0x3f, 0x3d, 0xd4, 0xc5,
+  0xe3, 0x69, 0x94, 0x50, 0xfd, 0x5d, 0xd9, 0x3f, 0x90, 0xa7, 0x7c, 0xad,
+  0x57, 0xe3, 0x5a, 0x5d, 0xa8, 0xea, 0xac, 0x73, 0x69, 0x1d, 0x2e, 0xcf,
+  0x39, 0x4d, 0xab, 0xbf, 0x2b, 0x9e, 0x70, 0x57, 0x9a, 0xd2, 0x0d, 0x7d,
+  0xaa, 0x3f, 0xaf, 0x42, 0x8a, 0xfb, 0x1c, 0xeb, 0xbe, 0x21, 0xf8, 0x11,
+  0x6d, 0xba, 0x38, 0x8c, 0xc3, 0x3a, 0x66, 0x69, 0xf6, 0x5b, 0xea, 0xe8,
+  0xa5, 0x87, 0x8e, 0xde, 0xe2, 0x48, 0x07, 0xe6, 0x4a, 0x07, 0x03, 0xa5,
+  0x85, 0xc5, 0x7c, 0x09, 0x01, 0x8c, 0x40, 0xe9, 0x07, 0x44, 0x97, 0xbc,
+  0x41, 0x11, 0x9d, 0xdf, 0x43, 0xa5, 0x64, 0x01, 0x9c, 0x3f, 0x6f, 0x92,
+  0x56, 0xe7, 0x00, 0x87, 0x16, 0x37, 0x20, 0xa2, 0xb1, 0xe8, 0x4b, 0x77,
+  0xa8, 0x80, 0x30, 0x6a, 0xbd, 0x56, 0x08, 0x42, 0xba, 0xe9, 0x70, 0xa6,
+  0xa5, 0x60, 0xfe, 0x5d, 0xed, 0x27, 0xda, 0xab, 0xd2, 0x25, 0xa1, 0xcb,
+  0x61, 0x53, 0x5b, 0x15, 0xf7, 0xbf, 0x23, 0xd1, 0xcd, 0x48, 0xa9, 0x00,
+  0x5a, 0x46, 0xde, 0xb8, 0x21, 0x12, 0x24, 0xed, 0x08, 0x64, 0x24, 0x63,
+  0x02, 0x4d, 0x85, 0x74, 0x37, 0xaf, 0xc1, 0xa7, 0x4e, 0x0d, 0x75, 0xeb,
+  0xe5, 0x5d, 0x29, 0x8a, 0x73, 0xe5, 0x13, 0x21, 0x98, 0xe7, 0xde, 0xbd,
+  0xd6, 0x7d, 0xec, 0x38, 0xdd, 0x3d, 0x4c, 0x00, 0x3d, 0xfc, 0x49, 0x22,
+  0x52, 0x22, 0x0e, 0x06, 0xe1, 0xd8, 0x09, 0x43, 0x2d, 0x56, 0x02, 0x81,
+  0x03, 0x35, 0x0a, 0x13, 0x10, 0xda, 0x5c, 0x61, 0x5b, 0x1d, 0x82, 0x83,
+  0x3e, 0x67, 0x16, 0x09, 0x8b, 0x00, 0x82, 0xa7, 0x3f, 0x77, 0xea, 0x75,
+  0x73, 0xa4, 0x8f, 0x6b, 0xa5, 0x3c, 0xb7, 0x43, 0x45, 0x1a, 0x5b, 0xbe,
+  0x54, 0x4d, 0x41, 0x12, 0x78, 0x6b, 0x59, 0x55, 0x33, 0x31, 0x6d, 0x31,
+  0xb6, 0x99, 0x2d, 0x21, 0x69, 0xe2, 0xe3, 0xd0, 0xe7, 0x3d, 0x81, 0xd9,
+  0xe3, 0xde, 0xa5, 0x86, 0x4d, 0x31, 0xda, 0xc6, 0x1a, 0x18, 0x76, 0xb7,
+  0xe2, 0x7a, 0x2f, 0x05, 0xf7, 0x3e, 0x3e, 0x4d, 0x7a, 0x9a, 0xbc, 0xbf,
+  0xb4, 0xea, 0x3e, 0xc3, 0xff, 0xf9, 0x0d, 0xea, 0x0f, 0x13, 0x2e, 0xd0,
+  0x9a, 0xb8, 0x1f, 0xac, 0x0e, 0xa4, 0xb5, 0x14, 0x93, 0x15, 0x01, 0x42,
+  0xd5, 0xc6, 0x42, 0x35, 0xb6, 0x0b, 0xc8, 0x80, 0xa8, 0x6d, 0xa4, 0xda,
+  0x5d, 0x5c, 0xad, 0x10, 0x35, 0x2d, 0x03, 0xd7, 0x7a, 0x59, 0xfb, 0xde,
+  0xaf, 0xe2, 0xb7, 0xfb, 0xe9, 0x00, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00,
+  0xff, 0xff, 0xff, 0x01, 0x6a, 0xa4, 0xa0, 0x85, 0xc8, 0x26, 0x0c, 0x0c,
+  0xc2, 0x05, 0xe5, 0xe9, 0x2e, 0xab, 0x54, 0x18, 0x00, 0x0b, 0x25, 0x4e,
+  0x45, 0x78, 0x40, 0xc4, 0xca, 0xe3, 0x21, 0x2c, 0xbb, 0xeb, 0x9d, 0x7a,
+  0xe6, 0x83, 0x1e, 0x93, 0xf7, 0xf2, 0x0f, 0x1b, 0x37, 0xac, 0x9d, 0x0d,
+  0xad, 0xb7, 0x73, 0xbf, 0xbf, 0xfc, 0x6f, 0xa2, 0xb3, 0xde, 0xab, 0xf7,
+  0x8e, 0xdf, 0x5e, 0xd5, 0xe5, 0x55, 0x99, 0x26, 0x51, 0x4a, 0xd4, 0x9f,
+  0xce, 0xd6, 0x1b, 0xde, 0xef, 0x34, 0x12, 0x54, 0x8c, 0x6a, 0x16, 0x50,
+  0x84, 0x5c, 0xa0, 0xa4, 0x83, 0xa9, 0x8e, 0x24, 0x21, 0x0e, 0xfe, 0xd9,
+  0xac, 0x67, 0xb0, 0x1d, 0x09, 0x5e, 0xdd, 0x3c, 0xf5, 0xc8, 0x56, 0x34,
+  0xbc, 0x2d, 0x49, 0xc4, 0xa9, 0x48, 0xcd, 0x3b, 0x30, 0xad, 0x3c, 0x92,
+  0x42, 0x36, 0xb0, 0xa4, 0x5d, 0xb8, 0x72, 0x95, 0xd7, 0xba, 0x32, 0x97,
+  0x84, 0x92, 0x93, 0xa4, 0x0b, 0x49, 0x79, 0x5e, 0xc7, 0x75, 0x23, 0x7a,
+  0xda, 0x59, 0xa5, 0xf3, 0x8c, 0x3b, 0x99, 0x10, 0x10, 0xf6, 0x5c, 0x7f,
+  0x0a, 0xec, 0x3c, 0xbc, 0x1b, 0xe4, 0xc5, 0x21, 0x19, 0x92, 0xe5, 0x51,
+  0x69, 0x2e, 0x1d, 0xf9, 0xcc, 0x65, 0xa6, 0x33, 0x3f, 0x44, 0x74, 0xa8,
+  0x07, 0x22, 0xd2, 0xae, 0x94, 0x58, 0x2f, 0x94, 0x8a, 0x0d, 0x92, 0x71,
+  0x27, 0x7b, 0x5c, 0x81, 0x25, 0xcf, 0xaf, 0xaa, 0x04, 0x6c, 0x32, 0x8f,
+  0x82, 0x4d, 0x06, 0x12, 0xbb, 0x2d, 0xdb, 0x1f, 0x4c, 0xf3, 0x9f, 0xd0,
+  0xf2, 0x81, 0xeb, 0xe6, 0x4f, 0x31, 0xb0, 0xe0, 0x2a, 0x1d, 0x82, 0xa0,
+  0xa8, 0x2a, 0x48, 0x00, 0x00, 0x84, 0xd8, 0x3a, 0x33, 0x55, 0xb7, 0x9b,
+  0x2d, 0x0a, 0x10, 0x21, 0x63, 0xc1, 0x75, 0xb1, 0xf9, 0x3a, 0xd7, 0xe4,
+  0x96, 0x03, 0x92, 0x15, 0xb5, 0x66, 0x31, 0x9d, 0x2e, 0xf3, 0x0b, 0x62,
+  0x51, 0x14, 0x0a, 0x6c, 0xc9, 0x61, 0xd6, 0x07, 0x88, 0x56, 0xf0, 0x01,
+  0xa2, 0x3b, 0x88, 0x1d, 0x4a, 0xab, 0xd1, 0xab, 0x36, 0xbf, 0xdd, 0x1a,
+  0x53, 0x19, 0xfb, 0x55, 0x28, 0x1f, 0xac, 0x63, 0xcd, 0x34, 0x68, 0x56,
+  0x15, 0x97, 0xa1, 0xeb, 0xbd, 0x44, 0x19, 0x77, 0x5d, 0x13, 0x8c, 0x76,
+  0xd2, 0x72, 0xa5, 0x32, 0x19, 0x49, 0x73, 0xbf, 0x56, 0x76, 0x60, 0x68,
+  0xd8, 0xe3, 0x33, 0x10, 0xd3, 0xed, 0x92, 0xa1, 0x97, 0xb6, 0x4b, 0xe9,
+  0x33, 0x0a, 0x6d, 0x91, 0xc4, 0x4e, 0xb6, 0xe9, 0xd3, 0x89, 0xc2, 0x6a,
+  0xfc, 0x6a, 0x0c, 0x11, 0x09, 0x20, 0x7a, 0xe7, 0xed, 0xe7, 0xcf, 0xdb,
+  0xaf, 0xf1, 0xa0, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x03, 0x6a, 0xa2, 0x58, 0xa0, 0x68, 0x42, 0x6b, 0x0e, 0x04, 0x61, 0x10,
+  0xe8, 0x34, 0xa4, 0xa9, 0x92, 0xa0, 0x04, 0x0c, 0xb4, 0x39, 0x19, 0x72,
+  0xb3, 0x37, 0xe1, 0x72, 0x60, 0xfa, 0x57, 0xa6, 0x69, 0x7d, 0xd5, 0xab,
+  0x3d, 0xc7, 0xc5, 0x73, 0x4d, 0xde, 0xaf, 0xa8, 0x4e, 0xec, 0xa2, 0x4d,
+  0x8f, 0xcb, 0xe3, 0x93, 0xb1, 0xaa, 0x00, 0xeb, 0x18, 0x9d, 0x25, 0x7f,
+  0x48, 0xfc, 0xf5, 0x3e, 0x46, 0x01, 0xa2, 0xdc, 0xc8, 0x6c, 0x6b, 0x2b,
+  0x2c, 0xfe, 0x07, 0x86, 0xb5, 0xd7, 0x23, 0xf2, 0x0e, 0x76, 0xfe, 0x12,
+  0xdb, 0xb7, 0x67, 0x15, 0xe6, 0x08, 0x91, 0x5a, 0xda, 0x9e, 0x59, 0x73,
+  0xa5, 0x85, 0xdf, 0x55, 0xe9, 0x8b, 0x80, 0xbf, 0x87, 0x4f, 0x16, 0xb3,
+  0x23, 0xcd, 0xa4, 0x36, 0x54, 0x27, 0x14, 0xe8, 0x3d, 0x8c, 0x35, 0xc2,
+  0xc5, 0x62, 0x1f, 0x51, 0xd0, 0x2e, 0x58, 0x7d, 0x9e, 0x11, 0xae, 0x13,
+  0xb0, 0xe0, 0x25, 0x0b, 0x03, 0xe6, 0x94, 0xab, 0xd1, 0x73, 0xf8, 0xcb,
+  0xf3, 0x4e, 0xf5, 0xa9, 0x7e, 0x1d, 0x10, 0x29, 0x65, 0x90, 0x17, 0x54,
+  0xda, 0x79, 0x95, 0x99, 0x65, 0xc7, 0xdb, 0x45, 0x3e, 0x9f, 0x97, 0x5a,
+  0x31, 0x86, 0xcd, 0x15, 0x1c, 0x01, 0xb8, 0xc2, 0xa0, 0x1b, 0x94, 0x4c,
+  0x33, 0x92, 0xbb, 0x62, 0xb0, 0xa8, 0xb2, 0x79, 0xea, 0x89, 0xf3, 0xc2,
+  0xad, 0xba, 0x75, 0x61, 0x9c, 0xd3, 0x13, 0x55, 0xfa, 0xc6, 0x6e, 0xf5,
+  0x38, 0xb3, 0x67, 0xc2, 0xd6, 0x8e, 0x9a, 0x48, 0x12, 0xd6, 0x08, 0xe9,
+  0xbe, 0xc0, 0xe4, 0x97, 0xc2, 0x14, 0x42, 0x4a, 0x91, 0x61, 0x8b, 0x18,
+  0x8f, 0xfa, 0xcf, 0x7d, 0xff, 0x5b, 0xea, 0xe0, 0xf7, 0xf3, 0x19, 0x30,
+  0xe0, 0x2e, 0x1d, 0x80, 0x0a, 0x42, 0xaa, 0x00, 0x00, 0x23, 0x34, 0x0a,
+  0x5f, 0x94, 0xa9, 0x06, 0xe8, 0x57, 0xf4, 0x1e, 0x64, 0x50, 0xcd, 0x2c,
+  0x76, 0x92, 0xf1, 0x51, 0x74, 0xf0, 0x6a, 0x55, 0x9e, 0xe4, 0x91, 0xd5,
+  0x2a, 0x91, 0xed, 0x68, 0x90, 0x2b, 0x05, 0xb2, 0x55, 0xaa, 0x13, 0x6b,
+  0x92, 0xb8, 0xe1, 0x59, 0xe7, 0x22, 0xbe, 0xde, 0x45, 0xe2, 0xc9, 0xf4,
+  0x81, 0x0a, 0x4b, 0x31, 0x42, 0x29, 0x0f, 0xe8, 0x89, 0x14, 0x9a, 0x1e,
+  0xb0, 0xb7, 0x88, 0xae, 0x4e, 0xbf, 0x4d, 0x34, 0x6f, 0xb2, 0xf9, 0x44,
+  0x02, 0xea, 0x19, 0xa8, 0xd3, 0x68, 0x95, 0x1a, 0x6c, 0xde, 0xa0, 0x00,
+  0x62, 0x0d, 0x7a, 0x03, 0xb7, 0x53, 0x06, 0x31, 0x2f, 0x02, 0x57, 0x0f,
+  0x8f, 0x13, 0x49, 0x97, 0xa9, 0xa9, 0xc6, 0xf0, 0xb3, 0xe9, 0xec, 0x24,
+  0x03, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x1f, 0xff, 0xff, 0x07, 0x6a,
+  0xa4, 0x31, 0x10, 0x44, 0x94, 0x2c, 0x0d, 0x42, 0x01, 0x5c, 0x4b, 0xd5,
+  0x2e, 0xae, 0xaf, 0x21, 0x40, 0x02, 0x52, 0xd8, 0x35, 0xf7, 0xa7, 0xf8,
+  0x19, 0x14, 0x0f, 0xef, 0xb9, 0x4e, 0xe9, 0x1d, 0xa6, 0x2e, 0xfe, 0x98,
+  0xfd, 0x13, 0xb8, 0x22, 0xba, 0xb9, 0xf9, 0x1a, 0xe2, 0x51, 0x4e, 0x5b,
+  0xed, 0xdb, 0x8f, 0x5b, 0xbc, 0xf0, 0x39, 0xe6, 0x75, 0x4b, 0xe8, 0x1e,
+  0xf8, 0x7b, 0x2f, 0x27, 0xb1, 0xc7, 0x99, 0xc7, 0xff, 0x1c, 0x8a, 0xc0,
+  0xe9, 0x9b, 0x56, 0xd4, 0x2a, 0x57, 0x7b, 0x34, 0xfb, 0x65, 0x09, 0x34,
+  0xb5, 0x95, 0x7d, 0x20, 0x96, 0x1d, 0x71, 0xb2, 0x68, 0x71, 0xae, 0xb6,
+  0x5b, 0x2c, 0x31, 0xba, 0x25, 0x5c, 0x2c, 0xf8, 0x25, 0x00, 0x96, 0xa3,
+  0x49, 0x1a, 0x39, 0xd3, 0xa1, 0x07, 0x52, 0xd3, 0x3a, 0xd6, 0xb1, 0x54,
+  0xe1, 0x71, 0x24, 0x08, 0x94, 0x15, 0xe2, 0x7c, 0x26, 0xb5, 0xc6, 0x13,
+  0x09, 0x58, 0xc8, 0xb7, 0x8c, 0x48, 0x03, 0x6a, 0xcc, 0xd5, 0x13, 0x47,
+  0xc6, 0xb7, 0x79, 0x70, 0x62, 0x41, 0x0a, 0xb1, 0xd7, 0xf0, 0x8b, 0xe5,
+  0x6b, 0xd0, 0xc9, 0xe1, 0x73, 0x8c, 0x67, 0x06, 0x75, 0x1c, 0x1d, 0xac,
+  0xa2, 0xa9, 0xa7, 0xd3, 0xa7, 0x0c, 0x0d, 0xee, 0x86, 0x5f, 0xd3, 0x95,
+  0x78, 0xc1, 0xae, 0x00, 0x23, 0x53, 0x9d, 0x98, 0x2c, 0xdb, 0x65, 0x86,
+  0xd0, 0x0b, 0x6e, 0x70, 0xab, 0xa7, 0xd8, 0xca, 0x65, 0xd6, 0x34, 0x26,
+  0x27, 0x28, 0xf5, 0x55, 0x3a, 0x0a, 0x58, 0x52, 0x28, 0x6d, 0x15, 0x84,
+  0x87, 0x10, 0x95, 0xfc, 0xa1, 0x66, 0x4d, 0x2d, 0x3f, 0xaf, 0xaa, 0xf1,
+  0xf2, 0xee, 0xfa, 0x64, 0x01, 0xef, 0xec, 0x2f, 0x62, 0x28, 0x76, 0x00,
+  0x05, 0x44, 0x95, 0x50, 0x00, 0x08, 0xaa, 0x09, 0xee, 0x99, 0xfb, 0x7f,
+  0x69, 0x9a, 0x6c, 0x82, 0x6d, 0x74, 0x1d, 0xe4, 0xb1, 0xc6, 0x41, 0xa5,
+  0x6e, 0x02, 0x13, 0x21, 0x2d, 0x59, 0xc4, 0xf0, 0xda, 0xd6, 0x49, 0xe8,
+  0xac, 0xf6, 0xa7, 0xea, 0xfd, 0x59, 0x37, 0xe0, 0x2b, 0xe6, 0xbe, 0x15,
+  0xf9, 0xbd, 0xff, 0xb5, 0xe7, 0x6e, 0xa3, 0xee, 0xb9, 0x9d, 0x6b, 0x5a,
+  0xdf, 0xad, 0xc0, 0x00, 0x9a, 0x8e, 0x68, 0xd9, 0xea, 0x96, 0xc8, 0xee,
+  0xa1, 0x13, 0xc6, 0xb4, 0xae, 0xab, 0xf8, 0x33, 0xd7, 0x34, 0xfb, 0xde,
+  0x9a, 0x58, 0x37, 0x02, 0x88, 0x80, 0x28, 0x68, 0x3a, 0x87, 0x9e, 0x70,
+  0xe2, 0x7b, 0x69, 0xbe, 0xe0, 0x06, 0x8c, 0xbd, 0x3f, 0x3e, 0xdc, 0xf6,
+  0xc6, 0x24, 0x03, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0xff, 0xff, 0xff,
+  0x09, 0x6f, 0x82, 0x21, 0x45, 0x88, 0x16, 0x1c, 0x05, 0x42, 0x22, 0x4c,
+  0x3d, 0x8b, 0x82, 0x50, 0xa5, 0x10, 0x04, 0x95, 0x26, 0x0b, 0xf5, 0x98,
+  0x3f, 0x1b, 0xf1, 0x42, 0x60, 0x05, 0x76, 0x4f, 0x26, 0xe9, 0xbd, 0x09,
+  0xff, 0xfb, 0x77, 0x98, 0x3b, 0xc2, 0x90, 0xca, 0x6e, 0x8b, 0xc2, 0x0d,
+  0xa2, 0x0e, 0xf3, 0x6e, 0xba, 0xed, 0x7e, 0x4a, 0xcb, 0x55, 0x52, 0x8d,
+  0x25, 0xbd, 0x54, 0x1a, 0x5d, 0x2b, 0xa1, 0x54, 0xcb, 0x54, 0xa2, 0x6a,
+  0xb3, 0x42, 0x3a, 0xdb, 0xdf, 0x4a, 0x56, 0xd5, 0x0f, 0x32, 0x08, 0x72,
+  0x2b, 0x2c, 0x49, 0x46, 0x26, 0xe5, 0x90, 0x28, 0xae, 0x02, 0x1d, 0x22,
+  0x56, 0x31, 0x48, 0x7f, 0xdc, 0xc8, 0x76, 0xa7, 0x4b, 0xaf, 0x36, 0xa1,
+  0x22, 0xe1, 0xab, 0x57, 0x72, 0xf5, 0x46, 0xb2, 0x56, 0x45, 0x00, 0x2e,
+  0xc7, 0x7d, 0x94, 0x52, 0x53, 0x94, 0xeb, 0x7c, 0xf4, 0x55, 0x5c, 0xa7,
+  0xb9, 0x54, 0x0c, 0x3f, 0x0a, 0xde, 0x9e, 0x8b, 0xdd, 0x92, 0x72, 0xad,
+  0xa9, 0x8f, 0x65, 0x2d, 0xd2, 0xac, 0xa2, 0xea, 0x42, 0x95, 0x96, 0x55,
+  0x03, 0xd4, 0x38, 0x43, 0xa0, 0x8a, 0xcd, 0x8a, 0xbb, 0xe1, 0x39, 0xa0,
+  0xa6, 0x8d, 0x51, 0x63, 0x69, 0x2a, 0x86, 0x59, 0xae, 0x97, 0xf0, 0xdd,
+  0x56, 0x4f, 0x53, 0x31, 0xe2, 0x06, 0x5c, 0x6b, 0xa3, 0x61, 0xc9, 0xac,
+  0x42, 0xda, 0x2a, 0x22, 0xb6, 0x81, 0x2b, 0xbb, 0x9f, 0x53, 0x52, 0xca,
+  0x4d, 0x11, 0xaa, 0xb3, 0x63, 0xe7, 0xf5, 0x74, 0xd7, 0x67, 0xd5, 0x9e,
+  0x00, 0x0f, 0x5f, 0x33, 0x81, 0x09, 0x88, 0xe1, 0xd8, 0x00, 0x54, 0x95,
+  0x56, 0x05, 0xb0, 0x01, 0x10, 0x03, 0x40, 0xb9, 0x28, 0x68, 0x0c, 0xe0,
+  0xbc, 0x4b, 0xfc, 0x1b, 0xa3, 0x22, 0x4a, 0xab, 0x69, 0x05, 0x13, 0x5e,
+  0x4e, 0xd1, 0xb7, 0x12, 0xf2, 0x28, 0x82, 0xd1, 0x88, 0x53, 0x1b, 0x0e,
+  0x0e, 0x1a, 0x99, 0xa7, 0xa8, 0x11, 0x97, 0x38, 0x1a, 0x3d, 0x54, 0xe9,
+  0x3b, 0x58, 0xef, 0x48, 0xea, 0xd4, 0x05, 0x9f, 0x53, 0x6e, 0x18, 0x23,
+  0x50, 0x82, 0x49, 0x4b, 0x32, 0x1b, 0xed, 0x7a, 0x00, 0x2c, 0xbb, 0xa9,
+  0xae, 0xb7, 0x46, 0xbe, 0xd7, 0x36, 0xfd, 0x60, 0x34, 0xff, 0x51, 0x2c,
+  0x76, 0xe0, 0x09, 0xd8, 0xab, 0x68, 0xc2, 0xdd, 0x49, 0xd2, 0xdb, 0xa6,
+  0x54, 0xba, 0x8a, 0xba, 0xba, 0xfe, 0x4f, 0x57, 0xd7, 0xb8, 0xba, 0x3e,
+  0x70, 0x0e, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x11, 0x6f,
+  0xa1, 0xb1, 0x10, 0x62, 0xc6, 0x20, 0x85, 0xad, 0xe9, 0x67, 0xc0, 0xb5,
+  0x2d, 0xbb, 0x03, 0x02, 0x02, 0x43, 0xb0, 0xc5, 0xdf, 0xd3, 0x1f, 0x63,
+  0xf1, 0x52, 0x1b, 0x2f, 0x1f, 0x82, 0x83, 0x15, 0x08, 0x32, 0xf8, 0xab,
+  0x1c, 0xfd, 0x4f, 0xce, 0x34, 0x87, 0x8a, 0xc6, 0xb9, 0x0e, 0x37, 0xf1,
+  0xa5, 0x31, 0x7f, 0x7a, 0x3c, 0x9a, 0x3a, 0x56, 0x60, 0x7e, 0xaf, 0x18,
+  0x73, 0x6f, 0x90, 0x34, 0xf5, 0x8e, 0x63, 0x8f, 0x35, 0xdd, 0x76, 0x17,
+  0xe2, 0x8d, 0x51, 0x8c, 0x9f, 0x58, 0xb3, 0x19, 0x84, 0xca, 0x9c, 0xc9,
+  0xbc, 0xc0, 0x56, 0xca, 0x12, 0x6f, 0x8c, 0xee, 0xa3, 0x7d, 0x97, 0x45,
+  0x59, 0x32, 0x9a, 0xc5, 0x2f, 0x5b, 0x39, 0x57, 0x40, 0xf7, 0xc1, 0xfd,
+  0xfd, 0x13, 0x19, 0xb8, 0xee, 0x8a, 0xab, 0xd4, 0xcc, 0x63, 0xbd, 0x38,
+  0xea, 0x8d, 0x70, 0xa4, 0x40, 0x8c, 0xe1, 0x89, 0xd4, 0x50, 0x23, 0x7c,
+  0x88, 0x8c, 0xe1, 0x62, 0x8b, 0x2c, 0xb6, 0xca, 0x4d, 0x81, 0xf6, 0x66,
+  0xb6, 0xac, 0xdb, 0xe8, 0xef, 0xaa, 0xfe, 0x8a, 0x3a, 0x79, 0x62, 0x86,
+  0x4a, 0xfe, 0xd9, 0xdd, 0xeb, 0xc1, 0xd9, 0xa5, 0x01, 0x02, 0x84, 0x96,
+  0x8b, 0x14, 0x41, 0x9c, 0x9a, 0x8f, 0x26, 0x3d, 0xae, 0xdc, 0xac, 0xee,
+  0x8b, 0x17, 0xde, 0xbf, 0xa9, 0x4c, 0xec, 0xc3, 0xdd, 0x3f, 0xe0, 0x24,
+  0x97, 0x4c, 0xb1, 0x0b, 0x53, 0x62, 0xfe, 0x5e, 0x13, 0x48, 0x42, 0x78,
+  0xfc, 0xa7, 0x9f, 0xce, 0x7f, 0xbf, 0x9f, 0xf3, 0xc8, 0x0f, 0x5f, 0x44,
+  0x20, 0xb1, 0x04, 0xc2, 0x80, 0xb8, 0x76, 0x00, 0x05, 0x2f, 0x2e, 0xc0,
+  0x60, 0x02, 0xea, 0xf0, 0x58, 0x75, 0x7e, 0xc3, 0x54, 0xd2, 0x80, 0x9a,
+  0x71, 0x68, 0x70, 0x55, 0xf8, 0x4c, 0xf5, 0x38, 0x5a, 0xd2, 0xae, 0x48,
+  0x85, 0x16, 0xb7, 0x79, 0xd1, 0x69, 0x95, 0xca, 0x21, 0x23, 0x74, 0x62,
+  0xbc, 0xf3, 0x28, 0xa4, 0x30, 0xd0, 0xa7, 0xd9, 0xfa, 0xc1, 0x02, 0x36,
+  0xd7, 0x7b, 0x7c, 0x8b, 0x61, 0xbf, 0xaa, 0x80, 0xc0, 0xa7, 0x81, 0x17,
+  0x7c, 0xaa, 0x2a, 0xd3, 0x5a, 0xf9, 0xc7, 0x88, 0x26, 0x07, 0xca, 0xf4,
+  0x0e, 0xae, 0x98, 0x23, 0xb1, 0x36, 0xce, 0x3e, 0xcb, 0xbd, 0x5c, 0xe5,
+  0x33, 0x13, 0xd0, 0xfa, 0xdd, 0xc0, 0x6c, 0x94, 0x81, 0xb0, 0xdb, 0x84,
+  0x6a, 0x8c, 0x4d, 0x9c, 0xd9, 0x1b, 0x70, 0x8f, 0x27, 0x36, 0x41, 0x0a,
+  0xc9, 0xca, 0xd4, 0xbe, 0x56, 0x3e, 0x27, 0xc7, 0xe0, 0x80, 0x38, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x05, 0x6a, 0xa2, 0x58, 0x68,
+  0x8c, 0x42, 0x11, 0x94, 0x88, 0x84, 0x61, 0x40, 0x4c, 0x20, 0x38, 0x17,
+  0x60, 0x01, 0x44, 0x40, 0x12, 0xa7, 0x63, 0x26, 0x0b, 0x05, 0x95, 0xf4,
+  0x72, 0xfc, 0x0a, 0x90, 0x55, 0xd3, 0xff, 0x82, 0x49, 0x64, 0x84, 0x5d,
+  0x40, 0xe8, 0xca, 0x10, 0x92, 0x78, 0x39, 0x8b, 0xbf, 0xbb, 0x47, 0x3c,
+  0xfa, 0xbd, 0xbc, 0xda, 0x18, 0xbd, 0xd3, 0xe5, 0x76, 0x2a, 0x17, 0xde,
+  0x8e, 0xff, 0xdd, 0x53, 0x6f, 0x5f, 0x0f, 0xd2, 0x63, 0x72, 0x70, 0xd9,
+  0x1e, 0x97, 0xc4, 0x31, 0x3a, 0x44, 0x5d, 0x27, 0xf8, 0x61, 0xdf, 0xa6,
+  0xe4, 0xe1, 0x16, 0x27, 0x05, 0xf9, 0x71, 0xb0, 0x6c, 0x26, 0x8a, 0x1c,
+  0xb4, 0x59, 0x9a, 0x38, 0x99, 0x15, 0xb3, 0x12, 0x46, 0x28, 0x4a, 0x8a,
+  0x35, 0x85, 0xc1, 0x7c, 0xe0, 0x8a, 0xf5, 0x72, 0xf1, 0xd8, 0x7a, 0xd4,
+  0xea, 0xd4, 0x56, 0xa4, 0x11, 0x25, 0x1c, 0x22, 0xb4, 0x4c, 0xed, 0xfd,
+  0x7a, 0x5a, 0x75, 0xd5, 0xb9, 0xe3, 0xa9, 0x87, 0x21, 0x82, 0xa1, 0xf1,
+  0x0b, 0x5f, 0x40, 0x1d, 0xfc, 0x2e, 0x42, 0xfc, 0x18, 0xb8, 0x89, 0x7e,
+  0xac, 0x37, 0xba, 0xf0, 0xe5, 0xac, 0x2d, 0x54, 0x52, 0x48, 0x80, 0x76,
+  0x42, 0x43, 0xce, 0x94, 0x13, 0x23, 0xda, 0x36, 0x61, 0x29, 0xe9, 0xf2,
+  0xfd, 0x7d, 0xdb, 0xab, 0xc4, 0xd7, 0x5f, 0x40, 0x52, 0x26, 0xcb, 0x67,
+  0x8d, 0xc6, 0xd8, 0xd4, 0xdc, 0xf0, 0xa9, 0x37, 0xd2, 0x7d, 0xe6, 0x62,
+  0x76, 0xde, 0x7c, 0x47, 0xb8, 0xea, 0x16, 0x71, 0x05, 0xfa, 0xf8, 0x2b,
+  0x1b, 0xc0, 0x5b, 0x1b, 0x98, 0xf2, 0x38, 0xbe, 0xf4, 0xf1, 0x7c, 0x88,
+  0x3d, 0xfd, 0xc5, 0xa8, 0x26, 0x1b, 0x87, 0x60, 0x00, 0x04, 0x4a, 0x68,
+  0x6c, 0x16, 0x22, 0x80, 0x0f, 0x34, 0x77, 0xcd, 0x79, 0x89, 0x72, 0x48,
+  0x41, 0x79, 0x72, 0x1a, 0x8c, 0x62, 0x9b, 0xa5, 0x85, 0x26, 0xd1, 0x64,
+  0xc6, 0x35, 0xea, 0x9d, 0x4b, 0x62, 0x35, 0xa5, 0x8f, 0x23, 0x82, 0x27,
+  0x88, 0x54, 0x9a, 0x9f, 0xa2, 0x84, 0x14, 0x9b, 0xa3, 0x74, 0x42, 0xf0,
+  0x1a, 0xed, 0x9a, 0xa2, 0x93, 0x90, 0xf7, 0xa1, 0x5d, 0x12, 0x66, 0xe7,
+  0xf9, 0x59, 0x7b, 0xf2, 0xcb, 0xc2, 0x69, 0x81, 0x0f, 0xf3, 0x72, 0x65,
+  0xed, 0x21, 0x0f, 0x80, 0xec, 0x42, 0x5a, 0xe7, 0x96, 0xa2, 0xaf, 0xbc,
+  0x2f, 0xc7, 0x15, 0x33, 0xbf, 0x3c, 0xe4, 0xeb, 0xd5, 0xe4, 0xea, 0xe9,
+  0xf9, 0xfa, 0xee, 0xcb, 0x68, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0xff,
+  0xff, 0xff, 0x09, 0x6f, 0xa2, 0x21, 0x49, 0x88, 0x26, 0x1a, 0x84, 0x0b,
+  0x1d, 0x2e, 0xa2, 0xd3, 0x99, 0x56, 0x00, 0x0b, 0xcd, 0x53, 0x07, 0x2b,
+  0x92, 0x30, 0x2e, 0xb2, 0x63, 0xc2, 0x64, 0x21, 0x12, 0x3b, 0xec, 0xc6,
+  0xd4, 0x60, 0xe9, 0x2f, 0xf4, 0xc6, 0x58, 0x21, 0xb5, 0x6e, 0xf7, 0xce,
+  0xc5, 0xea, 0x8e, 0xce, 0xc6, 0x4a, 0x62, 0xdc, 0x5a, 0x13, 0x83, 0x2f,
+  0x90, 0x78, 0xa7, 0x57, 0xe8, 0x1a, 0x21, 0xf1, 0xa4, 0x2f, 0x96, 0x22,
+  0x9b, 0x74, 0xfc, 0xf7, 0xf3, 0xfb, 0x22, 0x6d, 0xb9, 0x60, 0xa5, 0xaf,
+  0xb4, 0x79, 0xaf, 0x6b, 0xe9, 0x16, 0xe8, 0xa3, 0x1e, 0x1e, 0x2a, 0x0a,
+  0xd3, 0x5a, 0x9b, 0x0e, 0x1a, 0xcf, 0xb0, 0xe6, 0x71, 0xa1, 0x90, 0x64,
+  0x88, 0x39, 0xb6, 0x34, 0xe4, 0xfc, 0x94, 0xfa, 0x91, 0x23, 0x0b, 0x40,
+  0xcc, 0x53, 0x14, 0xd9, 0x02, 0x54, 0xa6, 0x40, 0x60, 0x4c, 0x30, 0x3d,
+  0x6e, 0x5b, 0x9c, 0xe1, 0x59, 0x16, 0xa0, 0xb1, 0x7c, 0x22, 0xb1, 0x50,
+  0x1e, 0x42, 0x92, 0x02, 0xf0, 0x98, 0xd4, 0x71, 0xd0, 0x9c, 0xc9, 0x53,
+  0x14, 0xdf, 0x81, 0xfd, 0x09, 0x89, 0x13, 0x46, 0x4a, 0x98, 0x7a, 0x2f,
+  0xbb, 0xc4, 0x00, 0x9c, 0x28, 0x45, 0x10, 0x84, 0x32, 0x71, 0x21, 0x01,
+  0x27, 0x53, 0xcf, 0x1a, 0x83, 0xbd, 0x94, 0x7f, 0xf4, 0xee, 0xb9, 0xb9,
+  0xf5, 0xc7, 0xa1, 0x7f, 0xdf, 0xf9, 0x6f, 0xcb, 0x85, 0x1b, 0xf2, 0x0e,
+  0x34, 0x74, 0xba, 0xcb, 0xe8, 0xa6, 0x6e, 0xd3, 0xc7, 0x54, 0x83, 0x62,
+  0x88, 0xf7, 0xbd, 0x9d, 0x8d, 0x3b, 0x5b, 0xdb, 0x89, 0x68, 0xc7, 0xd9,
+  0xbe, 0xaf, 0xe5, 0xf0, 0xb0, 0x03, 0xd7, 0xcc, 0xe4, 0xc2, 0x81, 0x28,
+  0x76, 0x00, 0xa8, 0x09, 0x50, 0x02, 0x80, 0x22, 0xea, 0x85, 0x9b, 0x8d,
+  0x68, 0xc7, 0x9b, 0x9a, 0xb4, 0x97, 0xcc, 0x3a, 0x9d, 0xb8, 0x42, 0x31,
+  0x5e, 0x85, 0x30, 0xf1, 0x40, 0x2c, 0xb4, 0x67, 0x98, 0x0b, 0xd6, 0x0d,
+  0xcc, 0x46, 0x58, 0xa6, 0xcc, 0xbd, 0xc0, 0x35, 0x69, 0x44, 0x05, 0x23,
+  0xbf, 0x89, 0xa1, 0x8d, 0x3e, 0xaa, 0xb4, 0x9e, 0x1c, 0x4a, 0x6b, 0xe5,
+  0xf1, 0xf8, 0xa5, 0xe3, 0xaf, 0xdb, 0xe8, 0xf5, 0x30, 0x68, 0x72, 0x35,
+  0xb6, 0x00, 0x2e, 0x77, 0x82, 0x95, 0xd6, 0x3b, 0xac, 0x5c, 0xc3, 0x7f,
+  0x09, 0x3c, 0xc9, 0xbe, 0x88, 0x9e, 0xda, 0x77, 0x6b, 0x80, 0xb7, 0xa5,
+  0x16, 0x34, 0x4b, 0xba, 0x05, 0x86, 0x09, 0x00, 0xd9, 0x97, 0xf8, 0xf7,
+  0xc7, 0x68, 0xa0, 0x06, 0xde, 0x8c, 0xec, 0x98, 0x8d, 0xca, 0x80, 0x84,
+  0x64, 0x73, 0xfa, 0xbc, 0xbd, 0xd5, 0xe7, 0x5e, 0x00, 0x1c, 0x21, 0x1a,
+  0x88, 0x00, 0x00, 0x0f, 0xff, 0xff, 0x0b, 0x6a, 0xa4, 0xb0, 0xd0, 0x42,
+  0xb4, 0x1b, 0x0d, 0xc2, 0x08, 0x79, 0x0b, 0xa7, 0x02, 0x99, 0x60, 0x00,
+  0x91, 0x41, 0x4c, 0xd4, 0x41, 0xc7, 0x88, 0xe5, 0x4a, 0xc0, 0x76, 0x20,
+  0xa5, 0xf3, 0xc7, 0x39, 0x4a, 0x54, 0x0d, 0xc9, 0xd9, 0xfd, 0x9b, 0x61,
+  0x44, 0x34, 0xc4, 0xae, 0xcb, 0x7c, 0x04, 0x0c, 0x99, 0x58, 0x9f, 0x60,
+  0x63, 0xef, 0x2e, 0x59, 0xf4, 0x8a, 0xfe, 0x0f, 0xdc, 0x18, 0xe9, 0x4f,
+  0xdb, 0x52, 0x68, 0x1b, 0x17, 0xcf, 0xde, 0x66, 0xb5, 0x4b, 0x9a, 0x87,
+  0x84, 0xa3, 0xb1, 0xd2, 0xd4, 0x77, 0x09, 0x8d, 0x83, 0x8d, 0xb0, 0x69,
+  0x5b, 0x48, 0xa9, 0x80, 0x11, 0xe2, 0x99, 0xf9, 0xc9, 0x2e, 0x28, 0x8c,
+  0x59, 0x0e, 0x2e, 0x76, 0x4b, 0x46, 0x5f, 0xa4, 0xab, 0x70, 0xa3, 0x4b,
+  0x72, 0xac, 0x3f, 0xd6, 0x65, 0x34, 0xb2, 0x45, 0xd2, 0x9c, 0x12, 0x05,
+  0x25, 0x6c, 0xe8, 0x9d, 0x73, 0xc5, 0x81, 0x6f, 0xd2, 0x86, 0x1b, 0x61,
+  0x68, 0xa2, 0x33, 0xa4, 0xf0, 0xde, 0x8c, 0x57, 0x3c, 0x19, 0xfe, 0x59,
+  0x0c, 0x9e, 0x3e, 0x54, 0xdc, 0x87, 0x0e, 0x50, 0x2d, 0x62, 0x97, 0x1d,
+  0x09, 0xf3, 0xbd, 0x2c, 0x14, 0x1c, 0xdd, 0x87, 0x47, 0xdb, 0xca, 0xe8,
+  0xda, 0x00, 0xc7, 0x3d, 0xcb, 0x32, 0x03, 0x8d, 0xb5, 0x4c, 0xab, 0x95,
+  0x47, 0xed, 0xea, 0x09, 0x7f, 0x32, 0x26, 0x14, 0xcd, 0x67, 0x3a, 0xec,
+  0xc3, 0xa9, 0x3a, 0x7c, 0xbf, 0xb1, 0xd1, 0x65, 0x85, 0x4f, 0x85, 0x2a,
+  0x18, 0x20, 0x87, 0x3e, 0x57, 0xc4, 0xe3, 0x63, 0xab, 0xe1, 0xcf, 0x38,
+  0x03, 0xe7, 0xdc, 0x5c, 0xc4, 0x00, 0xec, 0x00, 0x02, 0x28, 0x96, 0x32,
+  0xca, 0x05, 0xa8, 0x28, 0x8d, 0xf6, 0x4a, 0xd6, 0x94, 0xa6, 0xa6, 0xf8,
+  0x68, 0x92, 0x31, 0xf8, 0x8a, 0x00, 0x9b, 0x52, 0x93, 0x10, 0x45, 0x97,
+  0xd0, 0x9d, 0xe8, 0x98, 0x26, 0xac, 0x19, 0x21, 0x6c, 0xae, 0xdc, 0x1b,
+  0x2b, 0x14, 0xe1, 0x66, 0x94, 0x75, 0x05, 0x52, 0x32, 0xe6, 0xfb, 0xd2,
+  0xdf, 0x90, 0x72, 0xa0, 0x43, 0x52, 0xc8, 0x0e, 0xb4, 0x11, 0x65, 0x94,
+  0xfe, 0x1e, 0xda, 0xa1, 0xce, 0xb9, 0x7b, 0x39, 0x17, 0x5e, 0x96, 0xe8,
+  0x57, 0xd7, 0x3c, 0xe8, 0x82, 0x14, 0xe2, 0xc0, 0xd6, 0xf6, 0x75, 0x56,
+  0x24, 0x13, 0x69, 0xf8, 0x87, 0xce, 0x47, 0xdd, 0x9d, 0x5c, 0x21, 0x1a,
+  0x88, 0x00, 0x00, 0x03, 0xff, 0xff, 0x0f, 0x6a, 0xa4, 0xb1, 0x85, 0x24,
+  0x36, 0x22, 0x84, 0x5a, 0xea, 0x2b, 0xa6, 0x98, 0xd4, 0x10, 0xa0, 0x00,
+  0x90, 0xa1, 0x10, 0x22, 0xa0, 0x7c, 0x91, 0x06, 0x8b, 0x53, 0x72, 0x4f,
+  0xb0, 0x65, 0x42, 0x64, 0x10, 0xfe, 0x4f, 0x71, 0x4d, 0x38, 0x7e, 0x7a,
+  0xd9, 0x5b, 0xb7, 0x3d, 0x52, 0x72, 0x78, 0x22, 0xfe, 0xc7, 0xdc, 0xab,
+  0xb5, 0x8a, 0x76, 0x37, 0x5e, 0xf2, 0xc3, 0x83, 0xb0, 0x53, 0xf0, 0x5c,
+  0x72, 0xe5, 0x56, 0xf6, 0x5e, 0x5b, 0x93, 0x34, 0xf3, 0x96, 0x8e, 0xe6,
+  0x37, 0x19, 0x5d, 0x31, 0x00, 0x0d, 0x2b, 0xd4, 0x9b, 0xfb, 0xce, 0x74,
+  0x94, 0x93, 0x23, 0xd2, 0x77, 0x5f, 0x68, 0x10, 0xa9, 0x1e, 0x96, 0xdd,
+  0xa3, 0x45, 0x18, 0xcb, 0xc4, 0x17, 0x7f, 0x2b, 0x40, 0x2d, 0xbe, 0x32,
+  0x2a, 0x1a, 0xc1, 0x44, 0x50, 0x3b, 0x91, 0x04, 0x11, 0x3a, 0x38, 0x65,
+  0xea, 0x8b, 0x9c, 0x27, 0x1e, 0x06, 0xc5, 0x62, 0xad, 0x94, 0xb4, 0x27,
+  0x5d, 0x2a, 0x79, 0x54, 0xe7, 0x53, 0x08, 0x05, 0x55, 0x68, 0x5a, 0xff,
+  0xa1, 0x28, 0xd3, 0x63, 0xb4, 0xa2, 0xb5, 0x7c, 0x30, 0x39, 0xcc, 0xb6,
+  0x1e, 0x67, 0x3c, 0xc9, 0x80, 0xaf, 0x54, 0x55, 0xcc, 0xd2, 0x41, 0x4d,
+  0x5e, 0xe6, 0xba, 0xc6, 0x16, 0x6c, 0xe8, 0x3c, 0x29, 0x99, 0x36, 0x57,
+  0x66, 0xf2, 0x19, 0xff, 0x38, 0xf6, 0x2e, 0x78, 0x55, 0x3d, 0x7a, 0x24,
+  0x17, 0x9a, 0xab, 0x5e, 0xe0, 0xee, 0x7d, 0x56, 0x0f, 0x51, 0xa6, 0x1a,
+  0xdc, 0xeb, 0xcb, 0x54, 0xf2, 0xed, 0xf2, 0xcf, 0xc3, 0x3e, 0x8f, 0xfa,
+  0xbf, 0xcc, 0x01, 0xef, 0xf2, 0x2b, 0x41, 0x30, 0xcc, 0x3b, 0x00, 0x00,
+  0x12, 0xa4, 0x58, 0x50, 0x4a, 0x2a, 0x02, 0x7d, 0xd9, 0xe3, 0x8f, 0x6f,
+  0x6b, 0x5f, 0xfa, 0x93, 0x16, 0x13, 0xdb, 0x12, 0x35, 0xfc, 0x52, 0xb6,
+  0x91, 0x04, 0xeb, 0x10, 0xa4, 0xfd, 0x65, 0xd7, 0x53, 0x8f, 0x2a, 0xe6,
+  0x4f, 0x46, 0x0d, 0xf1, 0xea, 0xb6, 0x08, 0xbf, 0x94, 0xd2, 0xb0, 0xbb,
+  0x38, 0x5c, 0x7d, 0xce, 0x87, 0x33, 0xc2, 0x45, 0x8e, 0xfe, 0x91, 0x1f,
+  0xff, 0xe5, 0xae, 0x54, 0x22, 0x88, 0xeb, 0xb6, 0x97, 0xb1, 0x45, 0xc4,
+  0xce, 0xcc, 0x56, 0x60, 0x00, 0xb0, 0x72, 0xa0, 0x40, 0x11, 0x90, 0xf3,
+  0xc3, 0x56, 0x9c, 0x4b, 0x0a, 0x33, 0xb4, 0x31, 0xaf, 0xdf, 0x9f, 0xd4,
+  0x7e, 0xbc, 0x38, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x0f,
+  0x70, 0xa1, 0xb1, 0x48, 0x62, 0x64, 0x08, 0x8d, 0x85, 0x02, 0x50, 0x82,
+  0x47, 0x92, 0xd6, 0x44, 0x09, 0xb0, 0x10, 0x16, 0x9b, 0x12, 0x70, 0xbc,
+  0x72, 0xcf, 0x07, 0x28, 0x54, 0xa1, 0xe7, 0x4c, 0xaa, 0xc7, 0xde, 0xc6,
+  0x68, 0xbd, 0xe7, 0xad, 0x03, 0xc3, 0xba, 0xc5, 0xdc, 0x49, 0x40, 0xf2,
+  0xbc, 0xa8, 0x0d, 0x3f, 0x54, 0xe6, 0x99, 0x21, 0xd3, 0x8a, 0x77, 0x8e,
+  0x9d, 0x9c, 0x31, 0xd6, 0x62, 0x31, 0xdd, 0x1f, 0x48, 0xd2, 0x34, 0x75,
+  0x3b, 0x83, 0xd9, 0x2f, 0x19, 0x22, 0x93, 0xdb, 0xd6, 0x05, 0x95, 0x03,
+  0x27, 0xd5, 0x86, 0x8c, 0xe6, 0x57, 0x4d, 0xe0, 0x97, 0xd2, 0x71, 0xdb,
+  0xf7, 0xd3, 0x07, 0x40, 0xf6, 0x76, 0x3d, 0xfd, 0x1e, 0x8b, 0x28, 0xda,
+  0x75, 0xd5, 0xd8, 0xb8, 0x59, 0x51, 0xb9, 0xff, 0xd8, 0xe9, 0x2c, 0x5c,
+  0x59, 0xd9, 0xd7, 0xdd, 0x66, 0x5a, 0x2e, 0xfd, 0xa6, 0xc4, 0xd8, 0x5d,
+  0x6b, 0x3b, 0x0f, 0x4d, 0x2b, 0x62, 0x09, 0x72, 0xf7, 0x1d, 0x97, 0xaf,
+  0xf4, 0x4e, 0x64, 0xac, 0xa2, 0xf7, 0x6c, 0xec, 0xda, 0xaa, 0xaa, 0x4a,
+  0x3f, 0x19, 0xdd, 0x1d, 0xdc, 0xde, 0x6b, 0x7c, 0x6a, 0x44, 0x4d, 0xe3,
+  0x8a, 0x43, 0x5f, 0x83, 0xcb, 0x2d, 0x8d, 0xb0, 0x6f, 0xc8, 0x53, 0x2c,
+  0x27, 0x6c, 0x22, 0x6a, 0x42, 0x88, 0x46, 0xa4, 0xc5, 0xc8, 0x8e, 0x71,
+  0xc4, 0xfb, 0x78, 0xd9, 0x6c, 0x92, 0x7b, 0x87, 0x56, 0xda, 0xf2, 0xc1,
+  0x86, 0x5a, 0x11, 0xb1, 0x06, 0x6d, 0x4b, 0xe8, 0x1c, 0x6d, 0x92, 0x2a,
+  0xbc, 0xaa, 0x15, 0x31, 0x29, 0x78, 0xd9, 0xd9, 0x4f, 0x3a, 0xae, 0x63,
+  0xe5, 0x9b, 0x97, 0x67, 0x55, 0xe3, 0xe5, 0xe1, 0xc8, 0x01, 0xef, 0xf0,
+  0x2c, 0x41, 0x30, 0xd4, 0x3b, 0x00, 0x00, 0x26, 0x48, 0x80, 0xa1, 0x05,
+  0x9b, 0x1b, 0xb0, 0x08, 0x2e, 0x9c, 0xd4, 0x6a, 0x04, 0xa4, 0xa2, 0xf4,
+  0x06, 0x2b, 0xaf, 0x48, 0x4a, 0x24, 0xee, 0x9c, 0x87, 0x15, 0x68, 0x55,
+  0x12, 0x85, 0x45, 0x66, 0x85, 0x38, 0xec, 0xfb, 0xee, 0xdb, 0xa8, 0xf9,
+  0x2e, 0xc6, 0x7b, 0x2d, 0xbe, 0xdc, 0xa1, 0xe9, 0x00, 0xfb, 0x91, 0x2f,
+  0xd9, 0x01, 0x5f, 0x28, 0xb1, 0xb7, 0xbf, 0x4d, 0xbd, 0x7d, 0x12, 0xc5,
+  0xc6, 0xee, 0xea, 0x3a, 0x78, 0x63, 0xba, 0xe6, 0x7c, 0xb2, 0xe3, 0xd1,
+  0x3e, 0x46, 0x10, 0xbf, 0xd7, 0x63, 0x9f, 0x67, 0x7b, 0xa7, 0xf9, 0xf2,
+  0xe5, 0x55, 0x7f, 0x0d, 0xbf, 0x0e, 0x51, 0x9e, 0xdf, 0x54, 0xf4, 0x40,
+  0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x0f, 0x70, 0xa2,
+  0x30, 0xcd, 0xc8, 0x18, 0x19, 0x84, 0x17, 0x70, 0xb9, 0xa2, 0xe2, 0xa6,
+  0x5d, 0x50, 0x02, 0x09, 0x13, 0x91, 0xf4, 0x8c, 0xec, 0x2a, 0x00, 0x18,
+  0x04, 0x32, 0x23, 0x05, 0xac, 0x32, 0x63, 0x8f, 0xb3, 0xbb, 0x59, 0x5b,
+  0x23, 0x6e, 0xbc, 0x57, 0xd7, 0x26, 0x2d, 0x55, 0x47, 0xd5, 0x19, 0x0c,
+  0xa8, 0x38, 0xa2, 0x22, 0xef, 0xf6, 0xce, 0x25, 0xd0, 0xb6, 0x46, 0xfc,
+  0xd3, 0x5a, 0x4f, 0x2d, 0xe1, 0xfb, 0x5e, 0x23, 0x71, 0x55, 0x5f, 0xf5,
+  0xf3, 0x08, 0xac, 0x4c, 0xe7, 0x4f, 0x9d, 0x6b, 0xc9, 0xeb, 0xfb, 0x6d,
+  0x6f, 0x17, 0x41, 0x1a, 0xa4, 0x6b, 0x9b, 0x1c, 0xda, 0x4d, 0x9a, 0x4b,
+  0xa3, 0x2c, 0x81, 0x10, 0x81, 0x40, 0x62, 0x81, 0x15, 0x93, 0xeb, 0xbd,
+  0xe6, 0x97, 0x78, 0x49, 0xa5, 0x68, 0x0f, 0x0b, 0x36, 0x27, 0x9e, 0xbb,
+  0x7b, 0xb8, 0xe3, 0x2d, 0x84, 0x80, 0xd8, 0x8b, 0x14, 0x69, 0x98, 0x8d,
+  0x13, 0x64, 0x9f, 0x10, 0x1a, 0x2b, 0xd6, 0x08, 0x5d, 0x64, 0x91, 0x5d,
+  0x2e, 0x1c, 0xf0, 0x9c, 0xee, 0xb5, 0x73, 0x66, 0xf8, 0x33, 0xa6, 0x42,
+  0x50, 0xd2, 0xc2, 0xa1, 0x05, 0x15, 0xd8, 0xc7, 0x45, 0x99, 0xb8, 0xb5,
+  0xb2, 0xf6, 0xbc, 0x3c, 0x5c, 0x83, 0xbf, 0x06, 0xf4, 0x76, 0xaf, 0xb1,
+  0x81, 0xea, 0x08, 0x02, 0xfc, 0x36, 0x24, 0x3d, 0x3d, 0x2b, 0x3b, 0xd6,
+  0xb7, 0xd0, 0x1b, 0x43, 0x12, 0x6c, 0x5f, 0x7c, 0xc9, 0x58, 0x37, 0x48,
+  0xb8, 0x57, 0x89, 0x61, 0x16, 0x55, 0x6d, 0x49, 0xa6, 0x66, 0x51, 0xb0,
+  0xc0, 0xd5, 0x3c, 0xad, 0x9f, 0xce, 0xfc, 0xb7, 0xba, 0x0f, 0x7f, 0x81,
+  0x6b, 0x06, 0x06, 0xa1, 0xd8, 0x00, 0x00, 0x85, 0x40, 0xa0, 0x84, 0x86,
+  0xc4, 0x00, 0xc2, 0xdd, 0xc2, 0x90, 0x3e, 0xa6, 0x55, 0x45, 0xbc, 0xe5,
+  0x9a, 0x80, 0x8a, 0x8b, 0x8b, 0xad, 0xbd, 0x96, 0xaa, 0x33, 0xc9, 0x36,
+  0x2e, 0xf1, 0x91, 0x94, 0xbc, 0xfe, 0x0f, 0x6e, 0x1e, 0x18, 0x1b, 0x84,
+  0x69, 0xa0, 0xb4, 0xb1, 0x98, 0x70, 0x78, 0x42, 0x58, 0x0b, 0x94, 0xde,
+  0xe3, 0x73, 0x94, 0xb4, 0xcd, 0x38, 0xee, 0x50, 0x34, 0x51, 0xab, 0x42,
+  0xc9, 0x2b, 0x99, 0xc6, 0xfd, 0xf1, 0x8d, 0x6c, 0xbc, 0x6d, 0x49, 0xac,
+  0x1f, 0x51, 0x6d, 0xb1, 0x10, 0x7a, 0x1c, 0xba, 0x88, 0x70, 0x81, 0x82,
+  0x5a, 0x89, 0x8a, 0x30, 0x82, 0x54, 0x8f, 0x4f, 0x7d, 0xeb, 0xf1, 0xef,
+  0x9e, 0x40, 0x1c, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x07,
+  0x73, 0x62, 0x98, 0x49, 0x68, 0x26, 0x19, 0x84, 0x06, 0x99, 0x6d, 0x05,
+  0xdb, 0x20, 0x20, 0x28, 0x44, 0xa0, 0xe7, 0xe2, 0x62, 0xa7, 0xf4, 0xf2,
+  0x21, 0x0e, 0x57, 0x25, 0xbc, 0xda, 0xc8, 0x94, 0x58, 0xbe, 0x03, 0x98,
+  0xfe, 0x8f, 0xc1, 0x15, 0xfd, 0xa3, 0x44, 0xcc, 0x5e, 0xe3, 0x8e, 0x3e,
+  0xf8, 0xa1, 0x50, 0x83, 0xb1, 0xef, 0x2a, 0x6f, 0x65, 0x89, 0x4f, 0x99,
+  0x36, 0x5c, 0xf2, 0x54, 0x6a, 0xdf, 0x92, 0x23, 0xd6, 0xff, 0x4d, 0xf3,
+  0x8c, 0x5e, 0x3e, 0x98, 0x66, 0x28, 0x34, 0x4a, 0x72, 0x97, 0x08, 0x14,
+  0xb8, 0xcd, 0x14, 0x3d, 0x44, 0xb7, 0x6f, 0x85, 0x73, 0x98, 0x75, 0x45,
+  0x76, 0x66, 0xe3, 0x09, 0x89, 0xc5, 0x21, 0xf3, 0xba, 0x98, 0xd6, 0x84,
+  0xf3, 0xe3, 0x9d, 0x31, 0xb3, 0x9c, 0xb6, 0xa8, 0x50, 0x8c, 0x45, 0x8d,
+  0x3f, 0x46, 0xdd, 0x49, 0x56, 0x4e, 0xa4, 0x0d, 0xc6, 0x17, 0x0e, 0xc6,
+  0xfb, 0x24, 0x7e, 0xcb, 0x7c, 0x1a, 0x94, 0x20, 0x4f, 0x57, 0x1a, 0xc5,
+  0xa6, 0x00, 0xb9, 0xb9, 0xfc, 0x54, 0x0e, 0x13, 0xe0, 0x75, 0x9b, 0x22,
+  0x79, 0x7e, 0xbc, 0x85, 0x1d, 0xea, 0xa7, 0xbf, 0xd5, 0x8d, 0xec, 0xac,
+  0x82, 0xa9, 0x4c, 0xa0, 0xf3, 0x0c, 0x4f, 0x3b, 0xe1, 0xe6, 0x31, 0x83,
+  0x4e, 0x55, 0xb1, 0x1e, 0x93, 0xd9, 0xe0, 0xa4, 0xce, 0x9e, 0xaf, 0x0b,
+  0x45, 0xb7, 0x70, 0x7a, 0x55, 0x12, 0x14, 0xdb, 0x14, 0x92, 0xa7, 0x18,
+  0x1e, 0x69, 0x7c, 0x9b, 0x32, 0x00, 0x3f, 0x7f, 0x66, 0xa9, 0xb8, 0x7d,
+  0x69, 0xd1, 0xdf, 0x46, 0x95, 0xd7, 0x46, 0xd9, 0xab, 0x7c, 0xbe, 0x9d,
+  0xf9, 0xb9, 0xf7, 0x74, 0x88, 0xff, 0xd5, 0x40, 0x1e, 0xbf, 0x02, 0xd6,
+  0x22, 0x87, 0x60, 0x01, 0x28, 0x2a, 0x5d, 0x10, 0x14, 0x08, 0x8c, 0x00,
+  0x34, 0x4c, 0x73, 0xa4, 0xfc, 0x37, 0x92, 0x84, 0xe0, 0xce, 0x76, 0xa4,
+  0x33, 0xd6, 0xf4, 0xd0, 0x9f, 0x8a, 0xaa, 0xea, 0x86, 0x89, 0x16, 0xbc,
+  0x34, 0x6b, 0x23, 0x09, 0xa5, 0x2d, 0xf3, 0xb7, 0xf9, 0x47, 0x2a, 0xdf,
+  0x5d, 0x39, 0x5c, 0x30, 0x53, 0x0a, 0x69, 0x5d, 0x4d, 0x67, 0x78, 0xda,
+  0x3e, 0x5d, 0x66, 0x94, 0x8a, 0x43, 0x60, 0x0b, 0x98, 0xcd, 0xab, 0x54,
+  0x05, 0x06, 0x81, 0x8d, 0xb5, 0xa1, 0x99, 0xbc, 0x8d, 0xa1, 0x64, 0xd1,
+  0x76, 0x7d, 0x25, 0xd3, 0x47, 0xa2, 0xca, 0x64, 0xf2, 0x51, 0xd3, 0x7d,
+  0x36, 0x75, 0x69, 0x9b, 0xc1, 0x62, 0x23, 0x2c, 0x43, 0xdd, 0x9b, 0xe9,
+  0xe8, 0xdf, 0xd2, 0x00, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x03, 0xff,
+  0xff, 0x13, 0x6f, 0xa2, 0x31, 0x85, 0x8c, 0x43, 0x08, 0x68, 0x9d, 0x12,
+  0xe3, 0x2e, 0xca, 0x5e, 0x5e, 0x00, 0x05, 0xd5, 0xe0, 0xd6, 0x5f, 0x4c,
+  0xbb, 0xc6, 0x40, 0x65, 0xfd, 0x56, 0xdf, 0xfa, 0x77, 0x5d, 0xe0, 0x00,
+  0xd6, 0xec, 0x53, 0xa0, 0x27, 0x8d, 0x83, 0xc3, 0xf7, 0x1f, 0xf5, 0x79,
+  0xc3, 0x3b, 0xb3, 0xcb, 0x66, 0xf5, 0x9a, 0xbe, 0x08, 0x82, 0x33, 0x86,
+  0x7f, 0xf5, 0x24, 0x93, 0x8e, 0x56, 0xe2, 0xb9, 0xf9, 0x32, 0x5a, 0xec,
+  0x52, 0xc9, 0xf1, 0xc3, 0x1e, 0x83, 0xed, 0x5e, 0x35, 0xbe, 0xef, 0x01,
+  0xa5, 0xd5, 0x39, 0x0c, 0x78, 0x31, 0xa5, 0x00, 0xdf, 0xc5, 0x59, 0x1f,
+  0x0f, 0x12, 0xfc, 0xb3, 0x69, 0xce, 0xb7, 0x30, 0xb1, 0x0f, 0x91, 0x93,
+  0x16, 0x53, 0x6a, 0xe5, 0xb7, 0x71, 0xd8, 0x35, 0x96, 0x8b, 0xa8, 0x11,
+  0x3b, 0x81, 0x2e, 0xbc, 0xa1, 0x2c, 0x89, 0x56, 0x5c, 0xb5, 0xa6, 0x77,
+  0x29, 0x7b, 0xac, 0x08, 0x96, 0xf1, 0x42, 0xdc, 0x45, 0x16, 0xf6, 0x1d,
+  0x5e, 0x24, 0x15, 0xfd, 0x0c, 0x59, 0x44, 0xa1, 0x6a, 0xd5, 0xd2, 0x51,
+  0x8e, 0x33, 0xa4, 0x42, 0xd6, 0x5d, 0xd0, 0xf2, 0x94, 0xfa, 0x4f, 0x76,
+  0xfe, 0x03, 0xdb, 0x49, 0x78, 0x7a, 0xa2, 0x9b, 0xa3, 0x0d, 0xa4, 0xc5,
+  0x43, 0xb2, 0xaa, 0x5b, 0x2d, 0xad, 0x5f, 0x1b, 0xa5, 0x6c, 0xb5, 0xd9,
+  0x30, 0xd0, 0x98, 0xc9, 0x90, 0xcf, 0xa7, 0x4a, 0x89, 0x91, 0x9b, 0x04,
+  0x05, 0x36, 0xdb, 0x85, 0x3d, 0xf7, 0x67, 0xe6, 0xc3, 0x6c, 0x78, 0x67,
+  0xff, 0xfd, 0xfd, 0x5b, 0xe6, 0xff, 0x50, 0x0f, 0x9f, 0x93, 0x63, 0x10,
+  0xc3, 0xb0, 0x00, 0x02, 0xaa, 0xe1, 0x60, 0xa0, 0x48, 0xac, 0x06, 0xde,
+  0x02, 0x19, 0x30, 0x14, 0xdb, 0x64, 0xa2, 0xf8, 0x62, 0x6d, 0xd6, 0x12,
+  0x12, 0x5c, 0xa9, 0x73, 0x74, 0x55, 0x2a, 0xc4, 0xd5, 0xa3, 0x72, 0xad,
+  0xd3, 0xb6, 0xfa, 0x50, 0x4b, 0xd6, 0x8d, 0xd7, 0x68, 0x32, 0x85, 0xa9,
+  0xcd, 0x4f, 0x61, 0x10, 0x00, 0x02, 0x3c, 0xd8, 0xd9, 0x98, 0x24, 0x9e,
+  0x04, 0xd4, 0x41, 0x01, 0x24, 0xfa, 0xd0, 0x76, 0xea, 0x33, 0xf0, 0xee,
+  0x11, 0x04, 0x26, 0xa2, 0x45, 0xf3, 0x1a, 0xaa, 0x88, 0xaa, 0x8a, 0x82,
+  0x44, 0x7c, 0xf4, 0xc5, 0xfd, 0x53, 0xf6, 0x7f, 0xa9, 0xea, 0x7d, 0x5f,
+  0x6c, 0x38, 0x21, 0x1a, 0x88, 0x00, 0x03, 0xff, 0xff, 0xff, 0x09, 0x73,
+  0x63, 0x12, 0x10, 0x8c, 0x28, 0x12, 0x84, 0x16, 0x45, 0xe7, 0x4e, 0x5a,
+  0xf3, 0x59, 0x5a, 0x52, 0x80, 0x58, 0x25, 0x05, 0xa0, 0x6c, 0x98, 0x1c,
+  0x54, 0x80, 0x95, 0x29, 0x00, 0x83, 0xdd, 0x82, 0x1f, 0x1e, 0x1e, 0xc4,
+  0x49, 0x04, 0x8a, 0xd6, 0x51, 0x32, 0xc3, 0x99, 0x47, 0xb5, 0xbd, 0x8b,
+  0x10, 0xd1, 0x1b, 0xf7, 0x20, 0x12, 0x5a, 0x1f, 0x33, 0x75, 0xbe, 0xaa,
+  0xdf, 0x78, 0x87, 0x52, 0x42, 0x27, 0x9a, 0x1c, 0x8e, 0xdd, 0xf4, 0xe1,
+  0xe4, 0x2e, 0x29, 0x0e, 0x4a, 0xd5, 0xfe, 0xe3, 0x04, 0x56, 0x88, 0x65,
+  0xd3, 0x57, 0x3a, 0xd3, 0x8a, 0x7d, 0xdd, 0x14, 0xbf, 0xbf, 0x1a, 0xda,
+  0xe2, 0xfc, 0xf3, 0x71, 0xa9, 0x9e, 0x28, 0x56, 0xca, 0x25, 0x62, 0x95,
+  0x90, 0x9d, 0x3a, 0x4b, 0xe9, 0x4c, 0xe6, 0x8c, 0x92, 0x9d, 0x4f, 0x8f,
+  0xbb, 0xc3, 0xf4, 0x09, 0x2f, 0x4b, 0xdd, 0x2a, 0x86, 0xb9, 0x49, 0x68,
+  0x52, 0x11, 0x42, 0x27, 0x8e, 0x60, 0x55, 0x2c, 0xab, 0x25, 0x00, 0x8e,
+  0xc1, 0x05, 0xad, 0x08, 0x13, 0xda, 0x12, 0x83, 0x25, 0x17, 0x61, 0x02,
+  0x7a, 0xd4, 0x07, 0x41, 0xba, 0x00, 0x1a, 0xc1, 0x92, 0x20, 0x8a, 0x04,
+  0x6a, 0x4c, 0x43, 0x21, 0xb8, 0x92, 0x0d, 0xd7, 0xe1, 0xb4, 0xc5, 0x24,
+  0xc7, 0xc0, 0x9d, 0x9a, 0x99, 0x50, 0xa4, 0x32, 0x44, 0x37, 0x7d, 0xb3,
+  0xdc, 0x71, 0xc7, 0x9c, 0xbe, 0x72, 0x10, 0x94, 0xf2, 0xdc, 0x97, 0x4d,
+  0x00, 0xb6, 0x4a, 0xd6, 0x4d, 0x87, 0xb1, 0x07, 0x94, 0x4b, 0x2a, 0xe1,
+  0xe7, 0xa4, 0xa7, 0x18, 0xd9, 0xf2, 0x5a, 0x85, 0xab, 0x6a, 0x43, 0x29,
+  0x61, 0x4d, 0x82, 0x28, 0xa6, 0x84, 0x3b, 0xf2, 0x97, 0x6c, 0x09, 0x53,
+  0x68, 0x5f, 0x08, 0x46, 0x53, 0xfe, 0xf3, 0xe9, 0xdf, 0xd3, 0xdf, 0xf8,
+  0x80, 0x3d, 0x7c, 0x58, 0x44, 0x71, 0x4a, 0x09, 0x87, 0x01, 0x70, 0xec,
+  0x00, 0x2a, 0x24, 0xa4, 0x05, 0x00, 0x2c, 0x40, 0x69, 0x68, 0x96, 0x23,
+  0x2e, 0x57, 0x42, 0x22, 0xd1, 0xc9, 0xa4, 0x3b, 0xe1, 0x81, 0x73, 0xd6,
+  0x22, 0x73, 0x9c, 0x12, 0x29, 0x90, 0x30, 0x8a, 0x12, 0xde, 0x44, 0x44,
+  0xe0, 0x25, 0xa1, 0xed, 0x4d, 0x67, 0xc6, 0x93, 0xce, 0x8c, 0x08, 0x99,
+  0xb4, 0x4d, 0x3a, 0x5a, 0xfe, 0x52, 0x90, 0x5d, 0x3f, 0x1c, 0x56, 0x65,
+  0xe7, 0xaf, 0x91, 0x0a, 0xe8, 0xcb, 0x93, 0xe9, 0x3b, 0x72, 0x4a, 0x76,
+  0xd1, 0xa0, 0xbc, 0xb0, 0xe5, 0x0a, 0x77, 0x0c, 0x0c, 0x88, 0x26, 0xc2,
+  0xc4, 0x92, 0xbd, 0xd6, 0x12, 0x95, 0x36, 0x4a, 0x94, 0xc5, 0xe8, 0xf2,
+  0x8c, 0xd7, 0xca, 0x93, 0xcf, 0x54, 0x9d, 0x5d, 0xc2, 0x74, 0xef, 0xbe,
+  0xbc, 0x2d, 0x9f, 0x9d, 0xb7, 0xc2, 0xf3, 0xdd, 0xae, 0xd2, 0x50, 0x6e,
+  0x1c, 0x28, 0xcf, 0xc7, 0x8c, 0xc6, 0x19, 0xf6, 0xda, 0x9a, 0xb6, 0xbc,
+  0x17, 0x2b, 0xa8, 0xf1, 0xf6, 0x71, 0xf6, 0x80, 0x70, 0x21, 0x1a, 0x88,
+  0x00, 0x00, 0x7f, 0xff, 0xff, 0x0b, 0x6f, 0xa1, 0xd8, 0x58, 0xa8, 0x22,
+  0x2a, 0x19, 0x85, 0x02, 0x50, 0x80, 0x0f, 0x65, 0x8d, 0x2a, 0x5d, 0x4c,
+  0x20, 0x00, 0x93, 0x63, 0x1f, 0x84, 0x9c, 0x71, 0x11, 0x45, 0x32, 0x30,
+  0x47, 0x45, 0x10, 0x98, 0x49, 0x5b, 0x30, 0x98, 0x03, 0x6e, 0x83, 0xf3,
+  0xd2, 0xe8, 0xc8, 0x04, 0x1a, 0x8e, 0x56, 0x2f, 0x27, 0x61, 0x90, 0x7e,
+  0x77, 0xed, 0x3b, 0x14, 0x11, 0x9d, 0x37, 0x09, 0xa6, 0x2f, 0x4c, 0xff,
+  0xcb, 0xd9, 0xd0, 0x76, 0x56, 0x45, 0xd6, 0x95, 0x44, 0x3a, 0x99, 0xc7,
+  0x30, 0x7d, 0xcf, 0x2c, 0x9e, 0x9c, 0xca, 0x7b, 0x2c, 0x96, 0x4a, 0x7b,
+  0x6a, 0x85, 0x90, 0x6d, 0x07, 0xd1, 0xad, 0xfe, 0x69, 0x04, 0x95, 0xb5,
+  0xc7, 0x82, 0xac, 0xa6, 0x0f, 0x2c, 0xaf, 0x8b, 0xff, 0x5a, 0x72, 0x52,
+  0xd4, 0xbb, 0xf7, 0x73, 0x6e, 0x98, 0x53, 0xfd, 0x5b, 0xbb, 0xef, 0x86,
+  0x7e, 0xea, 0xf5, 0xec, 0xf0, 0xa7, 0xa5, 0xa6, 0xb9, 0x44, 0xde, 0x9c,
+  0x01, 0x6f, 0xd3, 0x59, 0x50, 0x28, 0x63, 0x7c, 0x56, 0x93, 0x15, 0x6a,
+  0x25, 0x3e, 0xac, 0x8f, 0xf0, 0x21, 0x56, 0xab, 0x1b, 0x09, 0xa9, 0xd9,
+  0xd8, 0x2c, 0xf6, 0x4f, 0xfd, 0x12, 0x35, 0x15, 0x1a, 0x69, 0xa7, 0x96,
+  0x43, 0x15, 0xc8, 0x51, 0xe5, 0x44, 0x98, 0x2b, 0x67, 0xf1, 0x26, 0x64,
+  0xfd, 0xd9, 0x1a, 0x32, 0x38, 0x1a, 0xb2, 0x54, 0xeb, 0x8d, 0x26, 0x03,
+  0x88, 0xd8, 0x60, 0x6d, 0x03, 0xc5, 0xd0, 0xce, 0x3d, 0x68, 0x31, 0x0a,
+  0x0a, 0xcc, 0xf8, 0x36, 0x19, 0xce, 0x00, 0x55, 0x46, 0x11, 0x85, 0x72,
+  0x4c, 0x27, 0x90, 0xdd, 0xd5, 0xbc, 0xdb, 0xc3, 0x3d, 0xb4, 0x63, 0x56,
+  0xe0, 0x51, 0x9f, 0x28, 0x7c, 0x45, 0xd6, 0x85, 0xe9, 0xf3, 0x26, 0x3c,
+  0x78, 0xf1, 0x69, 0x6d, 0x29, 0x6f, 0xdc, 0xd7, 0xda, 0xdd, 0x5f, 0x8b,
+  0x9f, 0x8f, 0x8f, 0x18, 0xdd, 0x5f, 0x4f, 0xd9, 0xaf, 0xf9, 0xfb, 0x3e,
+  0x60, 0x08, 0x0f, 0xa0, 0xc9, 0x04, 0xc1, 0x10, 0xec, 0x00, 0x00, 0x1d,
+  0x21, 0x32, 0xe8, 0x30, 0x65, 0xf2, 0x00, 0x27, 0x0d, 0x5f, 0xa7, 0x09,
+  0x2f, 0xf9, 0xef, 0x45, 0x6a, 0xde, 0x32, 0x88, 0x2a, 0x2c, 0xa4, 0x09,
+  0x86, 0x7d, 0x17, 0xc1, 0xc0, 0xce, 0x34, 0x05, 0xd5, 0x8d, 0xfe, 0x5f,
+  0xe3, 0xb7, 0x8f, 0x10, 0x54, 0xbf, 0xee, 0x96, 0xd3, 0xb7, 0x9c, 0x1f,
+  0x9d, 0x9c, 0x05, 0xe3, 0x28, 0xa9, 0xb3, 0x65, 0xf1, 0xf0, 0xb7, 0x4b,
+  0xfb, 0x74, 0xb1, 0x77, 0x59, 0xfd, 0xef, 0xaa, 0xd6, 0x26, 0x4b, 0xb2,
+  0x31, 0xfe, 0x6f, 0x75, 0x9c, 0x7a, 0x20, 0x15, 0x72, 0x88, 0x5b, 0x24,
+  0xf7, 0x3d, 0x44, 0x20, 0x0f, 0xd5, 0xc3, 0x1f, 0xb6, 0x01, 0xc0, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x00, 0xff, 0xff, 0x11, 0x72, 0x83, 0x20, 0xc9,
+  0x4c, 0x45, 0x08, 0x03, 0x35, 0xf0, 0x95, 0xa3, 0x40, 0xa0, 0x00, 0x95,
+  0x26, 0xc7, 0xbc, 0xfe, 0xce, 0x77, 0x67, 0x15, 0xe7, 0x51, 0xd0, 0x22,
+  0x93, 0xc7, 0xa0, 0x56, 0x68, 0xfc, 0x7d, 0x79, 0xd1, 0x5e, 0xe5, 0xef,
+  0x7f, 0x3e, 0xc5, 0xa1, 0xa1, 0xfd, 0xe1, 0x9f, 0x9e, 0x2f, 0xf8, 0x45,
+  0x27, 0xb8, 0x3d, 0x72, 0x49, 0xfc, 0x97, 0xe3, 0x53, 0xf0, 0x77, 0x4f,
+  0x24, 0x55, 0x17, 0x9a, 0x9f, 0x69, 0xcc, 0x85, 0x86, 0xba, 0x61, 0x95,
+  0x5d, 0x83, 0xa9, 0xa9, 0x86, 0xac, 0xd3, 0x91, 0xe7, 0x32, 0x3d, 0xe4,
+  0xb4, 0xf1, 0x15, 0xd3, 0x72, 0xff, 0x0d, 0x96, 0x4b, 0x5b, 0xd3, 0x77,
+  0xc9, 0x21, 0x51, 0xf2, 0x53, 0x2d, 0x39, 0x49, 0xad, 0x19, 0xce, 0x6e,
+  0xed, 0x3a, 0xb0, 0x01, 0x30, 0xcf, 0x95, 0x4e, 0xaa, 0xd6, 0xca, 0x7a,
+  0x09, 0x37, 0x7e, 0x34, 0x6f, 0x99, 0x5d, 0xda, 0x45, 0x35, 0x6d, 0x7d,
+  0x92, 0x68, 0xd5, 0x71, 0x2f, 0x57, 0xce, 0x13, 0x52, 0xb8, 0x03, 0xce,
+  0x69, 0x64, 0xea, 0x6d, 0x6a, 0x57, 0xd0, 0xe8, 0x4e, 0x60, 0x3c, 0x84,
+  0xdc, 0xc3, 0x22, 0x6a, 0x3d, 0x20, 0x52, 0xfd, 0x60, 0x24, 0x3a, 0xee,
+  0xbf, 0xc0, 0xa6, 0x03, 0x77, 0xba, 0x72, 0x64, 0x4d, 0xa4, 0xdf, 0x3c,
+  0x3a, 0x73, 0x99, 0x63, 0x41, 0xe2, 0xf6, 0xf1, 0xfb, 0x0e, 0xde, 0x2e,
+  0x6b, 0x34, 0xf1, 0xd8, 0x30, 0xe2, 0x53, 0x4a, 0xa0, 0x4e, 0x79, 0xd0,
+  0x90, 0xf7, 0x9a, 0xcc, 0x43, 0x9e, 0x16, 0x34, 0xe5, 0x59, 0x6f, 0xd0,
+  0xd8, 0x0d, 0xb6, 0x8e, 0x36, 0x76, 0x4a, 0x9c, 0x6c, 0x18, 0xbd, 0xbd,
+  0x3e, 0x6d, 0xcd, 0x45, 0x5e, 0x6a, 0xda, 0xbc, 0x66, 0x2e, 0xbc, 0x7f,
+  0x1e, 0x3b, 0xe9, 0xd7, 0xd9, 0xe0, 0x00, 0xf9, 0xfb, 0x14, 0xa0, 0x98,
+  0x6a, 0x1d, 0x80, 0x00, 0x24, 0xa4, 0xa2, 0xb4, 0x30, 0x08, 0x60, 0x84,
+  0x96, 0xad, 0x8d, 0x8b, 0x55, 0xed, 0xb9, 0x5a, 0xa1, 0x0e, 0xd0, 0x80,
+  0x10, 0x41, 0x01, 0xcc, 0xac, 0x71, 0x19, 0xed, 0xbe, 0x5c, 0xd1, 0xa6,
+  0x32, 0x9a, 0xc5, 0xa6, 0x9c, 0xa5, 0x42, 0x99, 0x60, 0x15, 0x35, 0x74,
+  0xcf, 0x1e, 0x64, 0x09, 0x7e, 0x38, 0x2e, 0xa8, 0xa4, 0x0b, 0x2e, 0x09,
+  0x68, 0x9f, 0x6c, 0xf8, 0xe3, 0xd7, 0xd5, 0x34, 0x90, 0x6a, 0x09, 0x5e,
+  0x03, 0xdf, 0xb6, 0xab, 0xb0, 0xc1, 0xca, 0xea, 0xe5, 0x51, 0xaa, 0x79,
+  0x80, 0x74, 0x6e, 0xca, 0xcc, 0xa6, 0xf5, 0x7c, 0x7c, 0xf3, 0xea, 0xc7,
+  0xbf, 0x80, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x0f,
+  0x70, 0xa2, 0x31, 0x0d, 0x04, 0x56, 0x21, 0x84, 0x02, 0x3a, 0x5e, 0x81,
+  0xa5, 0x4a, 0xc0, 0x40, 0x22, 0x36, 0x39, 0x10, 0x82, 0xa0, 0x6d, 0x2a,
+  0xd0, 0xd2, 0xfb, 0x70, 0x58, 0x57, 0x72, 0xab, 0x06, 0xff, 0x1f, 0xd4,
+  0x3b, 0x3a, 0xb5, 0x21, 0x6a, 0x3c, 0x6f, 0x5e, 0x1d, 0xd6, 0x3d, 0xc7,
+  0x61, 0xcc, 0xc8, 0xd6, 0xfc, 0xc7, 0xe8, 0x39, 0xa7, 0xaa, 0x7a, 0x02,
+  0x53, 0x04, 0x8b, 0x8b, 0xc4, 0x6e, 0x56, 0xdd, 0x78, 0xae, 0xf9, 0xa6,
+  0xab, 0x18, 0x37, 0x87, 0x81, 0x6e, 0x08, 0x1f, 0xbd, 0xaa, 0x18, 0x73,
+  0xd0, 0x0b, 0x2c, 0x3d, 0xbe, 0x00, 0xd5, 0x90, 0x8d, 0x17, 0x00, 0xfc,
+  0xf0, 0x89, 0x49, 0x92, 0xf3, 0xcf, 0x77, 0xca, 0xbd, 0x9b, 0x37, 0x23,
+  0xcb, 0x38, 0xf9, 0x12, 0xa5, 0xd3, 0xf6, 0x9b, 0xd9, 0xa3, 0xf1, 0xdf,
+  0x8c, 0x54, 0xf8, 0xd3, 0xc5, 0xaa, 0xd5, 0x0d, 0x57, 0x76, 0x3d, 0xa2,
+  0x5c, 0xcd, 0x3a, 0xcc, 0xb8, 0x4e, 0x51, 0xd5, 0x20, 0x47, 0x44, 0x04,
+  0x23, 0xb0, 0x76, 0xd1, 0x8d, 0xab, 0x3a, 0x4d, 0x15, 0xa9, 0x75, 0xc5,
+  0x03, 0x53, 0x6e, 0x90, 0x39, 0x50, 0x98, 0x67, 0x00, 0x89, 0x3c, 0xc4,
+  0x64, 0x31, 0x73, 0xb0, 0xf5, 0x18, 0x7a, 0x38, 0xc4, 0xa3, 0x86, 0x78,
+  0xc3, 0x58, 0xc4, 0xea, 0x00, 0x61, 0x32, 0x18, 0x66, 0x45, 0x25, 0xf4,
+  0x82, 0xf7, 0xad, 0x26, 0xee, 0xdb, 0x9c, 0x6c, 0xc2, 0xa0, 0x8e, 0x54,
+  0x5d, 0xaa, 0xa8, 0xb6, 0x9c, 0xfb, 0xa5, 0xc3, 0xdf, 0xbe, 0x0b, 0xcc,
+  0x4a, 0x47, 0x77, 0x87, 0x66, 0xe5, 0xc7, 0xe3, 0xfe, 0x91, 0xea, 0xdf,
+  0x3a, 0x0f, 0x7f, 0x81, 0x62, 0x09, 0x86, 0xa1, 0xd8, 0x25, 0x00, 0x11,
+  0x52, 0xac, 0x00, 0x12, 0x00, 0x05, 0x20, 0x45, 0x27, 0x32, 0x10, 0x4f,
+  0x80, 0x13, 0x9a, 0x13, 0xb3, 0x48, 0x56, 0x53, 0x56, 0x11, 0x4b, 0x65,
+  0xc2, 0x2b, 0xc4, 0x46, 0x8b, 0xfd, 0x3f, 0xc1, 0x7e, 0x62, 0x8c, 0x72,
+  0x00, 0x77, 0xb3, 0xd9, 0x48, 0x24, 0x22, 0x01, 0xb6, 0x74, 0xf2, 0xee,
+  0x46, 0x83, 0xbe, 0xf3, 0x40, 0x22, 0x50, 0x91, 0xdd, 0x6e, 0x48, 0x54,
+  0x49, 0x70, 0x63, 0xf7, 0xa8, 0x22, 0x10, 0xaa, 0xbf, 0xca, 0x20, 0x58,
+  0x57, 0x9f, 0x7c, 0xd5, 0xed, 0xe1, 0xe8, 0xa6, 0xf9, 0x27, 0x76, 0xcb,
+  0x7e, 0xee, 0xff, 0x3f, 0xf1, 0x8c, 0xfd, 0x9c, 0xf8, 0x00, 0x70, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x7f, 0xff, 0xff, 0x13, 0x73, 0x62, 0x92, 0xd0,
+  0x4c, 0x28, 0x11, 0x84, 0x1c, 0x0b, 0x69, 0xd0, 0x59, 0x49, 0x80, 0x80,
+  0x42, 0x6c, 0x79, 0x3e, 0x06, 0x5a, 0x84, 0x44, 0x69, 0x97, 0x7b, 0x7b,
+  0x9c, 0x9a, 0x72, 0x66, 0x14, 0x0b, 0xe4, 0x3a, 0x17, 0x68, 0xf0, 0x49,
+  0xd4, 0x3e, 0xfc, 0xe7, 0x10, 0x90, 0x76, 0x25, 0xa4, 0x5e, 0x6c, 0x8a,
+  0xed, 0xe1, 0x72, 0x2f, 0xa4, 0xbe, 0x2e, 0x90, 0x75, 0x9b, 0xff, 0x83,
+  0x37, 0x2f, 0x38, 0x96, 0x7c, 0xd8, 0x9e, 0x2d, 0x6a, 0x42, 0xf6, 0x89,
+  0x60, 0x17, 0x97, 0x42, 0x75, 0x4e, 0x69, 0x73, 0xd3, 0xef, 0xf7, 0xc8,
+  0xcb, 0x38, 0x9b, 0xb0, 0xe3, 0xe9, 0x36, 0x53, 0x7e, 0xc4, 0x1d, 0xe7,
+  0xb2, 0xf3, 0x1d, 0x6d, 0xc7, 0x64, 0x4f, 0x7e, 0x8f, 0x31, 0x86, 0x9e,
+  0x59, 0x15, 0x47, 0xc3, 0xdc, 0x3e, 0x7b, 0xe9, 0xb6, 0x4b, 0xb9, 0x1f,
+  0x6d, 0x24, 0x2c, 0xc3, 0xa7, 0xc2, 0x40, 0x3a, 0x50, 0xb2, 0x03, 0xc1,
+  0x23, 0x04, 0x2a, 0x50, 0x7a, 0xbe, 0x76, 0x85, 0x44, 0x95, 0xc8, 0xc0,
+  0xab, 0xc5, 0x8e, 0x1c, 0x1c, 0x15, 0xd4, 0xf4, 0x42, 0xd1, 0x84, 0xe7,
+  0xc9, 0xa5, 0x7f, 0xad, 0x3d, 0x6b, 0x01, 0x76, 0x03, 0x94, 0xc8, 0xee,
+  0x16, 0x6a, 0xdd, 0x1e, 0x1b, 0x37, 0x42, 0x94, 0x1d, 0xfd, 0xaa, 0x62,
+  0xe1, 0xca, 0x2b, 0x28, 0x9c, 0x18, 0x2a, 0xea, 0x6c, 0x72, 0x6b, 0xee,
+  0x83, 0x26, 0xa8, 0x8b, 0x0a, 0x11, 0x94, 0x88, 0xa8, 0xe0, 0x00, 0xf4,
+  0xcf, 0xa5, 0x4a, 0xe4, 0xba, 0x96, 0x5b, 0x51, 0x21, 0x70, 0xd2, 0x9d,
+  0x72, 0x37, 0x9d, 0xe2, 0xc2, 0x31, 0xe6, 0x98, 0x52, 0x4a, 0x3a, 0x08,
+  0x92, 0x03, 0xc5, 0x92, 0xd3, 0x3f, 0x3d, 0xfd, 0x7f, 0xc4, 0x7f, 0xf7,
+  0x03, 0xe7, 0xd1, 0x08, 0x28, 0x22, 0xa0, 0x60, 0x6a, 0x1d, 0x80, 0x00,
+  0xa8, 0xad, 0x00, 0xc1, 0x01, 0x67, 0x21, 0x6b, 0x49, 0x77, 0x95, 0x97,
+  0x65, 0x15, 0xa9, 0xa1, 0xbf, 0x86, 0x57, 0x2a, 0x82, 0xee, 0x33, 0xa2,
+  0xd7, 0x97, 0xe0, 0x9e, 0xab, 0xb0, 0x46, 0xb5, 0xc8, 0x13, 0x71, 0x13,
+  0x03, 0x54, 0xf2, 0x91, 0x23, 0x41, 0x1e, 0x77, 0x2f, 0xe9, 0x50, 0x86,
+  0xc3, 0x13, 0x1d, 0x55, 0xa2, 0x59, 0x4e, 0x95, 0xb1, 0x54, 0x86, 0x03,
+  0x26, 0x8c, 0x2b, 0xe3, 0x52, 0x58, 0x7e, 0x7f, 0x93, 0x1c, 0x3a, 0x51,
+  0x1b, 0x61, 0xdc, 0xf2, 0x72, 0x98, 0xa9, 0xa9, 0x09, 0xd7, 0x22, 0xc9,
+  0xf3, 0x33, 0x93, 0xc5, 0x51, 0x53, 0x05, 0x44, 0xba, 0x73, 0x98, 0x00,
+  0xad, 0x8c, 0x67, 0x42, 0xfc, 0x9a, 0xb4, 0x8a, 0x74, 0x8d, 0xf1, 0x80,
+  0x4a, 0x2c, 0xb2, 0x3c, 0x68, 0xcd, 0xd6, 0xb3, 0x5d, 0x75, 0xe7, 0x00,
+  0x1c, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x0d, 0x6f, 0xa2,
+  0x41, 0x18, 0x48, 0x31, 0x4b, 0x11, 0xc2, 0x00, 0xbb, 0x58, 0xe0, 0x45,
+  0xd6, 0x2f, 0x08, 0x04, 0x26, 0x0b, 0x40, 0x24, 0x64, 0xd0, 0x26, 0x68,
+  0xa4, 0x2d, 0xc1, 0x24, 0xc9, 0xe4, 0x05, 0x20, 0x88, 0x01, 0xfb, 0xb9,
+  0x7d, 0x53, 0x30, 0x7e, 0xd9, 0xfb, 0xe2, 0x02, 0x06, 0xf2, 0xf2, 0x7c,
+  0x14, 0x3f, 0x5f, 0x45, 0x77, 0x86, 0xc0, 0x90, 0x72, 0x4f, 0x31, 0xc2,
+  0x77, 0x1c, 0x97, 0xb7, 0x27, 0x42, 0x75, 0x1a, 0x3d, 0xd9, 0x94, 0xf1,
+  0xaf, 0xe8, 0x9d, 0x3b, 0x4f, 0x56, 0x05, 0x75, 0xb4, 0xc1, 0xee, 0xfa,
+  0x42, 0xbd, 0x1e, 0x7b, 0xec, 0x39, 0x95, 0x41, 0xf3, 0x0f, 0x4d, 0x57,
+  0x53, 0x6a, 0xd7, 0x2c, 0xe0, 0x21, 0x30, 0xd9, 0x4f, 0x9c, 0xc7, 0xbe,
+  0x59, 0x05, 0x06, 0x00, 0x41, 0x98, 0xc8, 0xa8, 0x42, 0x06, 0x50, 0xac,
+  0x91, 0x51, 0xb4, 0xd2, 0x44, 0x3d, 0xcf, 0xdd, 0xe6, 0x0b, 0x0c, 0x41,
+  0xaa, 0x37, 0x91, 0xe0, 0x09, 0x14, 0xc0, 0x5d, 0xb5, 0xeb, 0xcf, 0x66,
+  0xfa, 0x0d, 0x91, 0xf6, 0x17, 0x68, 0x4a, 0x86, 0x48, 0xa4, 0xb7, 0xb1,
+  0x81, 0x69, 0x32, 0xf6, 0xd9, 0xbf, 0x44, 0xec, 0x33, 0xa1, 0xc9, 0x4c,
+  0xdd, 0xaf, 0x04, 0xe3, 0xf6, 0xe1, 0x59, 0xb9, 0xd7, 0x2c, 0x2f, 0xa3,
+  0x5d, 0xb3, 0xc8, 0x96, 0x25, 0x64, 0xac, 0x78, 0x53, 0xe7, 0x2f, 0x13,
+  0x8e, 0xd6, 0x80, 0x47, 0x40, 0x8a, 0x4e, 0x6a, 0xd4, 0xec, 0xef, 0xd8,
+  0xaf, 0x95, 0x96, 0x0d, 0x45, 0x35, 0xe8, 0x07, 0x0d, 0x29, 0x5e, 0xe7,
+  0xab, 0x8a, 0x89, 0x3d, 0xa2, 0xc1, 0x48, 0xa6, 0x03, 0x95, 0x12, 0x0e,
+  0x79, 0xf0, 0xab, 0xf9, 0xdb, 0x7f, 0xd7, 0xaa, 0xeb, 0x34, 0xfa, 0x7c,
+  0xba, 0x7a, 0xd2, 0x00, 0xf9, 0xfc, 0x14, 0xb1, 0x14, 0x3b, 0x00, 0x01,
+  0x2a, 0x54, 0xa1, 0x13, 0x45, 0x60, 0x59, 0x30, 0x6d, 0x8f, 0x38, 0x55,
+  0x33, 0x64, 0x3a, 0x43, 0x5d, 0x6b, 0x62, 0xff, 0x48, 0xc6, 0x34, 0x4f,
+  0xe8, 0xe7, 0xf8, 0xc6, 0x29, 0x40, 0x52, 0xbb, 0x94, 0x01, 0x2b, 0x8f,
+  0xf2, 0xae, 0xf2, 0x52, 0x97, 0xda, 0x53, 0x47, 0x3a, 0xb3, 0xc2, 0x34,
+  0x13, 0x0c, 0xe0, 0x41, 0x72, 0x80, 0x51, 0x82, 0xca, 0x34, 0x2c, 0xd5,
+  0xd4, 0xeb, 0x47, 0x5b, 0x4a, 0x57, 0x94, 0xdc, 0x22, 0x80, 0x25, 0xa0,
+  0xa5, 0xc6, 0xa8, 0xe1, 0xfb, 0xb0, 0xb5, 0x9d, 0x32, 0xd9, 0x37, 0xeb,
+  0xa6, 0x3f, 0x2d, 0xfb, 0x78, 0x7a, 0xf7, 0x18, 0xe4, 0x01, 0xc0, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x00, 0xff, 0xff, 0x13, 0x72, 0x83, 0x21, 0x49,
+  0x0c, 0x45, 0x08, 0x13, 0x50, 0xe1, 0x15, 0xc1, 0xa2, 0x94, 0x00, 0x10,
+  0x9b, 0x15, 0xa1, 0xc8, 0x10, 0xbd, 0xda, 0x42, 0x90, 0xe8, 0x01, 0xe3,
+  0xc2, 0xf3, 0x31, 0x23, 0x8a, 0xd1, 0x37, 0xd4, 0x31, 0x9f, 0x3e, 0xd8,
+  0xa4, 0x33, 0x57, 0xb0, 0xfd, 0xfd, 0x50, 0x80, 0xc9, 0xaa, 0x20, 0x9f,
+  0x03, 0x4b, 0xd9, 0x30, 0x4f, 0x4b, 0xe3, 0x79, 0xf8, 0xae, 0x5d, 0x0f,
+  0x12, 0xcd, 0xad, 0x76, 0x1e, 0x91, 0x82, 0x59, 0x54, 0x21, 0xa7, 0x27,
+  0x2c, 0x24, 0x57, 0x13, 0x91, 0x24, 0x97, 0x4a, 0xaa, 0x2a, 0xa5, 0xe3,
+  0x78, 0xf9, 0xb4, 0xdf, 0x6f, 0x77, 0x8f, 0xfe, 0x8c, 0x7f, 0xd7, 0x3b,
+  0xc4, 0x4d, 0x02, 0xb3, 0x5b, 0x2c, 0xa2, 0xf2, 0xf8, 0x64, 0xd3, 0xb8,
+  0x6b, 0xb3, 0xa0, 0x13, 0xd8, 0x51, 0x3d, 0xc2, 0x12, 0xa2, 0xd2, 0x72,
+  0x33, 0xee, 0x6b, 0x20, 0x29, 0x65, 0x01, 0x49, 0x3a, 0x2e, 0xc8, 0x2e,
+  0x0d, 0x29, 0x5a, 0x6b, 0xe8, 0xd7, 0x59, 0xa3, 0x55, 0xde, 0xd5, 0xd3,
+  0x91, 0x84, 0x79, 0x72, 0x4a, 0x4e, 0x11, 0x1d, 0xa2, 0x90, 0xcc, 0x54,
+  0xc6, 0x92, 0x91, 0xb2, 0xd3, 0xa8, 0xc3, 0xb2, 0x14, 0x98, 0xc3, 0x74,
+  0xea, 0x32, 0xdf, 0x93, 0x80, 0x91, 0x75, 0x42, 0x84, 0xa5, 0x69, 0xd4,
+  0x01, 0x46, 0x28, 0xbb, 0xf8, 0x55, 0x24, 0xe3, 0x98, 0xee, 0xc9, 0xc6,
+  0xf7, 0x9a, 0x6e, 0x09, 0x9d, 0xe0, 0x2a, 0x57, 0x5a, 0x6d, 0xba, 0x72,
+  0x90, 0x66, 0x8a, 0x2c, 0x79, 0xb2, 0x6a, 0x86, 0x11, 0x2c, 0xc1, 0xf4,
+  0x47, 0x6e, 0x0b, 0x72, 0xd9, 0x6b, 0x01, 0xda, 0xe8, 0x00, 0x18, 0xe7,
+  0x83, 0x79, 0x5e, 0x36, 0x49, 0x4e, 0x1f, 0xd7, 0x1f, 0x7c, 0xe3, 0x7c,
+  0x7a, 0x40, 0x0f, 0x7f, 0xb1, 0x52, 0x0a, 0x04, 0xe1, 0xd8, 0x00, 0x09,
+  0x46, 0x5c, 0x54, 0x90, 0x50, 0x0b, 0xa0, 0x8d, 0xab, 0xa4, 0xc3, 0x34,
+  0x14, 0x95, 0xeb, 0x86, 0xfc, 0xe6, 0xa4, 0x44, 0x2a, 0xa2, 0x82, 0xc9,
+  0xec, 0x19, 0x33, 0x3b, 0xf0, 0xfc, 0x5a, 0x5b, 0xb9, 0x79, 0x9f, 0x5e,
+  0xb7, 0x77, 0xc3, 0x4b, 0xea, 0x29, 0x69, 0x71, 0x8f, 0x1a, 0x88, 0x7c,
+  0x73, 0x3d, 0x76, 0x4e, 0xf2, 0x83, 0x30, 0x11, 0xe1, 0x49, 0xf6, 0x7d,
+  0x15, 0x0e, 0x8f, 0x70, 0xc1, 0xde, 0xc3, 0x3e, 0x94, 0xe8, 0x5d, 0x00,
+  0xde, 0xbf, 0xbe, 0xd1, 0xbc, 0x4d, 0x0c, 0x6b, 0x98, 0x39, 0x48, 0xe1,
+  0x4e, 0x34, 0x61, 0x42, 0xf0, 0x7c, 0x4f, 0x1b, 0x4f, 0x57, 0xc4, 0xd1,
+  0xd2, 0xd8, 0x01, 0xc0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x7f, 0xff, 0xff,
+  0x11, 0x6f, 0xa2, 0xc1, 0x08, 0xc8, 0x51, 0x0b, 0x12, 0x02, 0xa1, 0x00,
+  0x9a, 0x4d, 0x45, 0xaf, 0x38, 0xa4, 0xaa, 0x55, 0x80, 0x25, 0x49, 0x82,
+  0xa2, 0x05, 0x05, 0x52, 0x6f, 0x22, 0x70, 0x10, 0x21, 0x67, 0xe4, 0x90,
+  0x87, 0x0e, 0x8b, 0x5f, 0x59, 0x6a, 0xd9, 0x70, 0x1b, 0xc2, 0xa7, 0x1e,
+  0xe2, 0xe6, 0x8b, 0xac, 0x5b, 0x4d, 0xd6, 0x4d, 0x06, 0xb4, 0xcd, 0x18,
+  0xf2, 0xee, 0x71, 0xc1, 0x89, 0x35, 0x92, 0x33, 0x86, 0x73, 0x73, 0xbb,
+  0x76, 0x3a, 0x1c, 0xb9, 0x72, 0xcd, 0x35, 0x2e, 0xe6, 0x99, 0x4d, 0xef,
+  0x2b, 0xcf, 0x8e, 0xda, 0x67, 0xb1, 0x62, 0xd5, 0xbb, 0x1d, 0x4d, 0x6d,
+  0x96, 0xa1, 0xbc, 0xd5, 0x33, 0xb5, 0xdb, 0x43, 0xba, 0xc3, 0x90, 0xe0,
+  0x59, 0x8a, 0x6a, 0xe0, 0x45, 0x28, 0x54, 0xa8, 0xe3, 0x14, 0x68, 0x92,
+  0xa6, 0x47, 0x2a, 0x06, 0xea, 0x3f, 0x2d, 0x1b, 0x0c, 0x7e, 0x62, 0x18,
+  0xe2, 0x3b, 0x70, 0x33, 0x08, 0xd9, 0x0d, 0x50, 0xab, 0xb3, 0x33, 0xca,
+  0x26, 0xef, 0xf3, 0xc5, 0x78, 0xa1, 0x69, 0x80, 0x8e, 0x7a, 0x90, 0xc0,
+  0x8c, 0x18, 0x6e, 0x9e, 0x75, 0x3a, 0xc4, 0x31, 0xbb, 0x0d, 0x9e, 0xd8,
+  0x52, 0xcb, 0xf6, 0x1f, 0xc5, 0x86, 0x4b, 0xcf, 0x38, 0xe4, 0x14, 0xb0,
+  0x68, 0xbe, 0x0a, 0x60, 0x45, 0xf1, 0x10, 0xb0, 0xc9, 0x77, 0x3e, 0x69,
+  0x68, 0x20, 0x38, 0xa6, 0x63, 0xb3, 0x32, 0x0d, 0xc7, 0x76, 0x72, 0x40,
+  0x27, 0x22, 0x67, 0x31, 0xa4, 0x11, 0xa9, 0x7a, 0x2b, 0x46, 0xe6, 0xeb,
+  0x2b, 0x4a, 0x36, 0x98, 0xd2, 0xd2, 0xd8, 0x0d, 0x95, 0x54, 0x36, 0x3c,
+  0x2f, 0xea, 0x97, 0xb2, 0x83, 0xb8, 0xd5, 0xe8, 0xc4, 0x24, 0x39, 0x7b,
+  0x1e, 0x88, 0x93, 0xb2, 0x06, 0x45, 0xcf, 0x7e, 0xe5, 0x99, 0x52, 0x26,
+  0x37, 0x6b, 0x19, 0xea, 0xfa, 0x79, 0x7b, 0x2b, 0xa7, 0xd9, 0x00, 0x0f,
+  0x7f, 0x40, 0x0a, 0x10, 0x56, 0xa3, 0x81, 0x38, 0x76, 0x00, 0x02, 0x55,
+  0x44, 0x00, 0x00, 0x90, 0x22, 0x20, 0xc4, 0xd0, 0x6a, 0x50, 0x3d, 0xa2,
+  0x70, 0xfa, 0x38, 0x8d, 0x77, 0x99, 0x98, 0x00, 0x55, 0xf9, 0xf8, 0xe7,
+  0x42, 0x90, 0x2b, 0x8d, 0xca, 0x6b, 0xdd, 0x3a, 0xca, 0xbe, 0x62, 0xd4,
+  0x24, 0x4e, 0x8f, 0xc5, 0xfb, 0x52, 0xd0, 0xdb, 0x79, 0xee, 0x69, 0xa6,
+  0xee, 0xdd, 0x8b, 0x54, 0xef, 0xc5, 0xf8, 0xef, 0x45, 0x13, 0x3d, 0x6b,
+  0xa6, 0xee, 0x3b, 0x0b, 0x11, 0x98, 0xab, 0x94, 0x4c, 0x77, 0xab, 0xa2,
+  0xaf, 0x37, 0x6e, 0xda, 0x93, 0xed, 0x81, 0xc7, 0xcb, 0xaa, 0x75, 0xab,
+  0x8a, 0x24, 0x84, 0xc6, 0x3a, 0xd6, 0xb7, 0x39, 0xe8, 0x25, 0xe3, 0xb2,
+  0xc5, 0x9e, 0x5d, 0x16, 0x64, 0x66, 0x34, 0xdd, 0x54, 0xd3, 0x5c, 0x43,
+  0x2a, 0xf7, 0x1b, 0x93, 0xf7, 0xdc, 0x8d, 0x1e, 0xa7, 0x8b, 0x00, 0x1c,
+  0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x15, 0x6f, 0xa2, 0x41,
+  0x50, 0x82, 0x96, 0x22, 0x84, 0x1d, 0x04, 0x70, 0x2c, 0xbb, 0xaa, 0xba,
+  0xa0, 0x14, 0x5a, 0x6e, 0xc3, 0x78, 0xc9, 0xe2, 0xf0, 0xfb, 0x36, 0x31,
+  0x17, 0x82, 0xde, 0x31, 0x39, 0x01, 0xe1, 0x60, 0xd4, 0x80, 0xf4, 0x39,
+  0xf8, 0x34, 0x32, 0xbb, 0x0e, 0xce, 0x45, 0xd4, 0x2e, 0x76, 0xf1, 0x46,
+  0xaa, 0x90, 0x58, 0x77, 0x32, 0xf4, 0x56, 0x6a, 0xc9, 0x71, 0x8f, 0xa1,
+  0x43, 0xfc, 0x2c, 0xf3, 0x91, 0x92, 0xe5, 0x1a, 0x32, 0x11, 0x5f, 0xb1,
+  0xda, 0x40, 0xa1, 0x08, 0x93, 0x2f, 0xef, 0xdc, 0x63, 0x26, 0x46, 0x93,
+  0x5f, 0xb8, 0x5d, 0xbc, 0x50, 0xcc, 0x7e, 0x19, 0xf5, 0x77, 0x23, 0x4c,
+  0x98, 0xc2, 0x2f, 0x1a, 0xf3, 0xc4, 0x26, 0x1e, 0x0c, 0x6b, 0x74, 0x83,
+  0x17, 0x49, 0x25, 0x11, 0x3c, 0x17, 0x8d, 0x6c, 0x8d, 0xe7, 0x6e, 0x20,
+  0x33, 0xd4, 0x22, 0x3d, 0x24, 0xb8, 0xef, 0x42, 0x57, 0xf5, 0x9f, 0x07,
+  0x8b, 0x9c, 0x35, 0x43, 0xde, 0x9a, 0x85, 0x48, 0x97, 0x84, 0x61, 0x26,
+  0x4e, 0xd5, 0xce, 0xbd, 0xa4, 0xa7, 0x85, 0x06, 0x94, 0x3c, 0xc9, 0xa3,
+  0x62, 0x3e, 0x4a, 0xfa, 0xf2, 0x76, 0x5e, 0x77, 0x32, 0xfa, 0xab, 0x05,
+  0xe6, 0xe1, 0x79, 0xfe, 0x34, 0x88, 0x60, 0x64, 0x13, 0xda, 0x75, 0x08,
+  0x49, 0x6f, 0x16, 0x49, 0x4a, 0x59, 0x63, 0xd9, 0xd8, 0xd1, 0x4e, 0x19,
+  0x8c, 0xd6, 0x68, 0x03, 0x0b, 0xa9, 0x5a, 0x93, 0xc3, 0x68, 0xb5, 0x24,
+  0x17, 0xba, 0x82, 0x4a, 0x4e, 0x20, 0xa8, 0xf4, 0x00, 0xd8, 0x68, 0x14,
+  0xac, 0x53, 0x84, 0x5a, 0x91, 0x53, 0x44, 0xb1, 0x3e, 0x7a, 0xba, 0xab,
+  0xa7, 0xdf, 0xf1, 0x00, 0x3e, 0x7f, 0x05, 0x28, 0x26, 0x12, 0x87, 0x60,
+  0x00, 0x02, 0x52, 0x29, 0x2c, 0x18, 0x44, 0x50, 0xc5, 0x80, 0xb5, 0x38,
+  0x53, 0x97, 0x3a, 0x5a, 0x37, 0x9a, 0xb6, 0xc9, 0x47, 0x48, 0xab, 0xfd,
+  0x29, 0x9e, 0xb6, 0x45, 0xa9, 0x0b, 0x58, 0x2a, 0x9b, 0xf0, 0x60, 0x00,
+  0x99, 0x6f, 0xd9, 0xcf, 0x7a, 0xb0, 0x7c, 0xca, 0x5e, 0x49, 0x4f, 0xa4,
+  0xd0, 0x9a, 0x52, 0x8e, 0xae, 0x47, 0xe9, 0xd2, 0x49, 0xfc, 0x58, 0xd0,
+  0x14, 0xed, 0x78, 0x1a, 0x77, 0x63, 0x2f, 0x2d, 0xb4, 0x4f, 0x76, 0xbb,
+  0xac, 0xeb, 0xb3, 0x09, 0xac, 0x9f, 0x05, 0xa2, 0xdb, 0x6e, 0xf5, 0xf3,
+  0xec, 0xf8, 0x6f, 0x68, 0x00, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00,
+  0xff, 0xff, 0x11, 0x6f, 0xa4, 0xa0, 0xc9, 0x4c, 0x43, 0x08, 0x05, 0xb4,
+  0x97, 0x6d, 0xf5, 0x51, 0x69, 0x80, 0x4a, 0x08, 0xa9, 0xb1, 0x5a, 0x34,
+  0x81, 0x00, 0x4c, 0xb1, 0x65, 0x39, 0xe4, 0x48, 0x1a, 0x0c, 0x33, 0x34,
+  0x4f, 0xb1, 0x7d, 0x81, 0xd3, 0x67, 0xa3, 0xb0, 0x7a, 0x4f, 0x57, 0xca,
+  0x83, 0xdd, 0x7c, 0x97, 0x46, 0x13, 0x20, 0x25, 0x11, 0xbe, 0xb2, 0xb8,
+  0xb6, 0x77, 0xe5, 0xc4, 0xbc, 0xaf, 0x2d, 0xe1, 0x98, 0x9a, 0xef, 0xef,
+  0xd7, 0xa5, 0x97, 0xa5, 0x4f, 0x06, 0xac, 0x50, 0xa9, 0xf8, 0x0b, 0x07,
+  0xb6, 0x55, 0x20, 0xf4, 0x91, 0xae, 0x29, 0xf5, 0xd8, 0xeb, 0x4d, 0x1e,
+  0x90, 0x93, 0x49, 0xe3, 0x06, 0xee, 0x95, 0x3b, 0x4e, 0xba, 0xf2, 0x81,
+  0x0f, 0x8b, 0x14, 0x06, 0x78, 0x67, 0xa4, 0x70, 0x69, 0x62, 0xcc, 0x54,
+  0xa5, 0xf1, 0xb3, 0xab, 0x99, 0x6a, 0xcd, 0x03, 0x91, 0xba, 0x52, 0xf6,
+  0xad, 0xfc, 0x76, 0x66, 0x1e, 0xc3, 0xfe, 0xaf, 0xa2, 0xee, 0x6a, 0x23,
+  0x48, 0x70, 0x3f, 0x45, 0x37, 0x65, 0xe3, 0x43, 0x10, 0x0d, 0x19, 0x86,
+  0x58, 0xc9, 0x37, 0x18, 0x0a, 0xcd, 0xa5, 0x25, 0x8a, 0xd6, 0x06, 0xf3,
+  0x2c, 0x1c, 0xc0, 0x81, 0xdd, 0x93, 0x87, 0x54, 0x17, 0xfd, 0xc9, 0x37,
+  0x05, 0x24, 0x18, 0x28, 0x96, 0xcc, 0xe7, 0x3c, 0x07, 0x94, 0xc6, 0xb8,
+  0xc2, 0x5a, 0xee, 0x77, 0xe6, 0x52, 0xa1, 0x21, 0xed, 0x27, 0xf9, 0x3e,
+  0x67, 0x56, 0xa3, 0x2a, 0x2b, 0x94, 0x45, 0x39, 0x0b, 0x9b, 0x38, 0xd7,
+  0x40, 0xd7, 0x5e, 0x0d, 0x52, 0xd1, 0x1c, 0x56, 0x45, 0x2a, 0x82, 0xc9,
+  0x26, 0x28, 0x66, 0xb1, 0x8a, 0x6d, 0x9d, 0x14, 0x67, 0xb2, 0x80, 0x21,
+  0x79, 0x83, 0x82, 0xee, 0xde, 0xdf, 0xff, 0x7b, 0xff, 0xb9, 0xf2, 0x20,
+  0xf9, 0xfb, 0x15, 0x20, 0x58, 0x66, 0x1d, 0x80, 0x94, 0x00, 0x15, 0x75,
+  0x2a, 0x00, 0x12, 0x56, 0x02, 0x75, 0xa1, 0x36, 0x87, 0x32, 0x31, 0x48,
+  0x9a, 0xc3, 0x32, 0xf2, 0x0b, 0xc0, 0xa5, 0x9d, 0x78, 0x62, 0xae, 0x8c,
+  0xd7, 0x4a, 0xeb, 0x16, 0x6e, 0xfd, 0x65, 0x0e, 0x56, 0xbc, 0x65, 0x38,
+  0xf5, 0x6b, 0xf1, 0xb7, 0xd7, 0x0a, 0x54, 0x3a, 0xf3, 0xaa, 0x44, 0x4f,
+  0x19, 0x05, 0xec, 0xe0, 0xdd, 0xd9, 0xcf, 0x58, 0x62, 0x1b, 0x0a, 0xd8,
+  0xba, 0xbc, 0x78, 0xf0, 0xe1, 0x62, 0xe7, 0x2c, 0xba, 0x3a, 0xa8, 0xa7,
+  0x30, 0x09, 0x4b, 0xc1, 0x26, 0x50, 0x92, 0xca, 0x47, 0x1a, 0x67, 0xff,
+  0xac, 0xff, 0x7b, 0xd1, 0xb6, 0x03, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00,
+  0x07, 0xff, 0xff, 0x17, 0x73, 0x82, 0xa0, 0x49, 0x6c, 0x54, 0x08, 0x0d,
+  0x2e, 0x5b, 0xa5, 0x38, 0x2d, 0x4a, 0x05, 0x02, 0xc5, 0x50, 0x91, 0x2e,
+  0xe8, 0x7d, 0x63, 0x95, 0x1a, 0x41, 0x48, 0xf1, 0xeb, 0xe2, 0x65, 0x4d,
+  0x88, 0x2e, 0xd4, 0xd9, 0x39, 0x08, 0x2e, 0x4e, 0xd9, 0xc8, 0xff, 0x47,
+  0xe1, 0xd9, 0x86, 0xcc, 0x25, 0x39, 0x55, 0xd2, 0x3b, 0x82, 0x8d, 0x43,
+  0xe9, 0xe9, 0xa4, 0xe1, 0x6a, 0x48, 0xe6, 0x9c, 0x58, 0xd5, 0xdc, 0x51,
+  0xbd, 0xfc, 0x33, 0x2d, 0x4b, 0xae, 0xf6, 0x2f, 0xb4, 0xeb, 0xbd, 0x71,
+  0xb0, 0x70, 0xa9, 0x0a, 0xa8, 0xcf, 0xb9, 0xed, 0xfc, 0xe8, 0x8d, 0xd5,
+  0x96, 0xe2, 0xb7, 0x36, 0x9b, 0xcd, 0xd9, 0xea, 0x14, 0xa1, 0x5b, 0x00,
+  0x5b, 0x64, 0x6d, 0x72, 0x0a, 0xd3, 0x48, 0xc4, 0xb7, 0xbb, 0xcc, 0xba,
+  0xac, 0xda, 0x17, 0x89, 0x4b, 0x95, 0x57, 0x05, 0x63, 0x7e, 0x3c, 0xaa,
+  0x75, 0xb8, 0x12, 0x44, 0xba, 0xc6, 0xd9, 0x36, 0xb9, 0xfb, 0x14, 0x78,
+  0x4e, 0x85, 0x2b, 0x73, 0xfc, 0xf6, 0x25, 0xde, 0x52, 0x7b, 0x75, 0x51,
+  0xb5, 0x3f, 0xeb, 0xd4, 0x0e, 0x88, 0x22, 0x42, 0x01, 0xe9, 0xd0, 0x56,
+  0xa9, 0x09, 0x31, 0x84, 0x9d, 0x67, 0xbd, 0x87, 0x08, 0x32, 0x50, 0xb9,
+  0xb1, 0x38, 0x10, 0x10, 0xeb, 0x75, 0x40, 0x44, 0x3d, 0x29, 0xfd, 0xb4,
+  0x6b, 0xd5, 0x7a, 0x55, 0x2c, 0xe6, 0x7d, 0x10, 0x9d, 0x0c, 0x4c, 0xd0,
+  0x6b, 0x32, 0x86, 0x40, 0x05, 0xaa, 0xd3, 0x10, 0x99, 0x82, 0x18, 0x1b,
+  0xa9, 0xdf, 0x2b, 0x2a, 0x04, 0x89, 0x45, 0xe6, 0x23, 0x42, 0x92, 0xae,
+  0xa4, 0xa6, 0x53, 0xb8, 0xe5, 0x98, 0x8c, 0xb9, 0xdd, 0x9a, 0x60, 0x45,
+  0x6d, 0x08, 0x52, 0x65, 0x23, 0x19, 0x96, 0xeb, 0xb0, 0xff, 0xe8, 0x9f,
+  0xfe, 0x51, 0xa7, 0x77, 0x77, 0xcf, 0xc0, 0x08, 0x56, 0x81, 0x61, 0x98,
+  0x76, 0x00, 0x00, 0x8a, 0x25, 0x80, 0xc2, 0x44, 0xc1, 0xf9, 0x77, 0xb6,
+  0xa6, 0xf5, 0xd1, 0x86, 0xe1, 0x56, 0x80, 0xd0, 0xa2, 0xa8, 0x27, 0xf4,
+  0xac, 0x5c, 0x42, 0x32, 0x8c, 0xca, 0x7a, 0x33, 0xec, 0xf3, 0x6c, 0xd0,
+  0x2d, 0x39, 0xca, 0x66, 0x84, 0x43, 0x1d, 0x3f, 0x03, 0x2d, 0xc5, 0xa2,
+  0x3e, 0x36, 0x2f, 0xe8, 0xc3, 0x37, 0x04, 0xe2, 0x74, 0x53, 0xae, 0x2d,
+  0x4d, 0x59, 0x4b, 0x6c, 0xad, 0x09, 0xa9, 0x02, 0xfb, 0x5d, 0x56, 0xe1,
+  0x6c, 0x77, 0xe4, 0xfd, 0x9d, 0x2c, 0xa3, 0xa2, 0x02, 0xe1, 0xeb, 0x80,
+  0x6e, 0x53, 0x53, 0xf3, 0xfb, 0xa7, 0xff, 0xfa, 0xfc, 0x9f, 0xfb, 0x10,
+  0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x15, 0x73, 0x82,
+  0xaa, 0x08, 0xac, 0x43, 0x08, 0x0b, 0xb3, 0x4b, 0x89, 0xc5, 0x48, 0xab,
+  0xac, 0x00, 0x84, 0x4c, 0xd8, 0x26, 0x38, 0x17, 0x4c, 0x0b, 0xa4, 0x16,
+  0xe4, 0x9a, 0x20, 0x9f, 0x67, 0xc1, 0xcf, 0x51, 0x8b, 0xb2, 0xae, 0x82,
+  0x7a, 0x96, 0x46, 0xc4, 0x78, 0x7e, 0x1f, 0x28, 0x87, 0x8c, 0xb7, 0xb4,
+  0xae, 0x3f, 0xc4, 0x2d, 0x74, 0xe2, 0xb6, 0xc7, 0xec, 0x7e, 0x48, 0x98,
+  0x78, 0xaf, 0x46, 0x38, 0xd3, 0xa1, 0xaf, 0x5d, 0x79, 0x8e, 0x3b, 0x91,
+  0x28, 0x45, 0x37, 0x76, 0x3e, 0x8b, 0xa3, 0x29, 0xc4, 0xad, 0xa7, 0x6d,
+  0xe4, 0x89, 0xb1, 0x10, 0x68, 0x9b, 0xdd, 0xb3, 0xcc, 0x69, 0xfd, 0x0d,
+  0x4e, 0xb6, 0xd9, 0x0f, 0xef, 0x59, 0x2c, 0x34, 0xb7, 0xa8, 0xb2, 0xce,
+  0x6d, 0xcd, 0x0d, 0x94, 0x58, 0xf8, 0xb7, 0x95, 0xcb, 0xba, 0x54, 0x55,
+  0x25, 0x9f, 0x51, 0x20, 0xcd, 0xd4, 0x70, 0x8b, 0xc5, 0xfd, 0x64, 0xc4,
+  0x4e, 0xd7, 0xa3, 0xb5, 0xd9, 0xd7, 0xc2, 0x65, 0x29, 0xe1, 0x59, 0x1a,
+  0xd9, 0x69, 0xb2, 0x2e, 0x58, 0x4b, 0x17, 0x4c, 0x37, 0x4b, 0x46, 0xd6,
+  0xad, 0xae, 0x82, 0xc9, 0x40, 0x52, 0x97, 0x48, 0x64, 0x95, 0x95, 0x50,
+  0x0d, 0x42, 0x18, 0x6e, 0xb1, 0x78, 0x73, 0x24, 0xce, 0xb0, 0x10, 0x0c,
+  0x14, 0xc0, 0x5c, 0xaa, 0x3d, 0xb8, 0xae, 0x54, 0x19, 0x53, 0x67, 0xed,
+  0x1c, 0x29, 0x17, 0x8c, 0x6d, 0x0c, 0x8a, 0x2d, 0x12, 0x14, 0x3c, 0xb2,
+  0xb1, 0x33, 0x95, 0x4a, 0x08, 0xb6, 0xd6, 0xce, 0xe2, 0x11, 0x7f, 0x0b,
+  0x16, 0x86, 0xc7, 0x5b, 0xea, 0xaf, 0x05, 0xfd, 0xe5, 0x49, 0x3e, 0x13,
+  0x4b, 0xde, 0xa9, 0x95, 0x0a, 0x73, 0xd2, 0x27, 0x12, 0x47, 0x37, 0xc0,
+  0xe2, 0x5f, 0xeb, 0x36, 0x3e, 0x05, 0xc1, 0xf7, 0xf0, 0x2b, 0x21, 0xb0,
+  0xcc, 0x3b, 0x00, 0x00, 0x2a, 0x0b, 0x00, 0x02, 0xb5, 0xc8, 0xe1, 0x39,
+  0x30, 0xfb, 0x91, 0x85, 0x8b, 0xa3, 0xbe, 0x8e, 0xf6, 0x20, 0x77, 0xa6,
+  0x76, 0xf2, 0x62, 0x42, 0x2d, 0x76, 0x9d, 0x80, 0x5e, 0xb0, 0x6f, 0xd8,
+  0xbd, 0x2b, 0xc8, 0x0e, 0x96, 0xbd, 0x04, 0x69, 0xf2, 0xd4, 0x90, 0x82,
+  0x17, 0x8b, 0xed, 0x39, 0x05, 0xfb, 0x6d, 0xd2, 0x81, 0xd3, 0xb7, 0xe1,
+  0xb5, 0x29, 0x80, 0xc2, 0xd9, 0x28, 0x2b, 0x51, 0x40, 0xac, 0x24, 0x53,
+  0x79, 0xa0, 0x89, 0x22, 0xa7, 0x34, 0x52, 0xf0, 0xd5, 0xf7, 0xca, 0x26,
+  0xd6, 0xfc, 0x66, 0xcb, 0xf1, 0xfa, 0xc2, 0xec, 0x76, 0xfe, 0xe7, 0xfa,
+  0x20, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x01, 0xff, 0xff, 0x19, 0x6f,
+  0xa1, 0xc1, 0xd0, 0x44, 0x45, 0x09, 0x15, 0x88, 0x61, 0x04, 0x96, 0x70,
+  0x95, 0x73, 0x53, 0x38, 0xab, 0x14, 0x00, 0x10, 0xc1, 0x82, 0x92, 0x5c,
+  0x77, 0x31, 0x73, 0x06, 0x4e, 0x11, 0x17, 0xb2, 0xcf, 0x37, 0xe7, 0x30,
+  0x30, 0x7e, 0x02, 0xf5, 0xe2, 0x37, 0xbe, 0x33, 0xed, 0x3f, 0x1a, 0xb5,
+  0xb2, 0x6a, 0x40, 0x79, 0x84, 0xba, 0x4b, 0x6e, 0xf3, 0xda, 0xf6, 0x0b,
+  0x5e, 0xaf, 0xcc, 0x38, 0xe1, 0xb8, 0xee, 0xab, 0xe0, 0x0f, 0xe5, 0x2a,
+  0x4b, 0x45, 0x4b, 0x23, 0x53, 0x80, 0xce, 0x99, 0xab, 0xbe, 0x26, 0xea,
+  0x39, 0x8b, 0x37, 0xbc, 0x6a, 0x4e, 0x1b, 0x23, 0x00, 0xcf, 0x76, 0x5f,
+  0x14, 0x66, 0xeb, 0xf8, 0x2f, 0xec, 0xc8, 0x9d, 0x23, 0x0c, 0x7a, 0xf2,
+  0xd7, 0x6f, 0x42, 0x7f, 0x8e, 0x7c, 0xdb, 0x18, 0x9e, 0x36, 0xb2, 0x38,
+  0xae, 0x67, 0x00, 0x74, 0x0b, 0x64, 0x8c, 0xd0, 0x63, 0xd1, 0x2e, 0x75,
+  0xb9, 0x45, 0x01, 0xf8, 0xe0, 0x33, 0xcb, 0x2e, 0x93, 0x63, 0xa1, 0x14,
+  0x89, 0x19, 0x3e, 0xaf, 0x36, 0xc3, 0xf9, 0x02, 0xf3, 0xe0, 0x95, 0x77,
+  0xab, 0x99, 0xa6, 0xc7, 0x54, 0xe0, 0x58, 0xb8, 0xa0, 0x83, 0x22, 0xd0,
+  0xa5, 0x82, 0x5b, 0x28, 0x44, 0xaf, 0xa2, 0xc9, 0xff, 0x56, 0x73, 0xa9,
+  0x14, 0xcc, 0x3d, 0x45, 0x80, 0xe3, 0xa4, 0x6d, 0x36, 0x26, 0x17, 0xa8,
+  0x05, 0x52, 0xa3, 0xf4, 0xa6, 0x74, 0xdc, 0xa5, 0x1c, 0x74, 0x83, 0x20,
+  0x21, 0x33, 0x8a, 0x1e, 0x20, 0x16, 0x19, 0x89, 0x26, 0x05, 0xca, 0xeb,
+  0x6c, 0x6d, 0x52, 0xf5, 0x1b, 0x5d, 0xcf, 0xaa, 0x48, 0x96, 0x8b, 0x12,
+  0x6a, 0x80, 0xae, 0xee, 0xb2, 0x97, 0x53, 0x64, 0x10, 0xc2, 0x1a, 0xc9,
+  0x9a, 0xac, 0xfe, 0x17, 0xe0, 0x3a, 0x9e, 0xe0, 0x3f, 0x7e, 0x85, 0x68,
+  0x43, 0x0e, 0xc0, 0x02, 0x51, 0x2a, 0xa0, 0x93, 0x40, 0x28, 0x32, 0x06,
+  0xd6, 0x85, 0xa9, 0x41, 0x41, 0x21, 0x1b, 0x57, 0x7a, 0xf2, 0x90, 0xa3,
+  0x3a, 0x8d, 0x51, 0xab, 0x52, 0xb0, 0x78, 0x29, 0xd8, 0x4e, 0x87, 0x5c,
+  0x98, 0x69, 0x55, 0x96, 0xcd, 0x58, 0x96, 0x33, 0x29, 0xfb, 0x37, 0xd3,
+  0x91, 0x8d, 0xe2, 0xa6, 0xf7, 0x1e, 0x28, 0xb8, 0xa7, 0x1a, 0xb7, 0x3d,
+  0x23, 0xf7, 0xef, 0x8a, 0x82, 0xc7, 0x16, 0xc7, 0xc4, 0x11, 0xd4, 0x06,
+  0x53, 0xda, 0x93, 0x2f, 0x9b, 0xf6, 0x4a, 0x4e, 0x2c, 0x2f, 0x4b, 0xe3,
+  0x3f, 0x3f, 0x50, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x3f, 0xff, 0xff,
+  0x1d, 0x73, 0x82, 0xa0, 0xc9, 0x28, 0x26, 0x1a, 0x84, 0x2e, 0xd3, 0xab,
+  0x21, 0x1c, 0x25, 0xd4, 0x9b, 0x00, 0x05, 0xab, 0x07, 0xdc, 0xc9, 0x42,
+  0x2d, 0x40, 0x1a, 0x04, 0x92, 0xfa, 0x39, 0x7e, 0x55, 0x13, 0x8b, 0x43,
+  0x58, 0x83, 0xe1, 0xd8, 0x20, 0xec, 0x0f, 0xd4, 0xc9, 0x5d, 0x2b, 0xd2,
+  0x3f, 0x94, 0x27, 0x38, 0xd9, 0xd5, 0x12, 0x0e, 0xb7, 0xed, 0x5b, 0x25,
+  0xf5, 0xab, 0xa2, 0x5b, 0xa3, 0xbd, 0xa3, 0x1c, 0xe5, 0x91, 0xdb, 0xf8,
+  0x5b, 0xb6, 0x8c, 0x9b, 0xa6, 0x52, 0x39, 0xa3, 0x96, 0x28, 0x64, 0xc5,
+  0x65, 0x68, 0x0d, 0x5a, 0x32, 0x30, 0xc9, 0x34, 0xc0, 0x8e, 0x85, 0xab,
+  0xee, 0xe7, 0xf0, 0xc8, 0x91, 0xc7, 0x03, 0x79, 0xbd, 0xfb, 0x3b, 0x72,
+  0xb8, 0xd0, 0xd2, 0x4f, 0xde, 0xe9, 0x5d, 0xc9, 0xaa, 0x7d, 0xb9, 0x83,
+  0x5e, 0xa2, 0x51, 0x15, 0x6d, 0xea, 0x6b, 0xb2, 0x3b, 0xbe, 0xc6, 0xbf,
+  0x6b, 0x54, 0xd6, 0xd3, 0x22, 0x48, 0x11, 0xd6, 0x3b, 0xd6, 0x1a, 0xeb,
+  0xbc, 0xc3, 0x9b, 0x07, 0x05, 0xd3, 0xcc, 0x78, 0x66, 0x30, 0x5e, 0x6b,
+  0xc0, 0x18, 0x18, 0xcd, 0xde, 0x26, 0x1b, 0x56, 0x17, 0xee, 0x0f, 0x19,
+  0x1c, 0xe7, 0xa5, 0xcb, 0x18, 0x47, 0x61, 0xb0, 0x65, 0xba, 0x4e, 0x4e,
+  0x21, 0x5f, 0x7e, 0xf2, 0x6e, 0xaf, 0x30, 0x13, 0x2f, 0x90, 0xee, 0xb1,
+  0x99, 0xcd, 0x6a, 0x0f, 0xce, 0x0d, 0xd4, 0x80, 0x10, 0x02, 0xab, 0xc6,
+  0x58, 0x7b, 0xba, 0x32, 0x86, 0x79, 0x2c, 0x55, 0xf3, 0xfe, 0x99, 0x03,
+  0x79, 0x7a, 0x48, 0x57, 0x7c, 0xc7, 0xa0, 0x52, 0xed, 0x2f, 0x87, 0x9a,
+  0xc6, 0xf3, 0x0d, 0xa5, 0x2c, 0xd9, 0xc9, 0x9f, 0xb9, 0xff, 0x58, 0x87,
+  0x66, 0x22, 0x21, 0x32, 0x48, 0x3a, 0x3e, 0x9a, 0x69, 0x95, 0xae, 0xd7,
+  0x5c, 0xe3, 0x97, 0x4f, 0x68, 0x01, 0xef, 0xea, 0x83, 0x16, 0xb1, 0x1c,
+  0x3b, 0x00, 0x00, 0xa8, 0xa0, 0x00, 0x10, 0x8a, 0x17, 0xa3, 0x62, 0xcc,
+  0x8b, 0xf2, 0x6d, 0x27, 0xc9, 0xc9, 0x40, 0x2f, 0x2b, 0x27, 0xc8, 0xba,
+  0x32, 0x90, 0x1b, 0x96, 0x8a, 0xd8, 0x6c, 0xa5, 0xca, 0x2f, 0x7a, 0x44,
+  0x1d, 0x93, 0x9a, 0x4a, 0x8d, 0x0d, 0x6e, 0x71, 0x92, 0xc5, 0x3c, 0x1a,
+  0x89, 0xfa, 0xa1, 0x08, 0xdf, 0x76, 0x8d, 0x59, 0xb4, 0x7d, 0x83, 0x1a,
+  0x39, 0x6d, 0x9f, 0xd7, 0xbb, 0xf6, 0x41, 0xa6, 0x04, 0x26, 0x71, 0x38,
+  0x5f, 0x3d, 0x46, 0x33, 0xb9, 0x3c, 0xc2, 0x5b, 0x20, 0xcc, 0xec, 0xfc,
+  0x53, 0x5b, 0x59, 0xa8, 0xa6, 0xc7, 0xc9, 0x26, 0x2f, 0x76, 0x0b, 0x45,
+  0x92, 0xc9, 0xfc, 0xa6, 0x42, 0x19, 0x74, 0xa6, 0x25, 0x3e, 0xe1, 0xbf,
+  0x67, 0x6f, 0x6b, 0xe8, 0x6b, 0x5b, 0x4e, 0x33, 0x80, 0x0e, 0x21, 0x1a,
+  0x88, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x19, 0x73, 0x82, 0x30, 0xd0, 0x66,
+  0x22, 0x32, 0x05, 0x86, 0xa1, 0x05, 0x69, 0x4b, 0xf8, 0x14, 0xe1, 0x68,
+  0x28, 0x00, 0x22, 0x04, 0xfa, 0xb9, 0xfc, 0xdc, 0xef, 0xf9, 0xfc, 0x1d,
+  0xad, 0x64, 0xa1, 0x1b, 0xc0, 0x36, 0x45, 0x1f, 0x4d, 0xcb, 0x62, 0xa7,
+  0x73, 0xa0, 0x2c, 0x1f, 0x84, 0xd5, 0x94, 0xef, 0x74, 0x6a, 0x1c, 0xe5,
+  0xcc, 0xfb, 0x0c, 0x59, 0xb2, 0xe8, 0x05, 0x0a, 0x0a, 0x89, 0x9e, 0x83,
+  0xb1, 0x65, 0x32, 0x28, 0x53, 0x1a, 0x41, 0x49, 0xab, 0xb8, 0xac, 0x45,
+  0xcd, 0xbf, 0x99, 0xa6, 0x2c, 0xbd, 0x48, 0xe2, 0xc6, 0x26, 0x5c, 0x03,
+  0xb4, 0xa7, 0x73, 0xb5, 0xee, 0xca, 0x6b, 0x9c, 0xe1, 0x6c, 0x4a, 0x93,
+  0x4a, 0x82, 0x93, 0xb2, 0x66, 0xd8, 0x66, 0x0c, 0x86, 0xde, 0x6b, 0x37,
+  0x17, 0x4e, 0x94, 0x71, 0xa7, 0x1e, 0xef, 0x53, 0x86, 0x65, 0x4d, 0x50,
+  0x97, 0xaa, 0x6e, 0x4f, 0x5d, 0xbc, 0x1a, 0x77, 0xb6, 0xda, 0x31, 0x4a,
+  0x1d, 0xa7, 0x9e, 0xd0, 0x22, 0x38, 0x58, 0x68, 0x7a, 0x01, 0x15, 0x95,
+  0x5c, 0xc5, 0x9d, 0xd2, 0xae, 0xdb, 0xb1, 0x54, 0x9e, 0xcb, 0x2e, 0x23,
+  0xb5, 0x96, 0xd5, 0xd2, 0x5a, 0x91, 0xea, 0xcf, 0x23, 0x46, 0x85, 0xeb,
+  0xd1, 0xbc, 0x67, 0xbf, 0x14, 0x7a, 0x9f, 0xac, 0xa5, 0x31, 0x80, 0x3e,
+  0x10, 0x7c, 0x76, 0x21, 0xe9, 0x55, 0x02, 0x0d, 0x22, 0xd4, 0x80, 0xac,
+  0x00, 0x8b, 0x1a, 0x92, 0x84, 0xe1, 0xb5, 0x39, 0x8c, 0xc9, 0x6f, 0x00,
+  0x7f, 0x61, 0xbe, 0xb6, 0x1c, 0xc2, 0x0d, 0xf4, 0x02, 0xac, 0xcc, 0x00,
+  0x5c, 0x18, 0x2a, 0x60, 0x42, 0x7b, 0x2c, 0x11, 0xc7, 0xf0, 0x44, 0x56,
+  0x37, 0x3e, 0xa9, 0xf9, 0x51, 0xc3, 0x66, 0xb9, 0x83, 0xb7, 0x1e, 0x9f,
+  0x9a, 0x24, 0x00, 0xfb, 0xfc, 0x14, 0xa0, 0x58, 0x66, 0x1d, 0x80, 0x00,
+  0x54, 0xa9, 0x2a, 0x54, 0x99, 0x61, 0x82, 0xc0, 0x2b, 0x1a, 0x7e, 0xba,
+  0xa9, 0x7b, 0x44, 0x5d, 0x15, 0x21, 0xae, 0x4b, 0x41, 0x25, 0xb4, 0x48,
+  0x70, 0xe8, 0x72, 0x99, 0x7b, 0x2a, 0x41, 0x72, 0x49, 0x3c, 0x32, 0xb8,
+  0x87, 0x80, 0x5a, 0x48, 0xe3, 0x0c, 0x74, 0xb7, 0xf2, 0x06, 0xc9, 0x44,
+  0x3d, 0x2c, 0xd5, 0x8d, 0x06, 0x38, 0xc4, 0x53, 0x42, 0xa5, 0xd7, 0xda,
+  0x2e, 0x16, 0x45, 0x8a, 0xf2, 0xb0, 0xd2, 0x97, 0x64, 0x66, 0x18, 0xa3,
+  0xc0, 0x6a, 0x09, 0xc3, 0xef, 0xdd, 0x5c, 0x3c, 0x80, 0xe0, 0x21, 0x1a,
+  0x88, 0x00, 0x00, 0x00, 0xff, 0xff, 0x19, 0x6f, 0xa4, 0xa1, 0x09, 0x2c,
+  0x43, 0x09, 0x1c, 0xf0, 0x54, 0xea, 0x5a, 0xd2, 0xda, 0x54, 0x94, 0x28,
+  0x10, 0x25, 0x60, 0xdd, 0x35, 0x84, 0x9f, 0xbf, 0xe2, 0xd7, 0x35, 0x57,
+  0x2b, 0x9c, 0x8c, 0x35, 0x5e, 0x53, 0xd4, 0xb2, 0x22, 0x20, 0x0e, 0x29,
+  0xd5, 0x75, 0xb8, 0xff, 0x07, 0xf0, 0xaf, 0x7c, 0x0d, 0xb3, 0xcb, 0x5e,
+  0x7d, 0xc3, 0xda, 0x73, 0xe3, 0x93, 0xc8, 0x79, 0xbf, 0xd8, 0x66, 0x29,
+  0x1a, 0xff, 0xa4, 0xd2, 0xc7, 0xd7, 0xd7, 0xe5, 0xac, 0xd5, 0xbd, 0xe6,
+  0x7c, 0xaf, 0x15, 0xf7, 0x93, 0xb7, 0x28, 0x2e, 0xcf, 0x01, 0x43, 0x26,
+  0xa3, 0x8e, 0xf0, 0x38, 0xaa, 0xdf, 0xc4, 0x24, 0x1e, 0x72, 0xfd, 0x8b,
+  0x25, 0x20, 0x81, 0x7f, 0x3a, 0xc2, 0xaf, 0x32, 0x30, 0xb1, 0x13, 0x93,
+  0x49, 0x1b, 0x7b, 0x8a, 0x61, 0x0b, 0x28, 0xa4, 0x49, 0x22, 0x1d, 0xa4,
+  0x3d, 0x48, 0xd3, 0x7a, 0xd3, 0x20, 0xaf, 0x84, 0x33, 0xa0, 0x37, 0x9f,
+  0x44, 0x4e, 0xb3, 0xd4, 0x7e, 0xed, 0x62, 0x8b, 0xa9, 0xd0, 0x7f, 0xb7,
+  0xc8, 0xaf, 0xa0, 0xb6, 0xc9, 0x05, 0xe0, 0x69, 0x3d, 0x40, 0x0e, 0x82,
+  0x41, 0x50, 0xc2, 0x37, 0x07, 0x30, 0xa9, 0xff, 0x47, 0xd6, 0x75, 0x33,
+  0xf7, 0x67, 0x5c, 0x37, 0x18, 0x0a, 0xde, 0x84, 0x99, 0x7d, 0x29, 0x08,
+  0x33, 0xc0, 0xcf, 0x09, 0xbf, 0x3a, 0x22, 0x3b, 0x5a, 0xf3, 0xfa, 0x03,
+  0xde, 0xc7, 0xa4, 0xd5, 0x3f, 0x34, 0xbd, 0x6a, 0xfe, 0xfe, 0xbb, 0x35,
+  0x10, 0x58, 0x04, 0x25, 0x00, 0x22, 0xce, 0x6d, 0xb5, 0xc0, 0x23, 0xbe,
+  0x94, 0xdf, 0xa8, 0x0a, 0xca, 0x15, 0x2a, 0x27, 0xe7, 0xde, 0x99, 0x61,
+  0x31, 0x35, 0xe9, 0xda, 0x15, 0xd8, 0xf8, 0x31, 0xd8, 0x5c, 0xf2, 0xc0,
+  0xb6, 0xcb, 0x18, 0x86, 0x19, 0x3c, 0xa7, 0xc7, 0xbd, 0x00, 0x3f, 0x7e,
+  0xc5, 0x04, 0x36, 0x18, 0x87, 0x60, 0x00, 0x04, 0xa1, 0x6c, 0xd0, 0x01,
+  0x0e, 0x42, 0x3d, 0x40, 0x66, 0x95, 0xd4, 0xb8, 0x11, 0xb1, 0xbf, 0xbb,
+  0xa2, 0xcc, 0x1c, 0xab, 0xd1, 0x2b, 0xa1, 0xf3, 0x13, 0x22, 0xcd, 0xdb,
+  0x14, 0x77, 0x5d, 0x7d, 0x8e, 0x81, 0x7f, 0x41, 0xbc, 0x61, 0xe5, 0xfe,
+  0x39, 0xd7, 0xcf, 0x0b, 0xbe, 0x4f, 0x72, 0xfa, 0x8f, 0xf1, 0xba, 0x59,
+  0xde, 0xca, 0xbc, 0xb3, 0x2b, 0x7a, 0xa7, 0x8a, 0xad, 0x92, 0x54, 0x48,
+  0x4b, 0xb7, 0xf8, 0x35, 0x71, 0xaf, 0x67, 0x76, 0xcc, 0x2f, 0x7b, 0x3b,
+  0xa7, 0x07, 0x0d, 0x94, 0x49, 0x5c, 0xe9, 0x8f, 0xf3, 0xae, 0x27, 0xfd,
+  0xbf, 0x86, 0x10, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x01, 0xff, 0xff,
+  0x19, 0x6f, 0xa4, 0xb0, 0x88, 0xe8, 0x46, 0x21, 0x84, 0x04, 0xaf, 0x26,
+  0x70, 0xa9, 0xd3, 0xa5, 0x54, 0x40, 0xa1, 0x29, 0x6a, 0x9b, 0x16, 0x81,
+  0x2e, 0xa5, 0xcb, 0x81, 0x20, 0x94, 0xe7, 0x65, 0x5d, 0xc1, 0x9d, 0x11,
+  0x72, 0x7d, 0x13, 0x9a, 0x25, 0x68, 0x0b, 0x91, 0xb8, 0x76, 0x7b, 0x68,
+  0xb6, 0xe9, 0x12, 0x01, 0x3c, 0xce, 0x3e, 0x35, 0xc5, 0x7c, 0x8b, 0x55,
+  0xd8, 0x1a, 0x42, 0x99, 0xe1, 0xb1, 0xc3, 0x85, 0xdf, 0x20, 0xde, 0x69,
+  0x5c, 0xb1, 0xd6, 0x7a, 0x97, 0x02, 0xae, 0xc6, 0xc3, 0x4e, 0xfd, 0xac,
+  0x59, 0x4c, 0xc0, 0x62, 0x39, 0x5e, 0xdd, 0x20, 0xde, 0xdf, 0x5f, 0x61,
+  0xd5, 0xd6, 0xbe, 0x1a, 0x15, 0x2e, 0x8a, 0xc0, 0xe9, 0xa4, 0xf8, 0xac,
+  0x9a, 0x5a, 0x8d, 0x42, 0x3b, 0x1e, 0xd0, 0xc1, 0x5b, 0xa2, 0x94, 0x5c,
+  0xac, 0x52, 0x2f, 0x31, 0x85, 0x4d, 0x13, 0x45, 0x07, 0x39, 0x94, 0x84,
+  0x26, 0x9d, 0xfc, 0x67, 0x18, 0x1c, 0xda, 0x52, 0x6b, 0x89, 0x5f, 0xa1,
+  0x52, 0x0a, 0x2f, 0x9c, 0xa9, 0x55, 0x5d, 0xff, 0x29, 0x60, 0x2b, 0x28,
+  0xf5, 0x2b, 0x60, 0x72, 0x9c, 0x22, 0xae, 0x6a, 0xe8, 0xa1, 0x82, 0xba,
+  0x2b, 0x6b, 0xfd, 0xc0, 0x3c, 0xca, 0x94, 0xa1, 0xf5, 0x73, 0xef, 0xec,
+  0x8f, 0x57, 0x28, 0xbd, 0xab, 0x0b, 0x3f, 0x33, 0x03, 0xf7, 0x78, 0x0c,
+  0xa1, 0x15, 0xc4, 0x31, 0x46, 0xd8, 0x82, 0x2e, 0x1f, 0x0d, 0x3b, 0x1b,
+  0x2c, 0xe3, 0x51, 0xf3, 0xf5, 0xdd, 0x76, 0xc5, 0xa3, 0xad, 0x68, 0xf9,
+  0x86, 0xe8, 0x0a, 0xa4, 0x0b, 0xe5, 0xa8, 0x1b, 0x35, 0xa2, 0x7b, 0xad,
+  0xad, 0x86, 0x95, 0x9a, 0x56, 0xe1, 0xd8, 0x12, 0xf3, 0xed, 0x4c, 0xf4,
+  0x61, 0x65, 0x36, 0x18, 0x15, 0xd3, 0xac, 0xb4, 0x41, 0xae, 0x49, 0x4f,
+  0x85, 0x37, 0x26, 0x43, 0x4d, 0x9e, 0x69, 0xf2, 0xfe, 0xf5, 0xd3, 0xbf,
+  0xc1, 0xe5, 0x81, 0xff, 0xf4, 0x03, 0x14, 0x20, 0x58, 0x66, 0x1d, 0x80,
+  0x00, 0x09, 0x48, 0x70, 0x60, 0x41, 0xb0, 0xbd, 0x55, 0x2a, 0xb1, 0x29,
+  0x7a, 0xbf, 0xcb, 0xbc, 0xab, 0xb4, 0x0e, 0x8a, 0x50, 0x94, 0x38, 0x0c,
+  0xf0, 0xb1, 0x7c, 0x32, 0xda, 0x00, 0x29, 0xad, 0x5e, 0x62, 0x4b, 0x75,
+  0x8e, 0x5d, 0x52, 0xf3, 0xb7, 0x03, 0xa2, 0x00, 0x0f, 0x4a, 0xa8, 0x5c,
+  0xaa, 0x1a, 0xac, 0x1b, 0x85, 0x27, 0x59, 0x3b, 0x8a, 0xaa, 0x00, 0x30,
+  0x21, 0x32, 0xae, 0x51, 0x4a, 0x06, 0x4b, 0xa8, 0xd0, 0xf4, 0x7d, 0xcf,
+  0xb9, 0x69, 0x87, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x3f, 0xff, 0x25,
+  0x73, 0x83, 0x21, 0x48, 0x88, 0x46, 0x19, 0x85, 0x04, 0xe9, 0x67, 0x4d,
+  0x0b, 0x5a, 0xea, 0x4c, 0x80, 0x05, 0x59, 0x43, 0x4b, 0x60, 0xe0, 0xf6,
+  0x4e, 0xb8, 0xae, 0x89, 0xf8, 0x4e, 0x25, 0x51, 0x14, 0xec, 0x46, 0x9f,
+  0xb8, 0x77, 0xad, 0x94, 0x49, 0x03, 0xb0, 0x7e, 0xd1, 0xd7, 0x5d, 0x47,
+  0x28, 0x86, 0x93, 0xef, 0xd7, 0x0d, 0xb7, 0xa1, 0x74, 0x6c, 0x13, 0xce,
+  0x24, 0x27, 0xf6, 0xec, 0x45, 0x0e, 0xb0, 0x62, 0x51, 0x8f, 0xc1, 0x50,
+  0xab, 0xdc, 0x92, 0x06, 0x46, 0xc5, 0xe1, 0xf4, 0xad, 0x39, 0x6d, 0xe8,
+  0xd5, 0x28, 0x05, 0xf3, 0x49, 0xc1, 0x63, 0x0a, 0xfe, 0x23, 0x78, 0x26,
+  0x5b, 0x6f, 0xa5, 0xa8, 0x92, 0xec, 0x74, 0xe0, 0x41, 0xf6, 0xb5, 0x09,
+  0x23, 0x3c, 0xdd, 0x17, 0x99, 0xa3, 0xad, 0xd3, 0x75, 0x38, 0x5b, 0xe5,
+  0x79, 0xda, 0x0e, 0xcb, 0x1a, 0xcf, 0xeb, 0x9f, 0x24, 0x45, 0xa5, 0xc5,
+  0x45, 0xe9, 0x39, 0x64, 0x5c, 0xe5, 0x0d, 0xe4, 0x88, 0x3f, 0xe5, 0x00,
+  0x2c, 0xfb, 0x43, 0x15, 0xa8, 0x01, 0x8b, 0xe5, 0x4a, 0xe3, 0x76, 0xdf,
+  0x1f, 0xe4, 0xea, 0xdf, 0x81, 0x06, 0x67, 0x65, 0x85, 0x4e, 0x9f, 0xf0,
+  0xea, 0x36, 0x4a, 0x05, 0x96, 0x72, 0xf3, 0x49, 0x2e, 0xed, 0x3f, 0x36,
+  0xd0, 0xfe, 0xf5, 0x62, 0xb4, 0xef, 0x74, 0x7f, 0xb7, 0x4a, 0x92, 0x35,
+  0x47, 0xfb, 0x4e, 0x43, 0x91, 0xec, 0xa8, 0xf8, 0xdc, 0xb7, 0xd9, 0x6d,
+  0x3a, 0x37, 0x27, 0x7f, 0x78, 0x39, 0x60, 0x9a, 0x28, 0x96, 0x23, 0xd8,
+  0xb2, 0x96, 0x0a, 0x80, 0x28, 0x52, 0x70, 0x3e, 0x66, 0x2d, 0xd4, 0x64,
+  0xa2, 0xbe, 0xb6, 0xa8, 0x5a, 0xdd, 0x38, 0x55, 0x9b, 0xef, 0x49, 0x27,
+  0xed, 0xcd, 0xc9, 0x52, 0x82, 0x8d, 0x87, 0x13, 0x75, 0xd5, 0x4d, 0x17,
+  0x51, 0x26, 0x53, 0xe5, 0x3b, 0xd1, 0x2f, 0xd2, 0xbf, 0xfd, 0xbf, 0xdd,
+  0x3c, 0xd0, 0x7d, 0xfe, 0x8a, 0x10, 0x8a, 0x1d, 0x80, 0x09, 0x41, 0x31,
+  0x78, 0x89, 0x97, 0x61, 0x80, 0x02, 0x34, 0xdb, 0xb3, 0x43, 0x2a, 0x09,
+  0x58, 0x8c, 0xc9, 0x15, 0xad, 0x16, 0x31, 0x0f, 0x41, 0x68, 0x2a, 0x02,
+  0xba, 0x78, 0x55, 0xc2, 0x49, 0x54, 0x42, 0x3d, 0x2d, 0x76, 0xc5, 0xe6,
+  0x08, 0x2c, 0xb2, 0x71, 0x43, 0xb1, 0xfc, 0x77, 0xac, 0x6d, 0x7e, 0x4e,
+  0x11, 0x57, 0xc6, 0xd4, 0xdd, 0x28, 0x56, 0x92, 0x07, 0xec, 0xee, 0x8f,
+  0x0c, 0xe5, 0x02, 0x11, 0x9d, 0xce, 0x67, 0xdd, 0xcf, 0xaa, 0x00, 0x1c,
+  0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x19, 0x6f, 0xa2, 0xc1,
+  0x58, 0x64, 0x44, 0x33, 0x0d, 0x42, 0x07, 0x1b, 0x97, 0x66, 0x95, 0xc1,
+  0xab, 0xa9, 0x2a, 0x14, 0x00, 0x95, 0x03, 0x3f, 0xd4, 0xc8, 0xb1, 0x9c,
+  0x4a, 0x5b, 0x36, 0x66, 0x3c, 0x21, 0x09, 0xe8, 0xed, 0x9e, 0xac, 0xd8,
+  0xda, 0x9b, 0x45, 0xd9, 0x7e, 0x16, 0xce, 0x0c, 0xb2, 0x16, 0xc4, 0xca,
+  0x0b, 0x30, 0x19, 0x17, 0x34, 0xe5, 0xed, 0xdf, 0x7c, 0x76, 0x5f, 0x34,
+  0x66, 0xa8, 0x94, 0x01, 0x42, 0xe6, 0xa4, 0x6f, 0x9c, 0x2d, 0xfc, 0x8f,
+  0xe7, 0xa8, 0x13, 0x2b, 0x28, 0xc8, 0x72, 0x63, 0x69, 0xab, 0xb9, 0x0b,
+  0x24, 0xf6, 0x7d, 0x43, 0x21, 0x84, 0xae, 0x54, 0x35, 0x5c, 0xfc, 0xc0,
+  0x1a, 0x72, 0x59, 0x48, 0x8c, 0xd5, 0x36, 0x51, 0xd0, 0x9d, 0x4c, 0x4f,
+  0x5a, 0xda, 0xd5, 0x4b, 0x45, 0x75, 0x01, 0x11, 0x1a, 0x78, 0xed, 0xed,
+  0x3b, 0xa5, 0xab, 0x81, 0x4b, 0x62, 0xfc, 0x8a, 0x5b, 0xac, 0x45, 0x0f,
+  0x44, 0x3e, 0x36, 0x4a, 0x4c, 0x09, 0x08, 0xce, 0xf7, 0xea, 0x1c, 0x2b,
+  0xb3, 0x20, 0xa4, 0xc4, 0xe5, 0xb5, 0x6d, 0x8b, 0x2a, 0xac, 0xac, 0x25,
+  0x53, 0x3b, 0x2c, 0x9a, 0x88, 0xcd, 0xc0, 0x8f, 0xe3, 0x53, 0xf5, 0x93,
+  0x06, 0x3f, 0x64, 0xfd, 0x64, 0x45, 0xae, 0x7f, 0xd9, 0x36, 0xa3, 0xf1,
+  0x1d, 0xce, 0xa7, 0x3b, 0xa1, 0x65, 0x83, 0xf1, 0xc2, 0x40, 0xd0, 0xa7,
+  0x10, 0xe3, 0x6a, 0x80, 0x44, 0x75, 0x46, 0xca, 0x0f, 0x3e, 0x4a, 0x5b,
+  0x32, 0xa6, 0x62, 0x10, 0x65, 0x60, 0x47, 0x1c, 0x94, 0xcc, 0xa9, 0x43,
+  0x9b, 0xbe, 0xb1, 0xc6, 0x55, 0x09, 0x30, 0xfc, 0x3e, 0x2c, 0xdd, 0x94,
+  0x5f, 0xd5, 0x66, 0x38, 0x42, 0xd5, 0x43, 0xce, 0x02, 0xf7, 0xb8, 0x95,
+  0xce, 0xf4, 0xc1, 0x0c, 0x8f, 0x6b, 0x5e, 0x85, 0x3d, 0xb6, 0xc8, 0xb3,
+  0xd2, 0xad, 0x57, 0x84, 0xb9, 0x74, 0xf5, 0xf3, 0xfb, 0x38, 0xef, 0x7e,
+  0x00, 0x10, 0x1f, 0xc1, 0x4a, 0x09, 0x47, 0xb0, 0x00, 0x94, 0x2a, 0xe8,
+  0x25, 0x1d, 0x18, 0x01, 0xb0, 0x02, 0x32, 0xea, 0x9e, 0x77, 0xe1, 0xaf,
+  0x29, 0x3c, 0x42, 0x94, 0xb4, 0xd6, 0xb1, 0x01, 0x52, 0xe4, 0xb1, 0x2f,
+  0x16, 0x7b, 0x92, 0x66, 0x27, 0x28, 0x2b, 0x13, 0x82, 0xb5, 0x20, 0x50,
+  0xcd, 0xb9, 0x97, 0xaf, 0xdc, 0x0b, 0x63, 0xc4, 0xcf, 0x7b, 0x44, 0x7d,
+  0x75, 0x37, 0x7f, 0x72, 0xe6, 0xee, 0x25, 0xd8, 0xc5, 0x1b, 0xd6, 0xbe,
+  0x51, 0x0e, 0xce, 0xbb, 0x9e, 0x9d, 0x4d, 0x73, 0x98, 0x98, 0x80, 0x0e,
+  0x21, 0x1a, 0x88, 0x00, 0x00, 0x01, 0xff, 0xff, 0x15, 0x6f, 0xa2, 0x41,
+  0xc8, 0xc8, 0x11, 0x23, 0x05, 0x04, 0xa2, 0x00, 0x38, 0x3a, 0xde, 0x96,
+  0xbb, 0xa2, 0xea, 0x80, 0x15, 0x78, 0x98, 0x24, 0xf4, 0xe4, 0xea, 0x93,
+  0xf4, 0xdb, 0x1a, 0x11, 0x10, 0x9f, 0x2a, 0x86, 0x82, 0x81, 0xbc, 0xbc,
+  0x93, 0xf8, 0x8e, 0xcb, 0x10, 0x9d, 0xa3, 0x90, 0xc7, 0x44, 0x1b, 0xbb,
+  0x79, 0x8b, 0x38, 0x93, 0x18, 0x7b, 0x02, 0xd0, 0x0f, 0x50, 0x4f, 0x51,
+  0xc5, 0xcb, 0xa9, 0xe2, 0xfd, 0x97, 0x9a, 0x63, 0xaa, 0x45, 0x52, 0xf3,
+  0xa6, 0xe0, 0xd7, 0xaf, 0x0e, 0x96, 0x06, 0xed, 0x4f, 0xe9, 0x1f, 0x47,
+  0x86, 0x18, 0x29, 0xcf, 0xae, 0xe3, 0xb9, 0xcd, 0x17, 0xc7, 0xc1, 0x46,
+  0x47, 0x72, 0x15, 0x4e, 0xdd, 0x26, 0x71, 0x18, 0x49, 0x32, 0xac, 0xa5,
+  0xe6, 0x48, 0x68, 0xf8, 0x8c, 0xc5, 0xbb, 0x85, 0x8a, 0xf9, 0x7b, 0x2e,
+  0x0b, 0xca, 0xed, 0x62, 0x5a, 0xe2, 0x72, 0xa6, 0x56, 0x5d, 0xdd, 0x4c,
+  0xde, 0xbf, 0x1e, 0x5d, 0x84, 0xf4, 0xb3, 0x27, 0x1c, 0xa2, 0x05, 0x03,
+  0x94, 0x05, 0x16, 0xd3, 0x8b, 0x4c, 0x68, 0x83, 0xb9, 0x2a, 0x39, 0xeb,
+  0x84, 0xc8, 0xcb, 0x84, 0xbe, 0x4c, 0xe6, 0x59, 0x05, 0xed, 0xbb, 0xb3,
+  0x59, 0x5e, 0x7e, 0xe7, 0xdd, 0xf9, 0xd0, 0xde, 0x32, 0x55, 0x46, 0x48,
+  0xc1, 0x4d, 0x43, 0xf2, 0xe3, 0xe8, 0x65, 0x91, 0xb7, 0x4f, 0x4d, 0x27,
+  0x3a, 0x63, 0xd3, 0xc3, 0xd3, 0x0e, 0xa8, 0xc2, 0xea, 0x66, 0xa6, 0x6c,
+  0x9e, 0x5f, 0x6e, 0xc3, 0x82, 0x87, 0x23, 0x21, 0x64, 0x34, 0x14, 0x94,
+  0xf5, 0xba, 0xc9, 0x67, 0x4c, 0x36, 0x9c, 0xe4, 0x6b, 0xaf, 0x6e, 0xe9,
+  0x74, 0xf5, 0x22, 0x79, 0xc5, 0xfb, 0x40, 0x91, 0xca, 0xfd, 0x58, 0x9f,
+  0x8f, 0x45, 0xfa, 0x60, 0xd2, 0x7b, 0xab, 0x1b, 0xed, 0x80, 0x08, 0x0f,
+  0xd0, 0x08, 0x52, 0x81, 0x61, 0x98, 0x76, 0x00, 0x00, 0x42, 0x91, 0xc0,
+  0x22, 0x90, 0xec, 0x28, 0x23, 0x9a, 0x41, 0x79, 0xc0, 0x45, 0x3b, 0xcc,
+  0x21, 0x35, 0x99, 0x0b, 0x9c, 0x52, 0x0a, 0xd2, 0x36, 0xf7, 0xed, 0xcb,
+  0x1b, 0x82, 0x10, 0x4c, 0x92, 0x95, 0x7b, 0x26, 0x78, 0x44, 0xce, 0xcf,
+  0xb4, 0x16, 0x68, 0x6c, 0xaf, 0x94, 0x45, 0x68, 0x15, 0xa2, 0xe6, 0xa2,
+  0xcb, 0xd8, 0x1e, 0x64, 0xaf, 0x42, 0x54, 0x93, 0xe5, 0x54, 0x9d, 0xc2,
+  0x00, 0x75, 0x9e, 0xea, 0x92, 0x0f, 0xba, 0x77, 0xde, 0xc7, 0xf4, 0xe8,
+  0x87, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f, 0xff, 0x17, 0x6f, 0xa4,
+  0xb0, 0x90, 0xe4, 0x44, 0x13, 0x08, 0x42, 0x01, 0x69, 0x7c, 0x0d, 0x33,
+  0x57, 0x51, 0x1c, 0xe8, 0x00, 0x87, 0x22, 0xd5, 0x0d, 0xa6, 0xf2, 0x09,
+  0x65, 0x4f, 0x18, 0x98, 0x20, 0x12, 0x8f, 0x02, 0xa2, 0x93, 0x59, 0x94,
+  0x82, 0x45, 0x90, 0x5d, 0xc6, 0xfc, 0x9d, 0xe5, 0xb5, 0x00, 0x26, 0x29,
+  0x50, 0x35, 0x4e, 0x17, 0xd8, 0x0f, 0x1e, 0xaf, 0x9b, 0x9b, 0xbf, 0xcf,
+  0x92, 0xb6, 0x66, 0x8e, 0xdd, 0x32, 0x35, 0xc9, 0x98, 0x2e, 0x3a, 0xb6,
+  0xaa, 0x8d, 0x24, 0x1d, 0xd1, 0x2e, 0x96, 0x22, 0xb5, 0xc6, 0x64, 0x70,
+  0xf9, 0x37, 0x9f, 0x8d, 0xe4, 0x0f, 0xb8, 0xa6, 0xaf, 0xf5, 0x89, 0x1e,
+  0x2e, 0x3a, 0xbe, 0x53, 0x56, 0x01, 0xd4, 0x80, 0x16, 0x09, 0x50, 0xca,
+  0xe9, 0x08, 0x3e, 0x04, 0xc2, 0x86, 0xd4, 0x80, 0x69, 0xe6, 0x88, 0xdd,
+  0xe0, 0x7b, 0xbc, 0x60, 0x2c, 0xe0, 0x8b, 0x39, 0x7b, 0xd0, 0xf1, 0xf4,
+  0x27, 0x19, 0x0c, 0xbd, 0x18, 0x9d, 0x38, 0x21, 0xda, 0xfd, 0xf4, 0xe2,
+  0xed, 0x0a, 0x74, 0x3a, 0x8c, 0x3d, 0x99, 0xe2, 0x5e, 0x72, 0xe0, 0x02,
+  0xc6, 0x53, 0x49, 0x56, 0x69, 0xaf, 0x2f, 0x34, 0xb3, 0x55, 0x95, 0x87,
+  0x56, 0x10, 0xe5, 0x50, 0x2f, 0x2a, 0x4a, 0x78, 0x74, 0x38, 0x5d, 0xdb,
+  0x47, 0x58, 0xac, 0xae, 0x79, 0x56, 0x1c, 0xc2, 0x6c, 0x6c, 0xa7, 0x4a,
+  0xe4, 0x53, 0xe8, 0x7d, 0x34, 0x55, 0x9a, 0x60, 0x82, 0xfe, 0x4c, 0x4f,
+  0x44, 0x39, 0x8c, 0xc0, 0x1d, 0x6b, 0xc6, 0x57, 0xcc, 0x63, 0x17, 0x0d,
+  0x19, 0xda, 0x67, 0xad, 0x06, 0x7e, 0x53, 0xe8, 0x50, 0x8b, 0xd1, 0xed,
+  0xf4, 0x40, 0x07, 0xa6, 0xd9, 0x30, 0x1b, 0xea, 0xd9, 0x28, 0xdc, 0x3c,
+  0x2a, 0x9e, 0xd4, 0x14, 0x53, 0xc2, 0x8b, 0xec, 0x1b, 0xae, 0xbb, 0x5f,
+  0x6f, 0x96, 0x10, 0x7f, 0xfe, 0x0a, 0x98, 0x66, 0x1d, 0x80, 0x05, 0x40,
+  0x2a, 0x2a, 0x4c, 0xea, 0xb0, 0x06, 0xa9, 0xc8, 0xfb, 0xab, 0xfd, 0x34,
+  0xe5, 0xd0, 0x91, 0xb2, 0x4a, 0xab, 0xd8, 0x5a, 0x08, 0xa7, 0x72, 0xf1,
+  0x20, 0x02, 0xc5, 0x5d, 0x05, 0xe0, 0xae, 0xd8, 0x5a, 0x23, 0x41, 0x61,
+  0x64, 0xb6, 0xca, 0x78, 0xff, 0xa6, 0x7a, 0xed, 0xa0, 0xb6, 0x4d, 0x5a,
+  0x77, 0x85, 0xd9, 0x77, 0xe4, 0xb9, 0xe3, 0x69, 0x0c, 0x5b, 0x44, 0xd4,
+  0x4e, 0x04, 0x95, 0x5c, 0x32, 0x9d, 0x0f, 0x78, 0xe4, 0x19, 0x08, 0xeb,
+  0xa6, 0xb5, 0x21, 0xf6, 0xdd, 0x12, 0x18, 0x43, 0x07, 0x21, 0x1a, 0x88,
+  0x00, 0x00, 0x00, 0x3f, 0xff, 0x1d, 0x6f, 0xa4, 0xb1, 0x10, 0xa2, 0x34,
+  0x13, 0x0c, 0xc2, 0x06, 0x92, 0x3a, 0x0e, 0x22, 0x59, 0x74, 0x28, 0x28,
+  0xb4, 0x36, 0x2a, 0x08, 0x64, 0x60, 0x82, 0x39, 0x75, 0x65, 0x73, 0xfc,
+  0x27, 0x2c, 0x56, 0xe1, 0xfe, 0xdd, 0x55, 0x0e, 0xe6, 0x7e, 0x6b, 0x47,
+  0x84, 0x76, 0x6d, 0x60, 0x39, 0xb4, 0x98, 0x07, 0xce, 0x17, 0x05, 0xc9,
+  0x19, 0xe8, 0xaf, 0xc5, 0x6e, 0x9d, 0x81, 0xec, 0x3c, 0xad, 0x96, 0x64,
+  0x7c, 0xe5, 0xc1, 0x9e, 0x75, 0x8c, 0xd9, 0xcc, 0xd6, 0xa9, 0x1f, 0x19,
+  0x68, 0x4c, 0xfb, 0x63, 0xa5, 0xd7, 0x33, 0x8d, 0x15, 0x7b, 0x98, 0xd0,
+  0xa4, 0xa8, 0x73, 0x67, 0xf6, 0x3f, 0x22, 0xa9, 0x35, 0x23, 0x37, 0xf7,
+  0x6a, 0x6f, 0xb4, 0xed, 0xd4, 0x28, 0x7c, 0x19, 0x1d, 0x33, 0xf6, 0x11,
+  0xe6, 0x0d, 0x8a, 0xdd, 0xdd, 0xab, 0x9c, 0x3a, 0xc9, 0xda, 0x94, 0x95,
+  0x6d, 0x53, 0xf5, 0xfb, 0x5a, 0x73, 0x9d, 0x48, 0x36, 0x5a, 0x2c, 0xf6,
+  0xfa, 0x0a, 0xee, 0x39, 0x9f, 0x14, 0x9d, 0xef, 0xd3, 0x80, 0x4f, 0x24,
+  0x39, 0xe3, 0x3c, 0x2a, 0xd5, 0x73, 0x95, 0x60, 0x08, 0x98, 0xaa, 0xdd,
+  0x78, 0x8b, 0x3d, 0x06, 0xaf, 0xae, 0x65, 0xb6, 0xa5, 0xf5, 0xce, 0x12,
+  0x8b, 0x07, 0xad, 0x4f, 0x08, 0x13, 0x74, 0x97, 0x71, 0x26, 0xf2, 0x55,
+  0x7a, 0xab, 0xab, 0x89, 0x75, 0x18, 0x00, 0x51, 0xe6, 0x72, 0x65, 0x77,
+  0x12, 0xbe, 0xb8, 0xd9, 0xdc, 0x66, 0x60, 0xe1, 0xa6, 0xf2, 0x3c, 0xed,
+  0xb9, 0x0c, 0x70, 0x0f, 0x8f, 0xfb, 0x1c, 0x48, 0x40, 0x25, 0x0e, 0x38,
+  0xfd, 0xbf, 0xcd, 0x4b, 0x41, 0x9d, 0x38, 0x96, 0x87, 0xec, 0xf9, 0x60,
+  0xe7, 0x34, 0xf4, 0x6f, 0x20, 0x35, 0x6b, 0x19, 0x9d, 0x83, 0x0b, 0x86,
+  0xfa, 0x2e, 0x2f, 0x6a, 0xcf, 0x4d, 0x1a, 0x7a, 0xb5, 0xdb, 0xb3, 0x8b,
+  0x5d, 0xd9, 0xa7, 0xfe, 0xa3, 0xb1, 0xf9, 0x4f, 0x57, 0x07, 0xdf, 0xe8,
+  0xa5, 0x86, 0x61, 0xd8, 0x00, 0x15, 0x02, 0xa5, 0x12, 0x2c, 0xc1, 0x2a,
+  0xc0, 0xe1, 0x5a, 0xa1, 0xf9, 0x1c, 0xba, 0xce, 0x97, 0x87, 0x00, 0x9d,
+  0x65, 0x3b, 0x0d, 0xca, 0xe1, 0x05, 0x13, 0xa0, 0x33, 0x31, 0x8b, 0x73,
+  0x30, 0x59, 0x1d, 0x3b, 0xa1, 0xeb, 0xf5, 0x53, 0x9f, 0x36, 0x3f, 0xad,
+  0xa6, 0xac, 0x75, 0xb4, 0xac, 0xcb, 0x3e, 0x79, 0x30, 0xe0, 0x18, 0xc4,
+  0xc9, 0x68, 0xdb, 0x7c, 0xc8, 0x15, 0x0f, 0x39, 0x9e, 0x46, 0x3b, 0x91,
+  0x2f, 0xac, 0xce, 0xcb, 0xfa, 0x68, 0xc5, 0xbb, 0x9f, 0x86, 0xfc, 0xe7,
+  0x20, 0x38, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x01, 0xff, 0xff, 0x17, 0x70,
+  0xa4, 0xa3, 0x18, 0x86, 0x10, 0x0b, 0x38, 0x68, 0xd5, 0x3a, 0x4a, 0x55,
+  0x58, 0x02, 0x96, 0x60, 0x24, 0x10, 0x12, 0x8c, 0xb2, 0x4a, 0x29, 0x2c,
+  0x1b, 0xc8, 0x21, 0x37, 0x7c, 0xbb, 0x42, 0x8e, 0x04, 0x3f, 0xd3, 0x7e,
+  0x93, 0x98, 0x6b, 0x40, 0x68, 0xfe, 0xf7, 0xd4, 0x3b, 0x9e, 0x8b, 0x2d,
+  0xd6, 0x79, 0x70, 0xbd, 0xc5, 0xe2, 0x7b, 0x67, 0xbd, 0x9b, 0xb6, 0xfc,
+  0x35, 0x97, 0x49, 0x46, 0x1c, 0xd5, 0xc7, 0xd0, 0xad, 0x99, 0x39, 0x72,
+  0x43, 0x2a, 0x24, 0x51, 0x2b, 0xed, 0xdd, 0x6e, 0x35, 0xe1, 0xc5, 0x7d,
+  0xbb, 0xab, 0x56, 0xab, 0xbb, 0x57, 0x93, 0x97, 0x6d, 0x0e, 0xaf, 0x9b,
+  0xc9, 0x7f, 0x2d, 0xa9, 0x8e, 0x8c, 0x5c, 0x3e, 0xbe, 0xe9, 0x62, 0xcb,
+  0x85, 0x6d, 0x22, 0x99, 0x2b, 0x3c, 0x89, 0x39, 0x94, 0x0d, 0x62, 0x54,
+  0x34, 0x6a, 0x58, 0x86, 0xbb, 0x4f, 0x7d, 0x87, 0x7c, 0x63, 0x65, 0x5f,
+  0x8c, 0x9c, 0x9f, 0x87, 0x3a, 0x6c, 0x28, 0x2d, 0xce, 0x3e, 0x50, 0xe7,
+  0x04, 0xe1, 0xd4, 0xcd, 0x40, 0x18, 0x80, 0x0d, 0xa1, 0x3e, 0x0e, 0x17,
+  0xed, 0x55, 0x23, 0xe3, 0xa5, 0x38, 0x0f, 0xad, 0x69, 0x57, 0xbe, 0x83,
+  0x68, 0x40, 0x96, 0xce, 0xb7, 0x06, 0x68, 0x3c, 0x72, 0x1e, 0x51, 0xf3,
+  0x91, 0x5a, 0xd1, 0x30, 0xfa, 0xe0, 0x2b, 0x3a, 0xc0, 0x8b, 0x0d, 0x76,
+  0xa1, 0x67, 0x51, 0x55, 0x7c, 0xbd, 0xe2, 0x78, 0x9c, 0x90, 0x65, 0x0b,
+  0x7a, 0xb5, 0x02, 0x30, 0x5e, 0xdb, 0x39, 0x95, 0xea, 0x30, 0x74, 0x21,
+  0xd9, 0xde, 0xb0, 0x03, 0x13, 0xd7, 0x18, 0xd1, 0x1c, 0xb9, 0x0d, 0xa0,
+  0x00, 0xac, 0x08, 0x12, 0x24, 0x91, 0x7e, 0x86, 0x3d, 0xed, 0x2c, 0x61,
+  0x3a, 0x62, 0x20, 0x0f, 0x12, 0x9b, 0xe7, 0x98, 0x9e, 0xc0, 0x36, 0xd7,
+  0x53, 0x7f, 0x93, 0x4c, 0x57, 0xdf, 0xf5, 0x8b, 0xac, 0x9b, 0x2a, 0xa8,
+  0x6a, 0x26, 0x92, 0x3c, 0x25, 0xff, 0xed, 0x3b, 0x6f, 0xd3, 0xff, 0xee,
+  0x07, 0xff, 0xd0, 0x90, 0x8e, 0xc4, 0x10, 0xec, 0x00, 0x2a, 0x52, 0x09,
+  0x45, 0x34, 0x04, 0x10, 0xec, 0x01, 0x55, 0xce, 0xa8, 0x21, 0x34, 0xa2,
+  0x00, 0x74, 0x82, 0xc1, 0x0a, 0x49, 0xc8, 0x44, 0x16, 0x7c, 0x12, 0xe2,
+  0x42, 0x18, 0xdc, 0x69, 0x70, 0x05, 0x82, 0xac, 0xea, 0x3a, 0x93, 0xd8,
+  0x1f, 0xd3, 0xd2, 0xfe, 0xa9, 0xa7, 0x6c, 0xd2, 0x33, 0xf1, 0x8a, 0x60,
+  0xb1, 0x60, 0x68, 0x08, 0x4d, 0x50, 0x35, 0x06, 0x77, 0x0d, 0xe3, 0x9c,
+  0xad, 0x34, 0x45, 0xb3, 0x33, 0x05, 0x34, 0x26, 0x2a, 0xea, 0x58, 0x4c,
+  0xe5, 0x5d, 0x0a, 0x77, 0x05, 0xee, 0xb3, 0x24, 0xbf, 0x8c, 0x64, 0x7d,
+  0x09, 0x2a, 0x6a, 0xb3, 0xcb, 0x3f, 0x5f, 0xcb, 0xdd, 0x00, 0xe0, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x00, 0x03, 0xff, 0x21, 0x73, 0x82, 0xa2, 0xc4,
+  0x28, 0x26, 0x1a, 0x84, 0x1c, 0x2c, 0xb7, 0x0a, 0x71, 0x52, 0xec, 0x52,
+  0x41, 0x18, 0x10, 0xc1, 0x5c, 0x8a, 0x66, 0x87, 0x94, 0x31, 0xf8, 0x6d,
+  0xbc, 0x18, 0xdc, 0x4c, 0x99, 0xc7, 0xdb, 0x5e, 0xf3, 0x6f, 0xe0, 0xa7,
+  0xf2, 0x69, 0x64, 0x18, 0xef, 0x2b, 0x0b, 0x43, 0x7e, 0x08, 0x9a, 0x19,
+  0xf9, 0x4d, 0xdd, 0xcd, 0x19, 0x2e, 0xe6, 0x81, 0xe2, 0xfa, 0xab, 0xb4,
+  0xfc, 0x0b, 0xc8, 0xba, 0xe2, 0x0f, 0x11, 0x3a, 0x5b, 0xfb, 0xcd, 0xa8,
+  0x53, 0xb3, 0x92, 0xdc, 0x5c, 0x68, 0xd5, 0x15, 0x7d, 0xc8, 0x1c, 0x89,
+  0x4e, 0xd3, 0x93, 0x73, 0x04, 0x49, 0x0b, 0x8e, 0x90, 0xd4, 0x07, 0xd2,
+  0xb9, 0x8a, 0xda, 0x60, 0x04, 0x16, 0x06, 0xee, 0x01, 0x54, 0xbe, 0xe6,
+  0x95, 0xab, 0x5d, 0x18, 0x34, 0x04, 0x99, 0x1d, 0xcc, 0xcb, 0x10, 0x7c,
+  0xdc, 0x6d, 0x8f, 0x83, 0xcf, 0x0d, 0x3c, 0x8c, 0x00, 0x46, 0xfa, 0x81,
+  0x35, 0x75, 0xc3, 0xf4, 0xc2, 0xa9, 0x06, 0x53, 0xd1, 0x17, 0x12, 0x47,
+  0x5b, 0x56, 0x0d, 0x94, 0xf3, 0x7e, 0x25, 0x4e, 0x4f, 0xf7, 0x30, 0x9e,
+  0xff, 0x9e, 0x0e, 0xf5, 0x5c, 0x3a, 0x87, 0x21, 0xba, 0xf6, 0xaa, 0x4b,
+  0x3a, 0xb8, 0x1e, 0xaf, 0x26, 0xa0, 0x03, 0x6b, 0x7e, 0xe9, 0x44, 0xfc,
+  0xf0, 0x16, 0x5d, 0x78, 0x83, 0x5b, 0x7d, 0x1b, 0x9d, 0xf1, 0xb4, 0x77,
+  0x02, 0x3e, 0xd0, 0x1a, 0xc4, 0x2b, 0x9a, 0x90, 0xe9, 0xde, 0xa5, 0xd0,
+  0x88, 0xd7, 0x9e, 0x2b, 0xf2, 0x96, 0xd8, 0x2b, 0xd5, 0x9a, 0x31, 0xc3,
+  0xf0, 0xb5, 0x11, 0xa8, 0x13, 0x4e, 0xad, 0x87, 0x91, 0xb3, 0x64, 0x6c,
+  0x0c, 0x6a, 0xa8, 0x0b, 0x59, 0x60, 0xd4, 0xc2, 0xac, 0x8b, 0x3a, 0x29,
+  0x58, 0x18, 0xda, 0x01, 0x21, 0x22, 0x57, 0x5d, 0xdb, 0x51, 0xa0, 0x5e,
+  0x73, 0xc7, 0x1c, 0x39, 0x77, 0xf6, 0x00, 0x1f, 0x7f, 0xe2, 0x11, 0xa0,
+  0xd8, 0x46, 0x1d, 0x80, 0x04, 0xa2, 0xa2, 0xa2, 0xae, 0xa5, 0x4a, 0x49,
+  0x14, 0x2d, 0x80, 0x84, 0xd5, 0x64, 0x8f, 0x1b, 0xc8, 0x4b, 0x85, 0xd7,
+  0xe1, 0x06, 0xec, 0x6c, 0x55, 0xd8, 0x90, 0x31, 0x1c, 0xec, 0xd4, 0x6f,
+  0x8e, 0xe2, 0xc4, 0x9b, 0xaf, 0x41, 0xa9, 0xcb, 0x2d, 0x94, 0xf9, 0xd4,
+  0xaa, 0x06, 0xdb, 0x96, 0x9e, 0x8f, 0x46, 0x54, 0xf2, 0xeb, 0xae, 0x63,
+  0x9e, 0x9d, 0xd2, 0x76, 0x61, 0x14, 0x1b, 0xe7, 0x23, 0xe3, 0xcd, 0xe4,
+  0x62, 0xf2, 0xe1, 0xc0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f, 0xff,
+  0x1f, 0x73, 0x83, 0x23, 0x58, 0x66, 0x10, 0x47, 0x1d, 0xd7, 0xe0, 0xea,
+  0x96, 0xab, 0xb5, 0x5b, 0x2c, 0x4a, 0xc8, 0x4a, 0xbc, 0x94, 0x35, 0xfe,
+  0x41, 0x1c, 0x98, 0x79, 0x3c, 0x59, 0x09, 0xa4, 0x4a, 0x4f, 0xda, 0xd8,
+  0xcb, 0xad, 0x87, 0xf6, 0x9b, 0xdb, 0xa7, 0xee, 0x19, 0x07, 0x98, 0x3e,
+  0xa1, 0x8e, 0xe6, 0x1c, 0xe2, 0xe7, 0xd7, 0xd7, 0x0f, 0xa6, 0x70, 0xdc,
+  0x47, 0xa8, 0xed, 0x61, 0x7b, 0x6c, 0x8d, 0x13, 0xa7, 0xf6, 0x26, 0x2f,
+  0xf9, 0xce, 0xa2, 0xf1, 0xa9, 0x30, 0x32, 0xcc, 0x49, 0xa6, 0x8f, 0x7d,
+  0x72, 0xfb, 0xfa, 0x6e, 0x8e, 0xbb, 0x0f, 0x55, 0x55, 0xf2, 0x04, 0x62,
+  0xab, 0xa1, 0xe9, 0xe7, 0xf2, 0xd7, 0xa1, 0xa8, 0x40, 0x9c, 0x27, 0x24,
+  0xe5, 0x5c, 0xd8, 0x12, 0xd7, 0xa0, 0x67, 0x91, 0xb9, 0xb0, 0x40, 0xbe,
+  0x4f, 0x44, 0x7e, 0x48, 0x49, 0xed, 0xbb, 0x9c, 0x73, 0x4d, 0xf1, 0x6d,
+  0x5a, 0xd2, 0x55, 0x65, 0x6f, 0xe9, 0x50, 0x46, 0xe2, 0x74, 0x57, 0xac,
+  0x9d, 0x1e, 0x32, 0x57, 0x87, 0x09, 0x67, 0x8d, 0x36, 0xfa, 0x93, 0x29,
+  0x36, 0xcf, 0x2b, 0xeb, 0xdb, 0x9f, 0xb3, 0xbe, 0xe6, 0x77, 0xc3, 0x74,
+  0x50, 0x40, 0x35, 0xe2, 0xb2, 0x94, 0xf8, 0x22, 0xd4, 0x69, 0xae, 0x37,
+  0xe4, 0x17, 0x4f, 0x4a, 0x4e, 0x25, 0xdd, 0x7d, 0x70, 0x13, 0xf8, 0xc1,
+  0xbf, 0x10, 0xf7, 0x1a, 0x2c, 0xc9, 0xa3, 0x5e, 0x83, 0x01, 0x67, 0x2f,
+  0xdb, 0x2d, 0x27, 0xb2, 0x74, 0x75, 0xf2, 0x5c, 0x00, 0x91, 0xf5, 0xcc,
+  0x71, 0xd3, 0x41, 0xf3, 0xe6, 0xe3, 0xb3, 0xb1, 0x51, 0x84, 0xe1, 0x36,
+  0x54, 0x0a, 0xe8, 0xdd, 0x72, 0xf4, 0x4d, 0x68, 0xd3, 0x52, 0xeb, 0x94,
+  0xb0, 0x74, 0x23, 0xb4, 0x28, 0x78, 0x91, 0xa2, 0x4c, 0x71, 0xb3, 0x09,
+  0x96, 0x89, 0xf7, 0xa0, 0x18, 0xca, 0x12, 0x35, 0xf6, 0x50, 0x96, 0x60,
+  0x73, 0x50, 0xb7, 0xdc, 0xf4, 0xbc, 0xf2, 0xd7, 0x33, 0xfd, 0xa8, 0xe5,
+  0x4f, 0xff, 0x27, 0x07, 0x42, 0xf2, 0xe0, 0xf9, 0xfc, 0x14, 0x21, 0x18,
+  0x2a, 0x1d, 0x80, 0x54, 0x0a, 0x95, 0x00, 0xbc, 0x80, 0x04, 0x40, 0x11,
+  0xf1, 0x00, 0x15, 0x32, 0x45, 0x62, 0x70, 0xb5, 0x08, 0xec, 0x94, 0xab,
+  0xfb, 0x42, 0x9d, 0xe7, 0x14, 0xee, 0xc1, 0x34, 0xf2, 0x5f, 0xc2, 0x9a,
+  0xbc, 0x2d, 0xde, 0x38, 0xc7, 0xac, 0x72, 0x97, 0xae, 0x67, 0x85, 0xb5,
+  0xe9, 0x15, 0xa1, 0x0f, 0xba, 0xc7, 0xa2, 0x71, 0xfe, 0xa5, 0xab, 0xf9,
+  0xf8, 0x15, 0x29, 0xba, 0x0f, 0x1d, 0x1e, 0x45, 0x7b, 0x3f, 0x85, 0x12,
+  0xe3, 0x4a, 0x4b, 0x10, 0xab, 0x94, 0xd8, 0xc6, 0x2d, 0xef, 0xe3, 0xac,
+  0x7d, 0xfd, 0x6e, 0x00, 0x1c, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x03, 0xff,
+  0xff, 0x21, 0x73, 0xa3, 0x23, 0x98, 0x46, 0x10, 0x34, 0xd3, 0x86, 0x6b,
+  0x4d, 0x1a, 0x52, 0xe6, 0x54, 0x08, 0xa4, 0x0c, 0x13, 0xe9, 0x48, 0x24,
+  0xf5, 0xa4, 0x7f, 0xd2, 0xe3, 0xd2, 0xfc, 0x86, 0xb6, 0xb3, 0x99, 0xfa,
+  0xec, 0x6d, 0x25, 0xbc, 0x2e, 0x5c, 0x71, 0xf6, 0x2d, 0x1f, 0x16, 0x4b,
+  0x45, 0x9d, 0xcf, 0xae, 0xa6, 0x73, 0x79, 0xc6, 0xb6, 0xc8, 0xf0, 0x0b,
+  0x2b, 0xb0, 0x39, 0x5d, 0xb3, 0x4b, 0xb9, 0x55, 0x1c, 0x98, 0xcc, 0xc1,
+  0xea, 0x12, 0xa3, 0xb5, 0x22, 0xde, 0xe6, 0xd0, 0xee, 0x26, 0xc4, 0xe3,
+  0x9c, 0x9a, 0x5c, 0xda, 0xf2, 0x6c, 0x56, 0xc7, 0x31, 0x1b, 0x0b, 0x2e,
+  0x78, 0x61, 0x50, 0x96, 0x35, 0xf3, 0xf6, 0x73, 0x76, 0xf0, 0x66, 0x04,
+  0xce, 0xf2, 0x51, 0x4d, 0x8c, 0x50, 0x6a, 0xaa, 0xae, 0x14, 0xc8, 0xcf,
+  0x54, 0x31, 0x7b, 0x06, 0x3d, 0x6d, 0x61, 0xec, 0x7f, 0x2a, 0x7d, 0x67,
+  0x0d, 0x95, 0x4e, 0x19, 0x84, 0x50, 0xb8, 0xd2, 0xb5, 0x8f, 0xf0, 0xb2,
+  0xd9, 0x4c, 0x24, 0x28, 0x7c, 0xd0, 0x10, 0xc3, 0x0a, 0x00, 0xf0, 0x85,
+  0x0a, 0x49, 0x52, 0xac, 0xf7, 0x3a, 0x23, 0xe7, 0x21, 0x18, 0x2b, 0x95,
+  0x92, 0xbd, 0x08, 0xa9, 0xd6, 0x49, 0x7d, 0x43, 0xf3, 0x3f, 0x4a, 0x24,
+  0x00, 0x16, 0x57, 0x8e, 0xcf, 0xc8, 0x14, 0x45, 0x15, 0xba, 0x17, 0x5f,
+  0x78, 0xd1, 0x1b, 0x63, 0x46, 0xe5, 0xd3, 0xc9, 0x6a, 0x60, 0x9d, 0xa3,
+  0xc2, 0x87, 0xeb, 0x2d, 0xa9, 0xc7, 0x9d, 0x83, 0x86, 0x86, 0xb5, 0xbe,
+  0x4c, 0x08, 0xd7, 0x75, 0xf4, 0x3c, 0x1e, 0x35, 0xfe, 0xdc, 0x47, 0x44,
+  0x44, 0x4c, 0x0e, 0x72, 0x9d, 0xc6, 0xe1, 0x8a, 0x5b, 0x8f, 0xde, 0x28,
+  0x69, 0x3f, 0x90, 0x74, 0x7f, 0x83, 0xd2, 0x28, 0x12, 0x52, 0x21, 0x95,
+  0xec, 0x75, 0xcd, 0xdf, 0x5c, 0xfc, 0x30, 0xb1, 0x2b, 0xdb, 0x45, 0xc4,
+  0x25, 0x62, 0x71, 0x1e, 0x85, 0xd2, 0xbf, 0x63, 0x96, 0x0f, 0xbf, 0x91,
+  0x5a, 0x09, 0x86, 0x61, 0xd8, 0x00, 0x14, 0x2d, 0x52, 0x80, 0x40, 0x55,
+  0xa6, 0xc3, 0xf7, 0x58, 0x0b, 0x6d, 0x29, 0x7a, 0x9a, 0xc1, 0xb9, 0x54,
+  0x50, 0x00, 0x13, 0x0b, 0x6f, 0xba, 0x10, 0xb7, 0x2e, 0x94, 0x5a, 0x70,
+  0xbc, 0xfc, 0xc3, 0xf5, 0x9a, 0x34, 0x89, 0x0d, 0xcf, 0x4c, 0x77, 0x16,
+  0xaf, 0x72, 0x99, 0x88, 0x5f, 0x37, 0x8b, 0x9a, 0x54, 0x0b, 0xa8, 0x98,
+  0xe0, 0xa0, 0x5c, 0x95, 0xd4, 0xcd, 0x12, 0xa2, 0x37, 0x09, 0x2b, 0x41,
+  0x76, 0xad, 0x2c, 0xae, 0x1c, 0x8b, 0x28, 0xca, 0x2c, 0xdd, 0x67, 0x09,
+  0x2a, 0xbb, 0x04, 0xe0, 0xbd, 0xf8, 0x75, 0xd9, 0xc5, 0xb9, 0xd0, 0xf4,
+  0x61, 0xc0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x03, 0xff, 0x19, 0x6f,
+  0xa4, 0xb0, 0xd1, 0x02, 0x14, 0x23, 0x04, 0xc2, 0x02, 0x53, 0xcc, 0x0d,
+  0x26, 0xa0, 0x80, 0x0c, 0x42, 0x4d, 0x8d, 0x78, 0x49, 0x6b, 0x94, 0x12,
+  0x42, 0xd9, 0x25, 0x39, 0x74, 0x1a, 0x49, 0x3c, 0x04, 0x63, 0x84, 0x98,
+  0xdd, 0xc5, 0xf9, 0x8e, 0xc5, 0x26, 0x84, 0xa0, 0x87, 0xfa, 0x1d, 0x27,
+  0xa4, 0xae, 0x3f, 0xd4, 0x1f, 0xc8, 0xf9, 0xfb, 0xef, 0x30, 0x5e, 0x0f,
+  0x55, 0x73, 0x4f, 0x30, 0x66, 0x49, 0x27, 0x74, 0x43, 0x99, 0x7e, 0x6d,
+  0x34, 0xd3, 0x4f, 0x50, 0x86, 0xa4, 0x33, 0x2e, 0x02, 0xc5, 0xa4, 0x98,
+  0xfa, 0xbb, 0x5d, 0x8e, 0x4e, 0xc4, 0xc9, 0x3f, 0x5a, 0xb9, 0x47, 0x17,
+  0xe7, 0x75, 0x56, 0xa6, 0xc0, 0x64, 0xae, 0x3d, 0x72, 0x89, 0x18, 0x0b,
+  0x32, 0xa2, 0x01, 0x36, 0x65, 0xee, 0xe3, 0x34, 0x17, 0x49, 0xaa, 0xb7,
+  0xf7, 0xc0, 0x5f, 0xa1, 0x84, 0x8f, 0x37, 0x1d, 0x77, 0x59, 0x48, 0xc6,
+  0x96, 0xa3, 0x08, 0x9c, 0xdf, 0xd3, 0xaf, 0x85, 0x57, 0x14, 0xb0, 0x94,
+  0x2e, 0x82, 0xce, 0x0c, 0x6a, 0xa2, 0x22, 0xd4, 0x47, 0x27, 0x3a, 0x5b,
+  0x1a, 0xe5, 0x97, 0x66, 0xa1, 0x5b, 0x06, 0x00, 0x28, 0xfd, 0xbb, 0x8e,
+  0x5c, 0x80, 0x30, 0x5a, 0x7b, 0xbd, 0xfd, 0x47, 0x2d, 0x09, 0x8a, 0xbf,
+  0x5d, 0xd1, 0x70, 0xd7, 0x6d, 0x53, 0x73, 0x2c, 0x15, 0xcc, 0xb9, 0x5a,
+  0x73, 0xc1, 0xf7, 0xbe, 0x2c, 0x16, 0x5f, 0x47, 0xdc, 0xbf, 0xc2, 0xdf,
+  0xa1, 0x79, 0x59, 0xd3, 0x3b, 0x09, 0x06, 0x20, 0x43, 0x8e, 0x19, 0xbd,
+  0xa0, 0x97, 0xa1, 0x23, 0x29, 0x50, 0xd7, 0xad, 0x96, 0x31, 0x64, 0xcd,
+  0x3f, 0x67, 0xe9, 0x12, 0x08, 0x60, 0x58, 0x03, 0x4c, 0x6b, 0x70, 0xc1,
+  0xde, 0xbe, 0x37, 0xa4, 0x32, 0x5e, 0xcc, 0x4d, 0x9b, 0x57, 0xd5, 0x13,
+  0xea, 0x37, 0xb8, 0x75, 0x17, 0x54, 0xb6, 0xf8, 0x75, 0x3f, 0xff, 0x57,
+  0x9e, 0x7b, 0x20, 0x7e, 0xff, 0x88, 0x44, 0x43, 0x40, 0xb0, 0x84, 0x3b,
+  0x00, 0x00, 0x94, 0x52, 0x02, 0x54, 0xa4, 0x08, 0xc0, 0x00, 0xb2, 0xb4,
+  0x50, 0x83, 0xa7, 0xb8, 0xc6, 0x88, 0x33, 0x46, 0xec, 0x48, 0x2d, 0x2f,
+  0xf2, 0xc1, 0x0f, 0xd5, 0xc3, 0x3d, 0x19, 0xa9, 0x77, 0x34, 0x0d, 0xc6,
+  0x26, 0x84, 0x24, 0x37, 0xc8, 0x0a, 0xc2, 0x93, 0x9d, 0xa3, 0x2d, 0x6a,
+  0x11, 0x35, 0x83, 0x12, 0x45, 0xaa, 0x94, 0x63, 0x97, 0xd3, 0x37, 0x5c,
+  0x21, 0xc0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x31, 0x72,
+  0x84, 0x23, 0x18, 0x6a, 0x16, 0xa2, 0xea, 0xfa, 0x3d, 0x91, 0x8e, 0x95,
+  0x72, 0x54, 0xd5, 0x05, 0x20, 0x08, 0x18, 0x9f, 0x3e, 0xe8, 0xad, 0x17,
+  0xef, 0x6d, 0xe0, 0x7c, 0xc4, 0x37, 0x25, 0x73, 0xcd, 0xcd, 0x9b, 0x23,
+  0x2b, 0xde, 0x76, 0x25, 0xcd, 0x2d, 0x1a, 0x62, 0xee, 0x3c, 0x2b, 0x1d,
+  0xe5, 0xbe, 0x35, 0xd2, 0x37, 0x41, 0x2d, 0x30, 0xee, 0x1e, 0xb6, 0xbd,
+  0x5f, 0x94, 0x9d, 0xf3, 0xb1, 0x38, 0x65, 0xfe, 0x73, 0xcb, 0x1e, 0xcb,
+  0x7a, 0xa6, 0x5b, 0x72, 0xc9, 0x65, 0x64, 0x7c, 0xf1, 0xa4, 0xf3, 0xe6,
+  0x15, 0x71, 0x28, 0xd2, 0xd1, 0xeb, 0xc7, 0x07, 0xdc, 0xac, 0x5d, 0xca,
+  0x74, 0x6d, 0xa1, 0x78, 0x3b, 0x99, 0xd3, 0x70, 0x57, 0x8f, 0x8c, 0x24,
+  0x6b, 0xc4, 0xc3, 0x47, 0xb1, 0xe2, 0xaf, 0x8d, 0x16, 0xb6, 0x5e, 0x46,
+  0xee, 0x5e, 0x7f, 0x95, 0x30, 0x74, 0x2c, 0x36, 0x4c, 0x1a, 0xe1, 0x37,
+  0xda, 0x04, 0xbc, 0x2d, 0x40, 0xfa, 0xcf, 0x42, 0x68, 0x56, 0xb4, 0x5c,
+  0x82, 0x96, 0x60, 0x4f, 0xef, 0x7d, 0x83, 0x28, 0xcb, 0xb2, 0x00, 0x2c,
+  0x0b, 0xf3, 0xe3, 0xc8, 0xb8, 0x5c, 0x35, 0xbd, 0x75, 0x6f, 0x6c, 0x09,
+  0x23, 0x45, 0xea, 0xa8, 0x05, 0x4e, 0x42, 0x0c, 0x99, 0x00, 0x5f, 0x21,
+  0x08, 0xaf, 0x8b, 0x97, 0x31, 0x84, 0x1b, 0xaf, 0xec, 0x36, 0x72, 0x1b,
+  0xef, 0xf7, 0x84, 0x4b, 0x41, 0x93, 0x88, 0x62, 0x8b, 0xc1, 0xef, 0xb1,
+  0x96, 0xdf, 0xc5, 0x77, 0x38, 0x6a, 0x0a, 0x3a, 0x75, 0xbb, 0xb8, 0x1f,
+  0x84, 0xb0, 0x61, 0x9d, 0x63, 0xb6, 0x43, 0x7f, 0x9e, 0x8b, 0xf5, 0xde,
+  0x12, 0xb2, 0x44, 0xa8, 0x87, 0x75, 0x25, 0x73, 0x8d, 0xae, 0x75, 0x4b,
+  0x70, 0x95, 0xcb, 0x1a, 0x56, 0xc5, 0x66, 0x0a, 0xb4, 0xd0, 0xba, 0x59,
+  0xe8, 0x9d, 0xac, 0x8e, 0x39, 0x59, 0x9c, 0xfd, 0x76, 0x8a, 0xd5, 0x36,
+  0x3b, 0x57, 0x3c, 0x7a, 0x37, 0xc7, 0xbf, 0xfd, 0x00, 0x0f, 0x9f, 0xf3,
+  0x20, 0x58, 0x6a, 0x1d, 0x80, 0x0a, 0x40, 0x02, 0x65, 0xd0, 0x8a, 0x95,
+  0x0a, 0x0a, 0x2f, 0x85, 0xbd, 0x48, 0x58, 0x15, 0x0a, 0xcc, 0xc8, 0x28,
+  0x89, 0xa7, 0x0e, 0x30, 0xd8, 0xd3, 0x5a, 0x5d, 0x77, 0x6d, 0x35, 0xd1,
+  0x49, 0x2d, 0x76, 0x35, 0x55, 0xb4, 0x06, 0xaa, 0x46, 0x04, 0x98, 0x96,
+  0x2b, 0x49, 0x97, 0xe5, 0xa4, 0x47, 0xdd, 0xf2, 0xe0, 0x01, 0xc0, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x71, 0xa4, 0x30, 0x50,
+  0x8c, 0x14, 0x33, 0x11, 0x02, 0x05, 0xeb, 0x6e, 0x9a, 0xb1, 0x1d, 0x15,
+  0xa3, 0x26, 0x58, 0x2a, 0xca, 0xbe, 0x45, 0x62, 0x62, 0x10, 0x25, 0x93,
+  0x38, 0xbb, 0x8a, 0x57, 0x6f, 0x9e, 0x13, 0x97, 0x37, 0xf1, 0x5d, 0x85,
+  0x90, 0x99, 0xaa, 0x30, 0x22, 0x70, 0x83, 0xaf, 0x96, 0xb4, 0xc6, 0xa3,
+  0xc6, 0x54, 0x84, 0x9b, 0xaa, 0x8d, 0x43, 0xde, 0xdc, 0x3a, 0x4a, 0xe4,
+  0xbe, 0xbd, 0x9c, 0x7a, 0xcb, 0xd8, 0x3c, 0xe2, 0xf0, 0x9b, 0x21, 0xfb,
+  0x42, 0x46, 0x93, 0x0d, 0x44, 0xbb, 0x83, 0x57, 0x02, 0xc6, 0xee, 0xb9,
+  0xe5, 0xc5, 0x8a, 0xd2, 0x7c, 0x31, 0x8b, 0x08, 0x38, 0xb7, 0xf9, 0x8d,
+  0x49, 0x37, 0x4f, 0xae, 0xab, 0x94, 0x62, 0xa8, 0xa0, 0x32, 0xec, 0x10,
+  0x6f, 0xf9, 0x2a, 0xc3, 0x47, 0xc1, 0x72, 0xee, 0x39, 0xa0, 0x3d, 0x54,
+  0xf2, 0x57, 0x00, 0x24, 0x30, 0x79, 0x29, 0x57, 0x36, 0x25, 0xd5, 0x3c,
+  0xc1, 0x42, 0xcd, 0x5a, 0x04, 0x9d, 0x66, 0xcd, 0x62, 0xda, 0x1d, 0x19,
+  0x92, 0x69, 0x5d, 0x40, 0xb6, 0x40, 0x90, 0x6d, 0x77, 0x9b, 0x4e, 0xab,
+  0x2c, 0x66, 0x38, 0xff, 0x05, 0x46, 0xad, 0xbe, 0x1a, 0x43, 0x6c, 0xd7,
+  0xf6, 0x8f, 0xeb, 0x8f, 0xc7, 0x47, 0x74, 0x31, 0x01, 0xd1, 0xda, 0x76,
+  0xb4, 0x7d, 0x06, 0x69, 0xb9, 0xe3, 0x9b, 0xa8, 0xb8, 0x94, 0x39, 0x40,
+  0x3f, 0x65, 0x49, 0x8d, 0x8d, 0x31, 0xd6, 0xd3, 0x36, 0xc8, 0x5f, 0xc9,
+  0xb6, 0xca, 0x82, 0x39, 0x4f, 0x59, 0x9d, 0x52, 0xb9, 0x8f, 0xca, 0xf7,
+  0x45, 0xde, 0x6f, 0x01, 0x50, 0xd5, 0x15, 0x41, 0x33, 0xae, 0x6e, 0x18,
+  0x01, 0x4a, 0x48, 0x17, 0x6f, 0x88, 0x1a, 0xbe, 0xbf, 0x78, 0xdb, 0xfc,
+  0x16, 0x1c, 0xf8, 0x3b, 0x38, 0x67, 0x7c, 0x47, 0x96, 0x89, 0x6e, 0x85,
+  0x09, 0x2d, 0x15, 0x92, 0x66, 0xc2, 0xe8, 0x7b, 0x62, 0x1d, 0xce, 0x61,
+  0x61, 0x39, 0x80, 0xaf, 0xa4, 0xa7, 0x29, 0x0b, 0x56, 0x2f, 0x17, 0x68,
+  0xc7, 0xc7, 0xfa, 0xf3, 0xdd, 0xdb, 0x6f, 0x7e, 0xf9, 0xf1, 0x1f, 0xad,
+  0x7d, 0xd1, 0xdd, 0xdd, 0xf3, 0xf6, 0x29, 0x41, 0x30, 0xd4, 0x3b, 0x00,
+  0x0a, 0x84, 0xc8, 0xa9, 0x51, 0x60, 0x08, 0x4a, 0x0a, 0x7d, 0xa3, 0x85,
+  0x32, 0x73, 0xfb, 0xd2, 0x15, 0xb5, 0x9d, 0x62, 0x25, 0x5c, 0x13, 0xc8,
+  0xfd, 0xda, 0xb8, 0x10, 0x8e, 0x4c, 0xd8, 0xe8, 0xad, 0xa1, 0x3a, 0xbc,
+  0x37, 0x6e, 0xc9, 0xc2, 0x08, 0x15, 0x26, 0xc7, 0x78, 0x4e, 0xde, 0x93,
+  0xd5, 0xa4, 0x84, 0x80, 0xd0, 0xba, 0x0c, 0xdf, 0xa9, 0xde, 0xb0, 0x15,
+  0xb2, 0xfd, 0xc6, 0x34, 0xd1, 0x43, 0xc4, 0x95, 0x89, 0xd2, 0x42, 0xb4,
+  0xab, 0x21, 0x55, 0x74, 0xf5, 0xe2, 0xce, 0x73, 0x6b, 0x8c, 0xa6, 0x00,
+  0x01, 0x98, 0xd2, 0xc1, 0x79, 0xe6, 0xa1, 0x4d, 0xfe, 0xff, 0x67, 0x46,
+  0x39, 0x70, 0xed, 0x80, 0x0e, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0xff,
+  0xff, 0x1d, 0x6c, 0xa6, 0x30, 0xd0, 0xe4, 0x34, 0x0b, 0x0c, 0xc2, 0x01,
+  0xa5, 0xdb, 0x8f, 0x57, 0xae, 0x1a, 0x45, 0xee, 0xf2, 0x12, 0x92, 0x89,
+  0x2a, 0x6c, 0x5a, 0x46, 0x24, 0xd1, 0x91, 0x4a, 0xec, 0x42, 0x65, 0x65,
+  0x50, 0xa8, 0x99, 0x42, 0x4d, 0x50, 0x78, 0x1b, 0xf7, 0xb5, 0x3e, 0xa3,
+  0xc5, 0x7a, 0xc2, 0xa3, 0x17, 0x44, 0x64, 0x00, 0xb9, 0x7f, 0x3f, 0x3d,
+  0x47, 0x7d, 0x93, 0x58, 0x0e, 0x97, 0xea, 0x28, 0xdf, 0x13, 0xff, 0xb5,
+  0x9f, 0xd4, 0xfe, 0x7e, 0x8b, 0xcf, 0x75, 0xac, 0xf5, 0xac, 0x97, 0xb0,
+  0x54, 0x09, 0x9b, 0x91, 0xb7, 0xcf, 0x74, 0xda, 0xfe, 0x23, 0x37, 0xd8,
+  0x7c, 0x6d, 0x9e, 0x1e, 0x05, 0xe6, 0x2f, 0x38, 0xd9, 0x59, 0x40, 0x26,
+  0x26, 0xb9, 0x03, 0x81, 0xa7, 0xd1, 0xc5, 0x25, 0x5f, 0x4e, 0x2a, 0xd0,
+  0x1d, 0xd8, 0x3c, 0x78, 0x5b, 0x70, 0xf8, 0xf9, 0xe9, 0xe8, 0x2c, 0xae,
+  0xe5, 0x6e, 0x49, 0x13, 0xed, 0xfd, 0x52, 0x9a, 0x41, 0xe0, 0xd0, 0xb5,
+  0xb6, 0xf2, 0x25, 0x82, 0x1c, 0x82, 0x83, 0x25, 0x98, 0x2a, 0xe7, 0x8d,
+  0x08, 0xd0, 0x24, 0x8c, 0x04, 0xa5, 0x74, 0x4a, 0x84, 0x6b, 0x82, 0x27,
+  0x84, 0xeb, 0x45, 0xb3, 0x79, 0x5c, 0x7e, 0x58, 0x5c, 0x5e, 0x2f, 0x1c,
+  0x45, 0x80, 0x35, 0x7e, 0x04, 0x31, 0xef, 0x67, 0x82, 0x30, 0xfc, 0xa5,
+  0xbc, 0xee, 0x2f, 0x47, 0x63, 0x43, 0x6d, 0x36, 0x4e, 0x59, 0xc0, 0x21,
+  0xe1, 0xba, 0x84, 0x75, 0x6c, 0xa8, 0x21, 0x21, 0x96, 0x24, 0x70, 0xde,
+  0x4f, 0xb8, 0x10, 0x84, 0x0c, 0x17, 0x87, 0x09, 0x82, 0xce, 0x99, 0xee,
+  0xeb, 0x21, 0x7b, 0xa5, 0xad, 0xa8, 0x69, 0x96, 0xf3, 0x3b, 0xe7, 0x79,
+  0x88, 0x78, 0xb4, 0x8c, 0xf3, 0x63, 0x34, 0xe0, 0xfb, 0x03, 0x73, 0x18,
+  0xa1, 0x5c, 0xd7, 0x15, 0xd2, 0xf7, 0x86, 0xbe, 0xfe, 0xde, 0x17, 0x11,
+  0x7d, 0x1e, 0x1c, 0xbe, 0x78, 0x3e, 0x7e, 0xc5, 0x28, 0x36, 0x12, 0x87,
+  0x60, 0x00, 0x54, 0x15, 0x15, 0x6c, 0x00, 0x04, 0x0d, 0x8b, 0xd8, 0x98,
+  0x0b, 0xa4, 0x29, 0x6a, 0x22, 0xaa, 0xe0, 0x05, 0x6d, 0xaf, 0x77, 0xbd,
+  0x19, 0xf6, 0xbc, 0xa5, 0x5d, 0x2d, 0xb6, 0x0c, 0x33, 0x9b, 0x16, 0xe7,
+  0x0a, 0xf4, 0x5d, 0xe7, 0xc2, 0x45, 0x04, 0xcd, 0x56, 0x3b, 0xd7, 0x03,
+  0x59, 0xc7, 0xfd, 0x9a, 0x74, 0x3f, 0x7d, 0x57, 0xf8, 0x80, 0x6e, 0x78,
+  0x4e, 0xc6, 0x33, 0x6f, 0x5c, 0x28, 0x5b, 0x25, 0xb7, 0x4c, 0xcd, 0x20,
+  0xce, 0x67, 0x7e, 0x52, 0x59, 0x14, 0xd3, 0x6e, 0xf8, 0x6d, 0xb9, 0xcf,
+  0x7f, 0xb7, 0xa7, 0x80, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x7f,
+  0xff, 0x21, 0x6f, 0xa3, 0xc0, 0xd8, 0x68, 0xa6, 0x1a, 0x84, 0x13, 0xc8,
+  0x27, 0x14, 0xe1, 0x5a, 0x8a, 0xd4, 0xa8, 0xc4, 0xc5, 0x84, 0x30, 0x6b,
+  0xf2, 0x61, 0x95, 0x83, 0xb6, 0xde, 0x25, 0x0c, 0x0c, 0xa8, 0xaa, 0x84,
+  0x4b, 0x1c, 0xdf, 0xcb, 0x38, 0x57, 0xf7, 0x2c, 0x22, 0x11, 0x87, 0xf4,
+  0x04, 0xd4, 0xae, 0xe2, 0xfb, 0x36, 0x00, 0x89, 0x69, 0x17, 0x85, 0x08,
+  0x1e, 0x49, 0x43, 0x98, 0xe7, 0xb9, 0x1b, 0xa7, 0xaf, 0xb8, 0xfa, 0x44,
+  0x6b, 0xc2, 0x35, 0xfe, 0x8c, 0xb0, 0xf8, 0x65, 0x00, 0xb8, 0x66, 0x6f,
+  0xd8, 0x7a, 0x05, 0xd3, 0xc6, 0x63, 0xdc, 0x3b, 0x84, 0x75, 0xaa, 0xa3,
+  0x5b, 0xe8, 0x5a, 0xe6, 0x35, 0xcf, 0xf4, 0xde, 0xd7, 0x1a, 0x81, 0x6f,
+  0x96, 0x4c, 0x9b, 0x19, 0x52, 0xc5, 0x3a, 0x9b, 0x0c, 0xf8, 0xd1, 0xa2,
+  0xc7, 0x0c, 0x2c, 0x95, 0xdc, 0x28, 0xaf, 0x65, 0x66, 0xe8, 0x34, 0x1e,
+  0x02, 0x9f, 0x6a, 0x0a, 0x60, 0x4e, 0x9e, 0x26, 0xb3, 0x2b, 0x67, 0x5c,
+  0x19, 0xb6, 0x02, 0x02, 0x4c, 0x68, 0xd3, 0x24, 0xf3, 0xc2, 0x88, 0x3a,
+  0x80, 0xbf, 0x0c, 0x63, 0x81, 0x09, 0x6f, 0xaa, 0xa2, 0x3a, 0xb4, 0x74,
+  0xed, 0x88, 0x0b, 0x02, 0x9b, 0x75, 0x5d, 0x2f, 0x37, 0x8f, 0x37, 0x01,
+  0x75, 0x2d, 0xeb, 0x5a, 0x86, 0xbb, 0xb8, 0xfe, 0x9b, 0x13, 0x66, 0xd2,
+  0x52, 0x04, 0x26, 0x6c, 0x9d, 0x2b, 0x2f, 0xa9, 0x03, 0xd1, 0xc7, 0x1b,
+  0x23, 0x78, 0x2b, 0x88, 0x49, 0x90, 0x02, 0x47, 0xbd, 0xdb, 0xcd, 0x5d,
+  0x3e, 0x21, 0xc4, 0x47, 0x90, 0x1f, 0x95, 0x91, 0x51, 0xa1, 0xcd, 0xf5,
+  0xc7, 0x80, 0x02, 0x05, 0x18, 0x6c, 0x11, 0xe7, 0x58, 0xc4, 0x0d, 0x07,
+  0xeb, 0x0b, 0xaf, 0x7e, 0x6f, 0xc7, 0x09, 0x95, 0x4a, 0xf3, 0x6b, 0x8c,
+  0x00, 0x09, 0x3b, 0xc6, 0x46, 0x50, 0x9d, 0xbd, 0x71, 0xd7, 0xbb, 0x8a,
+  0x09, 0x63, 0x67, 0x77, 0x50, 0xe3, 0xdf, 0x85, 0x25, 0x12, 0x74, 0x63,
+  0x1c, 0xfd, 0x9d, 0x95, 0x00, 0x0f, 0x9f, 0xc0, 0x28, 0x91, 0x02, 0xc3,
+  0x50, 0xec, 0xa9, 0x51, 0x28, 0xa8, 0x05, 0x49, 0x49, 0x80, 0x20, 0x39,
+  0x4c, 0xda, 0xc9, 0xb5, 0x6a, 0x94, 0x7f, 0x3a, 0x72, 0xbb, 0x8d, 0x6b,
+  0xca, 0x8c, 0x99, 0xa7, 0xe5, 0xc1, 0x32, 0x03, 0x7b, 0xd6, 0x8c, 0x3c,
+  0xce, 0x4d, 0x29, 0xec, 0x9e, 0x60, 0x15, 0x16, 0x64, 0xbe, 0x40, 0x02,
+  0x69, 0x45, 0xe7, 0x3c, 0x6c, 0xbb, 0x2c, 0x96, 0xc2, 0x17, 0x61, 0xea,
+  0xb5, 0x0f, 0x84, 0x91, 0x4d, 0xad, 0x37, 0x87, 0x73, 0x96, 0xf5, 0xec,
+  0x90, 0x0e, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x6f,
+  0xa5, 0x30, 0x91, 0x6c, 0x33, 0x08, 0x05, 0xd9, 0xc1, 0x1a, 0x6a, 0x93,
+  0x54, 0x05, 0x10, 0x48, 0xc1, 0x58, 0x1b, 0xd7, 0xb2, 0x1d, 0x1c, 0x7a,
+  0xde, 0x92, 0x26, 0x41, 0x79, 0x15, 0x0f, 0x74, 0x80, 0x90, 0x49, 0x20,
+  0x98, 0x2e, 0xf5, 0xd7, 0x43, 0x95, 0x4d, 0xd4, 0x7f, 0xe8, 0xe3, 0xdc,
+  0xa0, 0x4d, 0xa8, 0x97, 0x51, 0xe7, 0x7f, 0xa4, 0xfa, 0x0f, 0xcf, 0xb8,
+  0xf0, 0x99, 0x1f, 0x9c, 0xa9, 0x5e, 0xf3, 0xed, 0x5d, 0xfc, 0xe8, 0xf9,
+  0x5c, 0xf5, 0xbf, 0x31, 0x29, 0x50, 0xd1, 0x5c, 0x27, 0x61, 0xff, 0x73,
+  0xcf, 0x82, 0xdb, 0xb3, 0x6e, 0x6d, 0x7f, 0xb1, 0x6d, 0x4f, 0x8a, 0xb2,
+  0x59, 0x0d, 0x53, 0xe2, 0x32, 0x4d, 0xcd, 0x98, 0xa3, 0xb8, 0xd8, 0xb6,
+  0x3d, 0x3a, 0xdb, 0x08, 0x30, 0xb2, 0x40, 0xaa, 0x04, 0xfc, 0x35, 0x9a,
+  0x16, 0xa1, 0x80, 0x46, 0xa3, 0x1b, 0xb7, 0xae, 0xa9, 0xd4, 0x5d, 0xe6,
+  0xd5, 0x54, 0xe9, 0x68, 0xf5, 0xe7, 0x99, 0x6a, 0xd4, 0xbc, 0x3f, 0xd1,
+  0xbc, 0x4c, 0x4d, 0x3e, 0xf8, 0x02, 0xe5, 0x97, 0x1f, 0xf3, 0x5d, 0x93,
+  0x98, 0x9d, 0x31, 0x6c, 0xa8, 0x31, 0x2a, 0xd7, 0x50, 0xd2, 0xeb, 0x38,
+  0x54, 0x75, 0x5e, 0xf6, 0xc1, 0x70, 0x54, 0x21, 0x92, 0x51, 0xe5, 0x66,
+  0xac, 0x63, 0x3e, 0x90, 0xb4, 0x86, 0x65, 0xeb, 0x43, 0xc5, 0xff, 0x7a,
+  0x0c, 0x37, 0x1c, 0xf3, 0xb7, 0x23, 0x2b, 0x57, 0x9d, 0x5f, 0x8b, 0x10,
+  0xa2, 0x41, 0x22, 0x00, 0x99, 0x0c, 0x62, 0x06, 0x3e, 0x5b, 0xe3, 0x34,
+  0xa0, 0x5a, 0xec, 0x38, 0x04, 0x61, 0x26, 0x7d, 0x9d, 0xfd, 0x65, 0xbc,
+  0x9b, 0x7f, 0x1c, 0x0f, 0x4c, 0x9f, 0xdf, 0x6a, 0xa0, 0x75, 0x06, 0x77,
+  0x33, 0xb7, 0x56, 0x64, 0xda, 0xaa, 0x5b, 0x64, 0xae, 0xfe, 0xf1, 0xae,
+  0xe7, 0x77, 0xbb, 0x0d, 0xe1, 0xa6, 0x27, 0xf2, 0x3c, 0xbe, 0x13, 0xec,
+  0xa3, 0xa7, 0xa6, 0xb2, 0x57, 0xfe, 0xba, 0xf7, 0xea, 0xea, 0xd9, 0xd5,
+  0x5d, 0xd5, 0x71, 0x5e, 0xfd, 0x79, 0x0f, 0xd3, 0x7c, 0x9f, 0xdc, 0x9f,
+  0x04, 0x1f, 0x7f, 0x62, 0x72, 0x1a, 0x09, 0x84, 0xa1, 0xe6, 0x0a, 0x89,
+  0x42, 0xa0, 0x15, 0x2a, 0x20, 0x08, 0x10, 0x0f, 0x0c, 0x40, 0x37, 0x2e,
+  0x00, 0xef, 0xa5, 0xea, 0xac, 0xa7, 0x22, 0xb5, 0x1a, 0x6b, 0xb6, 0x50,
+  0x8e, 0xeb, 0xe0, 0xd6, 0x2b, 0xa1, 0xa9, 0x82, 0x3b, 0x84, 0xb5, 0xa4,
+  0xc2, 0x60, 0x47, 0xf4, 0x71, 0x75, 0xee, 0x90, 0x7e, 0xff, 0xf0, 0x2e,
+  0x8c, 0xf1, 0x25, 0xfe, 0x30, 0x91, 0xb6, 0x9c, 0xb3, 0x66, 0xb8, 0x03,
+  0xaa, 0xa4, 0x93, 0x37, 0x77, 0x02, 0xda, 0x8d, 0x7b, 0xce, 0xab, 0x3b,
+  0x57, 0xdf, 0x24, 0xde, 0x14, 0xa8, 0x1e, 0xcb, 0xea, 0x9d, 0xf5, 0xd3,
+  0x9e, 0xaf, 0x9f, 0xa7, 0xbb, 0x80, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00,
+  0x00, 0xff, 0xff, 0x27, 0x6f, 0xa5, 0x30, 0x90, 0x6c, 0x14, 0x3b, 0x0d,
+  0x42, 0x04, 0xd5, 0xac, 0xf3, 0x97, 0x5a, 0x9c, 0x5f, 0x7a, 0x6a, 0x90,
+  0x52, 0x23, 0x7a, 0x60, 0x4a, 0x40, 0xca, 0xc6, 0xb9, 0x30, 0x50, 0x11,
+  0x2a, 0xbb, 0x3f, 0x3a, 0x97, 0xec, 0xde, 0x21, 0xcd, 0x35, 0x67, 0xe5,
+  0x66, 0x0e, 0x6b, 0xfa, 0x7c, 0xf5, 0xe0, 0xba, 0x22, 0x54, 0x1e, 0xec,
+  0xae, 0x46, 0x3d, 0x35, 0xd6, 0x49, 0xb0, 0x82, 0xf4, 0xac, 0x3a, 0x9b,
+  0xa7, 0x23, 0x89, 0x8a, 0xf9, 0xd1, 0x6d, 0xa9, 0xb2, 0x58, 0x2e, 0x88,
+  0xda, 0x11, 0xbb, 0x3b, 0xe6, 0xd7, 0x3d, 0x6e, 0xb8, 0x1f, 0xb5, 0xbe,
+  0xb5, 0xd7, 0x9a, 0x65, 0xb9, 0x0e, 0x87, 0x76, 0xfc, 0xda, 0xf3, 0x65,
+  0x7c, 0xad, 0x9a, 0xd1, 0xc3, 0xbc, 0x43, 0x3c, 0x47, 0x49, 0x0d, 0x20,
+  0xb6, 0x41, 0x79, 0x0e, 0xf4, 0x74, 0x91, 0x2c, 0xd5, 0x32, 0x99, 0xdb,
+  0x66, 0x95, 0x03, 0x47, 0x5a, 0x82, 0xa5, 0x83, 0x14, 0x74, 0x57, 0x0b,
+  0x3e, 0x68, 0x6b, 0x65, 0x41, 0xdc, 0x49, 0xc5, 0x7e, 0x94, 0x21, 0x63,
+  0x85, 0x42, 0x72, 0x9c, 0x95, 0x0c, 0xb6, 0xd0, 0x95, 0x41, 0x56, 0xf1,
+  0xd5, 0xe9, 0x73, 0x1e, 0x28, 0x77, 0xa0, 0xfe, 0x81, 0x2b, 0xe0, 0xba,
+  0x7f, 0x8d, 0x84, 0x77, 0x12, 0xda, 0x4d, 0x0e, 0xa8, 0x27, 0xa5, 0xa9,
+  0xa6, 0x01, 0x5c, 0xa9, 0x3d, 0xb3, 0x25, 0x47, 0x0a, 0x1b, 0xee, 0xf1,
+  0x5a, 0xcd, 0x4c, 0x23, 0x5c, 0x41, 0x44, 0x95, 0x63, 0x05, 0x38, 0xe7,
+  0x67, 0xcb, 0xb2, 0xc0, 0xe6, 0xbb, 0xbc, 0xbe, 0xff, 0x10, 0xb2, 0x7c,
+  0x7e, 0xdb, 0x85, 0x00, 0x36, 0xbd, 0xaf, 0x67, 0xad, 0xfe, 0x29, 0xfe,
+  0x25, 0xf6, 0x9d, 0x63, 0x77, 0x79, 0xe5, 0x7f, 0xba, 0x7d, 0x55, 0xf5,
+  0x0b, 0xd4, 0x43, 0xef, 0x57, 0x46, 0x21, 0x0d, 0x74, 0x9c, 0x69, 0xd1,
+  0x5d, 0x32, 0xaf, 0x3f, 0x24, 0xe5, 0x25, 0x37, 0x31, 0xe6, 0xcc, 0xb1,
+  0x74, 0x82, 0xd2, 0x67, 0x35, 0xd4, 0xc1, 0x9b, 0x5c, 0x68, 0xba, 0xdb,
+  0xef, 0x8b, 0x45, 0xd7, 0x8f, 0x47, 0x3f, 0x6e, 0x7a, 0xa0, 0x01, 0xfb,
+  0xf6, 0x2b, 0x61, 0xa8, 0x76, 0x54, 0xa8, 0x15, 0x2a, 0x29, 0x13, 0x25,
+  0x25, 0x00, 0x10, 0xa0, 0x00, 0xac, 0x15, 0x90, 0x02, 0x80, 0x85, 0x85,
+  0x05, 0x9e, 0x74, 0x0e, 0x02, 0x08, 0xa9, 0x18, 0xc5, 0x54, 0xd0, 0x84,
+  0x3f, 0x5d, 0xb5, 0x93, 0x1c, 0x59, 0xd4, 0x0f, 0xce, 0x3c, 0xde, 0x49,
+  0x78, 0x41, 0xc9, 0xe4, 0x59, 0xf3, 0xc0, 0x1a, 0x0d, 0x12, 0xdb, 0x8a,
+  0x4b, 0x96, 0x78, 0xb6, 0xb7, 0x10, 0xb9, 0x29, 0x7a, 0xd4, 0x11, 0x9a,
+  0xa1, 0x8a, 0x49, 0x6d, 0x40, 0x9e, 0xfb, 0x71, 0xee, 0xf8, 0x5f, 0x08,
+  0x00, 0xe0, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x23, 0x71,
+  0xa1, 0xc1, 0x52, 0x02, 0x10, 0x12, 0xe4, 0xb4, 0x9a, 0xb3, 0x49, 0x57,
+  0x29, 0x39, 0xe0, 0x32, 0xd4, 0x8e, 0x47, 0x8c, 0xe5, 0x76, 0x7c, 0xae,
+  0x3f, 0x2e, 0x3e, 0x49, 0x16, 0x12, 0xde, 0x25, 0x64, 0x4c, 0x43, 0xa7,
+  0xfe, 0xbf, 0x51, 0x1b, 0xa4, 0x36, 0xcd, 0x4b, 0xdd, 0xbc, 0x13, 0x47,
+  0xfe, 0xdf, 0x4c, 0xb1, 0x72, 0xc7, 0x1a, 0x53, 0x01, 0xd5, 0x46, 0x73,
+  0x04, 0x4d, 0xb1, 0x57, 0x67, 0x1d, 0x3e, 0x95, 0x6a, 0x8c, 0xb0, 0xba,
+  0x10, 0x98, 0xe5, 0xf9, 0x31, 0x22, 0x72, 0x71, 0x1a, 0x7b, 0xea, 0xf9,
+  0x9d, 0x68, 0xc7, 0xd6, 0xf1, 0xa7, 0xe3, 0xa9, 0xbb, 0x0f, 0x58, 0xb5,
+  0x0e, 0x6c, 0x02, 0x16, 0x33, 0xe0, 0x9c, 0x56, 0x94, 0xf9, 0xd1, 0x76,
+  0xca, 0x35, 0xd6, 0x6f, 0x69, 0x4b, 0xb3, 0x99, 0x83, 0x67, 0x2d, 0x9d,
+  0xfe, 0x1f, 0xe1, 0x93, 0x2b, 0xb2, 0x6b, 0x6c, 0xdd, 0x1b, 0x27, 0xcb,
+  0x98, 0xc2, 0x77, 0x7b, 0x91, 0xa4, 0x17, 0x45, 0x66, 0x3e, 0xef, 0xda,
+  0x6e, 0x41, 0xbf, 0xb9, 0x3c, 0x5b, 0x10, 0xd4, 0xb1, 0x65, 0x36, 0xb1,
+  0x0c, 0x03, 0x2a, 0x3c, 0x0e, 0xd7, 0x7b, 0x61, 0xc5, 0x7c, 0x48, 0x12,
+  0x2d, 0xf4, 0x7b, 0x17, 0xc5, 0x8c, 0xd2, 0x80, 0xdc, 0xd0, 0x50, 0x2f,
+  0x71, 0x5a, 0x6a, 0x3f, 0xd8, 0x21, 0xbf, 0x02, 0xf3, 0x7e, 0xf6, 0xf8,
+  0xbc, 0xc4, 0x05, 0xe3, 0xb5, 0xb2, 0x20, 0x16, 0xcf, 0x18, 0x59, 0x9c,
+  0xff, 0x0d, 0x76, 0x5c, 0x06, 0x67, 0x5c, 0xbb, 0x83, 0xd4, 0xd9, 0x89,
+  0x9b, 0x20, 0xfb, 0x28, 0xce, 0xb5, 0x2f, 0x89, 0xc0, 0x55, 0x23, 0xd7,
+  0x98, 0x76, 0x6b, 0x48, 0x2c, 0x3c, 0x34, 0xf5, 0x93, 0x86, 0x00, 0x77,
+  0x38, 0xf1, 0x0f, 0x96, 0xb7, 0x12, 0xb5, 0x96, 0x97, 0x83, 0x5d, 0x6d,
+  0x9a, 0x12, 0x5e, 0x84, 0xce, 0xb4, 0xf9, 0x9f, 0xff, 0x6f, 0xda, 0xf0,
+  0xc8, 0x0f, 0xff, 0xf3, 0x21, 0x14, 0x3b, 0x54, 0xa8, 0xa4, 0x54, 0x99,
+  0x28, 0x8a, 0x44, 0x94, 0xc8, 0x99, 0x73, 0x25, 0x58, 0x10, 0x3d, 0xaf,
+  0x06, 0x00, 0x92, 0x49, 0x66, 0x33, 0x98, 0x40, 0x9c, 0x13, 0x1f, 0x54,
+  0x34, 0xfd, 0x19, 0xb4, 0x63, 0x76, 0xfe, 0xd4, 0xe7, 0x42, 0xd3, 0x3f,
+  0x92, 0x03, 0xd3, 0x7a, 0xe9, 0x9f, 0x5e, 0x6b, 0x8c, 0x80, 0x70, 0x21,
+  0x1a, 0x88, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x1f, 0x70, 0xa2, 0x41, 0x58,
+  0x48, 0xd6, 0x08, 0x84, 0x00, 0xe3, 0x56, 0x44, 0xbb, 0xa8, 0x97, 0x50,
+  0x00, 0xa9, 0x53, 0xb1, 0x83, 0x22, 0xdd, 0x0e, 0x56, 0x35, 0x15, 0x58,
+  0x81, 0x55, 0xe7, 0x44, 0x98, 0x3f, 0x3f, 0xf9, 0x2a, 0xc8, 0x7f, 0xa2,
+  0x4c, 0x01, 0x99, 0x01, 0x9a, 0xff, 0x15, 0xe6, 0xbc, 0x6d, 0x20, 0x73,
+  0x02, 0x3c, 0xce, 0xd2, 0x34, 0xc1, 0xad, 0x34, 0x6f, 0xfb, 0x5d, 0x42,
+  0xeb, 0x5e, 0x65, 0xe4, 0xc6, 0xd4, 0xf1, 0xcf, 0xb3, 0xdd, 0xf2, 0xff,
+  0x97, 0x0b, 0x55, 0xec, 0xa8, 0x1b, 0xb3, 0xef, 0x4b, 0xf4, 0xad, 0x37,
+  0x51, 0x93, 0xa8, 0xf4, 0x1a, 0x5c, 0x53, 0x3a, 0x83, 0x0e, 0x56, 0xf1,
+  0x8e, 0x5e, 0xff, 0x22, 0xf0, 0xff, 0x5a, 0xd3, 0x50, 0x3d, 0x62, 0x8b,
+  0x0a, 0x33, 0x1a, 0x2e, 0x8a, 0x0f, 0xd4, 0x65, 0x46, 0x2b, 0x2a, 0xbf,
+  0x5c, 0x5f, 0xe3, 0x71, 0x74, 0x44, 0x59, 0x7b, 0x99, 0x41, 0x89, 0xa1,
+  0xc2, 0x06, 0x54, 0x14, 0x2d, 0xe1, 0x64, 0x87, 0xef, 0x48, 0x77, 0x48,
+  0x72, 0x92, 0xb0, 0x31, 0xbb, 0x8d, 0xa9, 0x20, 0x06, 0xb4, 0x92, 0x6d,
+  0x1d, 0x1f, 0x2c, 0x06, 0xd6, 0x3c, 0x43, 0x3d, 0xf3, 0x88, 0xfe, 0x10,
+  0x8d, 0x6c, 0xc8, 0xc1, 0x26, 0xac, 0xb8, 0x45, 0x1f, 0x15, 0x42, 0x28,
+  0x3f, 0x0f, 0x1a, 0xb5, 0xf1, 0xe1, 0x0b, 0xe8, 0xbe, 0x48, 0x86, 0x02,
+  0x76, 0x6f, 0xcb, 0x7c, 0x2f, 0xd5, 0xf1, 0xad, 0xbb, 0xa1, 0x00, 0x7d,
+  0x9a, 0x14, 0x6d, 0xc1, 0x4a, 0xef, 0xa7, 0x7b, 0xc8, 0x68, 0x97, 0x1f,
+  0x45, 0xa1, 0x44, 0x6c, 0x05, 0x3e, 0xd6, 0x2b, 0xe7, 0x44, 0x8d, 0x57,
+  0xd3, 0x1f, 0x6c, 0x6f, 0xb5, 0x13, 0xa3, 0xb5, 0xcf, 0xe4, 0x4f, 0x1c,
+  0x3c, 0x18, 0x38, 0x73, 0x48, 0x3b, 0xa1, 0x22, 0xc2, 0x74, 0xf7, 0x40,
+  0xd0, 0x5d, 0xdd, 0x6f, 0xb1, 0xcc, 0x8b, 0xa8, 0xd2, 0xd6, 0x7a, 0x1d,
+  0x1d, 0x92, 0x5c, 0x4c, 0x56, 0xc1, 0x3e, 0x4d, 0x3c, 0x5b, 0x5c, 0x9f,
+  0x5f, 0xcf, 0x6d, 0xc1, 0xfb, 0xfe, 0x74, 0x26, 0xd1, 0x55, 0x2a, 0x2a,
+  0x51, 0x00, 0x10, 0xa1, 0x51, 0x52, 0x42, 0x81, 0x6a, 0xe3, 0xb7, 0xfe,
+  0x31, 0xf7, 0x01, 0x3f, 0x22, 0x20, 0x60, 0x52, 0x99, 0x70, 0x06, 0x80,
+  0x43, 0xad, 0x6a, 0x3d, 0x37, 0x1e, 0xc2, 0x45, 0x17, 0x0a, 0x69, 0xdd,
+  0xdf, 0x07, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x07, 0xff, 0xff, 0x2b, 0x6f,
+  0xa5, 0x30, 0x50, 0x8c, 0x54, 0x1b, 0x0d, 0x42, 0x0e, 0x35, 0x6d, 0x2d,
+  0x69, 0x75, 0xa9, 0x63, 0x55, 0x42, 0x03, 0x2d, 0x57, 0x43, 0xbf, 0x70,
+  0x62, 0x52, 0xb5, 0x92, 0xbe, 0x83, 0xf4, 0xb0, 0x49, 0x50, 0x3c, 0xa9,
+  0x70, 0xa1, 0xd8, 0x35, 0xed, 0xcb, 0xdb, 0xfe, 0x05, 0xe3, 0x3e, 0x10,
+  0x99, 0x0b, 0x32, 0x0f, 0x4b, 0xfe, 0x8f, 0xd2, 0x78, 0xc7, 0x48, 0xe1,
+  0x4c, 0x5f, 0x17, 0xaa, 0x79, 0x97, 0x83, 0xc6, 0x9d, 0x31, 0xa4, 0xa3,
+  0x2a, 0x5b, 0xb9, 0xe5, 0xc4, 0xc8, 0x2e, 0x70, 0x52, 0xd9, 0x0e, 0xcd,
+  0x27, 0xfe, 0x3e, 0x48, 0x67, 0x7a, 0x6d, 0x62, 0xc2, 0xbf, 0x45, 0xea,
+  0x12, 0x0b, 0xe3, 0x74, 0x50, 0xd7, 0x3f, 0x43, 0x03, 0x0f, 0x38, 0x41,
+  0xb7, 0x9d, 0x1e, 0x9a, 0x10, 0x88, 0x4d, 0xfb, 0x95, 0x34, 0xae, 0x42,
+  0x41, 0x48, 0x67, 0x3c, 0x5d, 0x28, 0x1d, 0x4f, 0x3e, 0xc5, 0x70, 0xb0,
+  0xf7, 0x2b, 0xa9, 0x66, 0x1d, 0xaa, 0x12, 0x02, 0xbc, 0x64, 0xeb, 0x6b,
+  0x64, 0x49, 0x92, 0x46, 0x13, 0x4d, 0x65, 0xdc, 0x52, 0x9d, 0x89, 0x4c,
+  0x4b, 0x56, 0x33, 0x84, 0x83, 0x13, 0x89, 0xe2, 0x40, 0x59, 0x4a, 0x47,
+  0xbd, 0xd0, 0xd8, 0x79, 0xe9, 0xe9, 0xfb, 0xf7, 0xc0, 0x76, 0xeb, 0xb6,
+  0x0b, 0xac, 0x22, 0x80, 0xdd, 0x74, 0xae, 0x54, 0x46, 0x43, 0x73, 0x23,
+  0xd4, 0xc2, 0x0c, 0x09, 0x7c, 0x91, 0x51, 0x33, 0x83, 0x9e, 0x1c, 0x54,
+  0x86, 0x53, 0x29, 0x6e, 0x46, 0xbd, 0x09, 0x4a, 0x44, 0x66, 0x96, 0xb0,
+  0xc1, 0xc6, 0x2d, 0x3a, 0xd9, 0xe0, 0xb8, 0x2c, 0x01, 0xa3, 0x05, 0x86,
+  0x10, 0xf1, 0x7a, 0x5b, 0x4d, 0xf2, 0xe4, 0x51, 0x7d, 0x7b, 0x4c, 0x36,
+  0xe0, 0x66, 0x7b, 0xb2, 0x38, 0x10, 0xfc, 0x19, 0xde, 0x5a, 0x66, 0x8f,
+  0xa6, 0x44, 0x52, 0xe8, 0x70, 0x9e, 0x74, 0xae, 0xeb, 0x9c, 0xb9, 0x00,
+  0x03, 0xb9, 0x45, 0x62, 0x6d, 0x20, 0xa9, 0x09, 0x5f, 0x3e, 0x1d, 0xff,
+  0x5c, 0x67, 0x2d, 0x58, 0xcf, 0x94, 0xb3, 0x5f, 0x7f, 0xb7, 0xed, 0xf4,
+  0xc7, 0xd1, 0xdb, 0xdb, 0xe0, 0x00, 0xfb, 0xf8, 0x36, 0x10, 0x98, 0x66,
+  0x1d, 0x94, 0x84, 0xa5, 0x45, 0x5e, 0x42, 0x92, 0x80, 0x40, 0x22, 0x6c,
+  0x6d, 0x4f, 0x14, 0x90, 0x9d, 0x61, 0x2d, 0x80, 0x12, 0x82, 0x84, 0x02,
+  0xf6, 0x43, 0x54, 0xbc, 0x34, 0xef, 0x66, 0x38, 0xf3, 0xed, 0x0d, 0x8c,
+  0x4e, 0xae, 0xf4, 0x68, 0x46, 0xd8, 0x36, 0x2f, 0xa9, 0x39, 0xd7, 0x76,
+  0xb5, 0xb7, 0xb4, 0xb6, 0x3f, 0xdc, 0x5b, 0x6e, 0x53, 0x74, 0xec, 0x64,
+  0xb8, 0x51, 0xe9, 0x85, 0xa7, 0x3a, 0xac, 0x45, 0xd5, 0x72, 0x78, 0x29,
+  0xde, 0x7f, 0x79, 0x4c, 0x8e, 0x44, 0xba, 0x5b, 0x85, 0x4e, 0x66, 0xe6,
+  0x60, 0xd6, 0x90, 0x27, 0x1a, 0x6a, 0xa8, 0xb7, 0x64, 0xc8, 0xd3, 0x65,
+  0xca, 0x89, 0x4f, 0x83, 0xcb, 0x5e, 0x76, 0x4c, 0x52, 0x69, 0xfb, 0x8f,
+  0x9f, 0xf4, 0xde, 0x48, 0x70, 0x21, 0x1a, 0x88, 0x00, 0x00, 0x00, 0x03,
+  0xff, 0x23, 0x6f, 0xa5, 0x22, 0x08, 0x68, 0x60, 0x43, 0xac, 0xb7, 0x01,
+  0xc2, 0xd1, 0x2e, 0x92, 0x91, 0x41, 0x29, 0x30, 0x5a, 0x4a, 0x9d, 0xd7,
+  0x76, 0x28, 0x91, 0xd3, 0x5c, 0x43, 0xc7, 0xa7, 0x9f, 0x4f, 0x58, 0x1a,
+  0xd4, 0x46, 0xf7, 0x9e, 0xed, 0x22, 0x63, 0xa8, 0xf3, 0xa4, 0x34, 0x27,
+  0x4d, 0xd8, 0x1c, 0x89, 0xcc, 0x5a, 0x86, 0x8e, 0xed, 0xde, 0xb2, 0x85,
+  0x57, 0xd5, 0x4c, 0x73, 0x46, 0xf4, 0x1c, 0xf6, 0xef, 0x82, 0x66, 0xbd,
+  0xa9, 0x64, 0x6c, 0xfa, 0x24, 0x9b, 0x63, 0x76, 0xff, 0x2a, 0xbf, 0xda,
+  0x6a, 0x0f, 0xb6, 0xb2, 0x5d, 0x48, 0xdf, 0x0d, 0xd4, 0x69, 0xe4, 0xb8,
+  0xdb, 0x69, 0x8e, 0x0a, 0x33, 0x7a, 0xa8, 0x8d, 0x5e, 0x75, 0xa7, 0x01,
+  0x81, 0xca, 0x4c, 0x55, 0xd3, 0xa5, 0x90, 0x65, 0x5a, 0xd3, 0x0d, 0x54,
+  0x85, 0x62, 0xc1, 0x33, 0xd0, 0x98, 0x89, 0xfc, 0x31, 0x86, 0x60, 0x31,
+  0x5c, 0x59, 0x2e, 0x1a, 0x42, 0x18, 0x2c, 0x03, 0x9a, 0xcc, 0x18, 0x7d,
+  0x7f, 0xf5, 0xbe, 0x65, 0x8f, 0xa2, 0x93, 0x49, 0xe8, 0xb6, 0x15, 0xea,
+  0xe7, 0xb5, 0x8b, 0x7e, 0x41, 0x3f, 0x14, 0xf4, 0x74, 0xc0, 0x7f, 0x95,
+  0x1a, 0x0c, 0xbc, 0xc1, 0x3c, 0xe0, 0x8d, 0x4b, 0x67, 0x40, 0x98, 0x2b,
+  0x96, 0xe8, 0x73, 0x0a, 0x06, 0xec, 0x02, 0xfb, 0x9b, 0x87, 0x04, 0x06,
+  0xfd, 0x53, 0x4b, 0xf8, 0x5f, 0x07, 0xdd, 0xd9, 0xbb, 0x49, 0xea, 0x85,
+  0xa0, 0xf0, 0xfe, 0x1d, 0x03, 0xa6, 0xe8, 0x09, 0xa3, 0x25, 0x77, 0x19,
+  0xf1, 0xa0, 0xfe, 0x81, 0x80, 0x83, 0x5e, 0x24, 0x71, 0xd9, 0x62, 0xe5,
+  0x20, 0x2a, 0xe8, 0xce, 0x8f, 0xf4, 0x8a, 0xf8, 0x66, 0xf7, 0xd1, 0xeb,
+  0x62, 0xd4, 0x0a, 0xe5, 0xe3, 0x7d, 0x8a, 0xad, 0xea, 0xaa, 0x1d, 0xa5,
+  0x41, 0xc1, 0xa2, 0x3b, 0xc8, 0x37, 0x8a, 0x57, 0x10, 0x1d, 0x77, 0x77,
+  0x7e, 0xff, 0x88, 0x48, 0x82, 0x61, 0x18, 0x79, 0xba, 0x04, 0x55, 0x25,
+  0x25, 0x42, 0xa2, 0x55, 0x44, 0xa5, 0x81, 0x01, 0x3f, 0xfd, 0x5d, 0x52,
+  0xc9, 0x05, 0xef, 0x35, 0x9d, 0x28, 0x8c, 0xb9, 0xa2, 0xa8, 0x02, 0xaa,
+  0x63, 0x21, 0xaa, 0xa5, 0xa2, 0xad, 0x0a, 0x9e, 0x0e, 0x3a, 0x9e, 0x61,
+  0x22, 0x95, 0x45, 0x86, 0xf3, 0xdc, 0x15, 0xb2, 0x03, 0x99, 0x9d, 0x84,
+  0x04, 0x74, 0xd5, 0x41, 0x0d, 0xa9, 0xe5, 0x36, 0x3d, 0x9e, 0xd0, 0x70,
+  0x21, 0x1a, 0x8f, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0x19, 0x6f, 0xa4, 0xb1,
+  0x11, 0x6c, 0x25, 0x08, 0x15, 0x5d, 0x25, 0xca, 0xab, 0x5d, 0x71, 0x65,
+  0xa8, 0x22, 0x81, 0x57, 0x54, 0x28, 0x95, 0x77, 0x89, 0x25, 0x28, 0x92,
+  0x46, 0x4c, 0x24, 0x20, 0x91, 0x5d, 0x83, 0xe3, 0xb3, 0xbe, 0xbb, 0x65,
+  0xd6, 0x61, 0xfb, 0x5f, 0x66, 0x51, 0x9e, 0xe7, 0x4d, 0x3f, 0xa5, 0xc0,
+  0x7f, 0x6e, 0x90, 0xca, 0x81, 0x8d, 0x3e, 0xe1, 0x61, 0xe1, 0x1c, 0xa9,
+  0x0d, 0xf5, 0x08, 0x96, 0x84, 0xfa, 0xd7, 0x17, 0x69, 0x2c, 0x27, 0x78,
+  0xba, 0xe3, 0x9a, 0xc0, 0xcf, 0xfc, 0xe7, 0x21, 0xba, 0xf5, 0x9e, 0x34,
+  0xf5, 0xb5, 0xf1, 0x96, 0xb3, 0x9f, 0x6e, 0x08, 0xa9, 0x38, 0x41, 0x7a,
+  0x83, 0xf5, 0x2a, 0xd8, 0x49, 0xf2, 0xf2, 0x55, 0x52, 0xab, 0xea, 0x5f,
+  0x95, 0x31, 0x5f, 0x4e, 0x5d, 0x36, 0x32, 0xbd, 0x8f, 0xae, 0x45, 0x38,
+  0x75, 0xc9, 0x56, 0xa1, 0xb4, 0x52, 0xce, 0x47, 0xc1, 0x57, 0xdc, 0xa7,
+  0xb3, 0x60, 0x1e, 0x1b, 0xc5, 0x0b, 0x96, 0xfd, 0x05, 0xa2, 0xcc, 0xe5,
+  0xdf, 0x7f, 0x3a, 0x58, 0xb3, 0x17, 0x87, 0x57, 0x59, 0x61, 0xd1, 0x29,
+  0x70, 0x24, 0xb5, 0x81, 0xc0, 0x41, 0x55, 0xc8, 0x3a, 0xd6, 0xb2, 0x0f,
+  0x37, 0xf3, 0xa1, 0xe0, 0x77, 0xe0, 0x09, 0x53, 0x85, 0xb9, 0x1e, 0xe2,
+  0xbf, 0x37, 0xe7, 0x64, 0x6a, 0xea, 0x3e, 0x3d, 0xef, 0xfd, 0x1c, 0x13,
+  0xe8, 0x22, 0xc2, 0xf4, 0x07, 0x41, 0xd4, 0xba, 0xe7, 0x59, 0x54, 0x5b,
+  0x74, 0xd5, 0x08, 0x6c, 0xbd, 0x56, 0x59, 0x67, 0xa9, 0x67, 0xa9, 0x31,
+  0x81, 0xde, 0xfc, 0x21, 0x45, 0x75, 0x58, 0xb5, 0x63, 0x7e, 0xe8, 0x8e,
+  0xc2, 0x3e, 0x32, 0x53, 0x17, 0x10, 0xae, 0xda, 0xdf, 0x1b, 0xf6, 0x3c,
+  0x76, 0xa7, 0x50, 0x5f, 0xd5, 0xa0, 0x3b, 0x82, 0x4e, 0xf6, 0xfa, 0x7b,
+  0x4e, 0x13, 0xa9, 0xcd, 0x75, 0xd4, 0x51, 0x8b, 0x03, 0xec, 0xc2, 0x52,
+  0x40, 0x76, 0x14, 0xa6, 0x50, 0xa5, 0x02, 0xfb, 0x51, 0x3a, 0x7d, 0x5f,
+  0x3c, 0xf7, 0xec, 0x00, 0x8c, 0xb2, 0x52, 0xbc, 0xc8, 0x53, 0x73, 0x08,
+  0xc2, 0x01, 0xb4, 0xf8, 0xd3, 0x98, 0x8c, 0xb8, 0x58, 0x00, 0x2b, 0x54,
+  0x1b, 0x27, 0x74, 0x7c, 0x14, 0x7d, 0xb8, 0xf1, 0x4e, 0x68, 0xfa, 0xcd,
+  0x74, 0x89, 0x0c, 0x5e, 0x81, 0x5c, 0xcb, 0xdd, 0x39, 0x94, 0x11, 0xc6,
+  0x01, 0x30, 0x19, 0x88, 0x57, 0x1a, 0xa3, 0x6a, 0xa6, 0xad, 0x25, 0x92,
+  0xbf, 0xf5, 0xf3, 0xfa, 0xb8, 0xf3, 0x13, 0xf1, 0x2f, 0xc2, 0x00, 0x79,
+  0xd5, 0x34, 0x09, 0x9b, 0xa0, 0xa5, 0x0c, 0xdd, 0xb5, 0xe9, 0x2a, 0xf6,
+  0x8e, 0x59, 0x92, 0x83, 0x88, 0x05, 0xe9, 0x81, 0x0b, 0xa7, 0x55, 0xc6,
+  0xdd, 0x89, 0x0a, 0x4d, 0xd9, 0xc8, 0x2d, 0xb3, 0x30, 0x08, 0x52, 0x02,
+  0x85, 0x13, 0xcb, 0xc5, 0x12, 0x13, 0x87, 0x62, 0x10, 0x4e, 0xba, 0x6a,
+  0xb8, 0xb1, 0xd2, 0x3c, 0xcc, 0xee, 0x66, 0xa9, 0xdf, 0xe9, 0xda, 0xfc,
+  0xa4, 0xb1, 0x18, 0x6e, 0x58, 0x44, 0x6c, 0x67, 0xa5, 0x54, 0x45, 0xe9,
+  0x53, 0x4e, 0xa1, 0x32, 0x82, 0x7c, 0xd7, 0x83, 0xec, 0xfa, 0x9b, 0x41,
+  0xc0, 0x21, 0x1a, 0x8f, 0xf0, 0x07, 0xff, 0xff, 0xff, 0x1d, 0x6f, 0xa4,
+  0xb0, 0xd1, 0xac, 0x17, 0x08, 0x12, 0xa8, 0xf2, 0xb4, 0x70, 0x95, 0x6d,
+  0x28, 0x82, 0x92, 0x89, 0x50, 0x09, 0x09, 0x64, 0x9c, 0xda, 0x89, 0x84,
+  0x02, 0x32, 0x61, 0xab, 0x77, 0x86, 0xa4, 0x49, 0x0a, 0x6e, 0x24, 0x21,
+  0x70, 0x5c, 0x4b, 0xdb, 0x3f, 0x3f, 0x84, 0xf5, 0xaf, 0xd4, 0x3b, 0x22,
+  0x9f, 0xf1, 0x0b, 0x93, 0xc0, 0x72, 0x36, 0xbc, 0x7c, 0xfd, 0xa3, 0x9b,
+  0xd5, 0x21, 0x17, 0xaf, 0x5e, 0xd2, 0x6d, 0xdc, 0xb9, 0x31, 0x3c, 0x4c,
+  0x7c, 0x8f, 0x58, 0x26, 0xa8, 0x70, 0x76, 0x2f, 0x16, 0xbd, 0x93, 0x7b,
+  0x16, 0xc1, 0x5d, 0x62, 0xe9, 0xa4, 0x8e, 0xf7, 0x89, 0x55, 0xb2, 0xc0,
+  0x92, 0xa6, 0xab, 0x1a, 0xbe, 0x31, 0x80, 0xe1, 0xac, 0xb6, 0x0a, 0x64,
+  0x74, 0xf5, 0x7b, 0x1b, 0xb6, 0xf1, 0x28, 0x79, 0xbe, 0x97, 0x24, 0xff,
+  0x23, 0x56, 0xd1, 0x3e, 0x38, 0x87, 0x63, 0x35, 0xd4, 0xd5, 0x35, 0xa5,
+  0x55, 0xbb, 0x56, 0x71, 0x5e, 0xfe, 0xb9, 0x38, 0x51, 0x1c, 0xaf, 0x27,
+  0x0c, 0xce, 0x62, 0x37, 0xa9, 0xc2, 0x24, 0x73, 0x94, 0xe9, 0x6c, 0xed,
+  0x4d, 0xe0, 0x31, 0x4f, 0x53, 0xdd, 0xaf, 0x43, 0x53, 0x97, 0x0d, 0xd5,
+  0x12, 0x83, 0x7e, 0x99, 0x39, 0x96, 0x2e, 0x49, 0xa1, 0x5d, 0xae, 0xdc,
+  0x06, 0x3c, 0x77, 0x82, 0xe3, 0x06, 0xb4, 0x83, 0x58, 0x6d, 0x1e, 0x90,
+  0x1f, 0xd0, 0xcd, 0x22, 0x44, 0x72, 0xdb, 0x7d, 0xf7, 0xaa, 0xfa, 0xfb,
+  0x0a, 0x04, 0x24, 0x7f, 0x5f, 0xfe, 0x21, 0x3d, 0x26, 0x6f, 0xa9, 0xa5,
+  0x8d, 0x1d, 0xf7, 0xaa, 0x90, 0x80, 0xc4, 0x39, 0x01, 0x12, 0x38, 0x19,
+  0xd2, 0xc8, 0x68, 0x3c, 0x8d, 0x77, 0xa0, 0xbb, 0x3a, 0xf3, 0x16, 0x03,
+  0x7d, 0xcf, 0xf8, 0x67, 0xd9, 0xda, 0x00, 0x34, 0x17, 0x46, 0x79, 0xcc,
+  0x9c, 0xad, 0x11, 0x2a, 0x09, 0x27, 0xb0, 0xa5, 0x47, 0x5e, 0x0f, 0x0a,
+  0xeb, 0x78, 0x1e, 0x0e, 0x8f, 0x30, 0x04, 0x85, 0x9f, 0xd2, 0xc7, 0x12,
+  0x80, 0x85, 0x08, 0x31, 0x08, 0x1e, 0xdb, 0x4a, 0x45, 0x65, 0xf5, 0x56,
+  0x16, 0x09, 0x41, 0x6a, 0xe4, 0x5b, 0x5b, 0x3b, 0x82, 0x43, 0x3e, 0x7e,
+  0x3f, 0xe2, 0x8a, 0xc0, 0x0e, 0xe6, 0x4f, 0xad, 0x53, 0xc8, 0xdf, 0xd9,
+  0xae, 0xbb, 0xdd, 0xf5, 0xff, 0xcf, 0x14, 0xed, 0xcf, 0x71, 0x5e, 0x1b,
+  0x27, 0xdd, 0xc6, 0xf1, 0x56, 0x46, 0x86, 0x99, 0x86, 0xb8, 0x91, 0xe8,
+  0x58, 0x69, 0xde, 0x81, 0x11, 0x95, 0xf2, 0x78, 0x7e, 0x30, 0x87, 0xaa,
+  0xa9, 0xd7, 0x9c, 0x45, 0x99, 0xa2, 0xb6, 0x49, 0xb6, 0x69, 0x65, 0x95,
+  0x95, 0x46, 0x91, 0x22, 0xe9, 0x67, 0xef, 0x39, 0x65, 0xb6, 0x50, 0x12,
+  0xfd, 0xc0, 0x04, 0x77, 0x89, 0xa8, 0x34, 0x2d, 0x23, 0xfa, 0xf4, 0xdf,
+  0xa7, 0xfb, 0xfd, 0x99, 0xea, 0x51, 0x2f, 0xf4, 0x45, 0x1a, 0x12, 0x9f,
+  0x93, 0x82, 0x7c, 0xe4, 0x24, 0xdf, 0xcb, 0xf4, 0x7c, 0xfd, 0x83, 0x4f,
+  0x6f, 0x0d, 0xd4, 0xf0, 0x6a, 0x07, 0x21, 0x1a, 0x8f, 0xe0, 0x2f, 0x7f,
+  0xff, 0xff, 0x1d, 0x6f, 0xa2, 0xc1, 0x52, 0x06, 0x10, 0x06, 0x8d, 0x2a,
+  0xeb, 0x89, 0x75, 0x6b, 0x55, 0x42, 0x54, 0x50, 0x45, 0x02, 0x22, 0x59,
+  0x38, 0xa8, 0xc8, 0x45, 0x27, 0x2e, 0xbe, 0x06, 0x58, 0x31, 0x00, 0x3a,
+  0xdd, 0x9f, 0x5a, 0x8e, 0x5c, 0x16, 0x04, 0x1c, 0x08, 0x7d, 0x73, 0xfd,
+  0x7c, 0xaa, 0x3f, 0x9f, 0xda, 0xb8, 0x71, 0x31, 0x97, 0xf3, 0x2c, 0x0b,
+  0x66, 0x12, 0xcb, 0x86, 0xd8, 0x5d, 0x01, 0x8b, 0xda, 0xa1, 0x98, 0x24,
+  0x2d, 0xbd, 0x9f, 0x24, 0x49, 0x2a, 0x6f, 0xdd, 0x72, 0xa8, 0x67, 0x88,
+  0x15, 0x73, 0x13, 0xac, 0x3d, 0xe4, 0x1b, 0xcf, 0xc0, 0x6b, 0x84, 0xa2,
+  0x5f, 0x27, 0x3e, 0xf3, 0xd6, 0x39, 0x3a, 0x8b, 0x09, 0x3d, 0x38, 0xe4,
+  0x26, 0x83, 0x78, 0x7a, 0x5c, 0xd1, 0xb8, 0xd6, 0x64, 0xdc, 0xd1, 0xbf,
+  0xd6, 0x20, 0x6e, 0xd2, 0x47, 0x43, 0x4c, 0x39, 0x38, 0x34, 0x74, 0x63,
+  0x87, 0xf1, 0x6e, 0xea, 0xd3, 0x0c, 0xfb, 0x71, 0x4e, 0x2c, 0x24, 0x28,
+  0x70, 0xb2, 0xaf, 0xd7, 0xa9, 0x6f, 0x54, 0x2e, 0x1b, 0xca, 0xb5, 0x7b,
+  0x6b, 0x5b, 0x90, 0x11, 0x96, 0x28, 0xd4, 0x5e, 0xdc, 0x3a, 0xe6, 0x54,
+  0x23, 0x1f, 0x21, 0x8c, 0x0c, 0x97, 0xba, 0xb0, 0x84, 0x3c, 0x8a, 0xdd,
+  0x5e, 0xd4, 0xd9, 0x0f, 0x0e, 0x9a, 0xbb, 0xe6, 0x2a, 0xb1, 0x90, 0x3b,
+  0x47, 0xe8, 0xf3, 0x41, 0x0d, 0xe3, 0x56, 0x5d, 0x94, 0x5b, 0xd4, 0x43,
+  0x73, 0x3f, 0x71, 0x79, 0xda, 0x1e, 0xab, 0x6d, 0x61, 0x55, 0xec, 0x76,
+  0x54, 0x6a, 0xb7, 0x63, 0x41, 0x3d, 0x30, 0x72, 0xf7, 0xa7, 0x05, 0x8e,
+  0x99, 0x9a, 0xad, 0x71, 0x1d, 0x25, 0xbf, 0xd4, 0x86, 0x99, 0x6e, 0x70,
+  0x10, 0x15, 0x37, 0x4b, 0xd6, 0xdd, 0x35, 0xf0, 0x24, 0x9c, 0x5b, 0xb6,
+  0xfe, 0xfa, 0x02, 0xdc, 0xd9, 0xf7, 0x9e, 0xd6, 0x00, 0x93, 0xb3, 0xf9,
+  0xa8, 0x50, 0x74, 0x18, 0x84, 0x04, 0x2a, 0x41, 0x88, 0x43, 0x46, 0x4a,
+  0xca, 0x9f, 0x10, 0xb8, 0xe0, 0x41, 0x03, 0x6b, 0x25, 0x09, 0x16, 0xe7,
+  0x9b, 0xbd, 0xbe, 0x0e, 0xdd, 0x84, 0x61, 0xb7, 0x2e, 0x58, 0x74, 0x43,
+  0xbd, 0xfc, 0x55, 0xd8, 0x72, 0x14, 0x3b, 0x5f, 0xaa, 0xf3, 0xd6, 0xa8,
+  0xd5, 0x40, 0x21, 0xcc, 0x3d, 0x20, 0xba, 0xc0, 0x4f, 0x1a, 0x50, 0x4b,
+  0x98, 0x5c, 0x54, 0x3e, 0x78, 0xd1, 0xcc, 0xe8, 0x1a, 0xde, 0x62, 0xb8,
+  0xb6, 0xc4, 0x8b, 0x05, 0x32, 0x1b, 0xc5, 0xf9, 0x45, 0xfb, 0x92, 0x49,
+  0x66, 0x4e, 0x10, 0x3c, 0xf8, 0x5a, 0xb2, 0xac, 0xba, 0xb4, 0x37, 0xd1,
+  0x7e, 0xd3, 0x00, 0x84, 0xbc, 0xfa, 0x33, 0x89, 0x7e, 0x68, 0x96, 0x00,
+  0x57, 0x83, 0x81, 0xd2, 0x18, 0xbe, 0x74, 0x4b, 0x8b, 0x8d, 0x6e, 0x00,
+  0x44, 0x69, 0x62, 0xa6, 0x3d, 0xb9, 0xb2, 0xd0, 0x50, 0xd7, 0x15, 0xc5,
+  0x73, 0x77, 0x70, 0x95, 0x3d, 0xa1, 0xb7, 0x07, 0x1e, 0x39, 0xc4, 0x84,
+  0x20, 0xf8, 0x6a, 0xb5, 0xbf, 0xaf, 0xdc, 0x38, 0x21, 0x1a, 0x94, 0x75,
+  0xbe, 0x92, 0xc1, 0x44, 0x11, 0x10, 0xa0, 0x47, 0x04, 0x17, 0x13, 0x55,
+  0x5a, 0x8c, 0x84, 0x14, 0x80, 0xa1, 0x59, 0x0e, 0x66, 0x1c, 0x46, 0xa7,
+  0xab, 0x9d, 0x23, 0x65, 0x68, 0x96, 0x8a, 0xe8, 0x20, 0xd9, 0xe5, 0x9f,
+  0xd5, 0x83, 0x96, 0x9f, 0xcc, 0x7f, 0x7f, 0xd9, 0x3b, 0x25, 0x2d, 0x9a,
+  0x62, 0x10, 0x09, 0x98, 0xe2, 0xfd, 0xa5, 0xad, 0x3a, 0x1b, 0xb8, 0xe6,
+  0x1c, 0xf9, 0xdf, 0xf4, 0xca, 0x74, 0xd0, 0x6b, 0xfd, 0xb0, 0xf1, 0x8d,
+  0xa3, 0xe5, 0x40, 0x3f, 0xb4, 0x3e, 0x9b, 0x0f, 0x41, 0x07, 0xac, 0xd7,
+  0x31, 0x59, 0x55, 0x64, 0xb9, 0x9a, 0x81, 0x1a, 0x29, 0x55, 0xf1, 0x8a,
+  0x5c, 0xdb, 0x06, 0x92, 0x9d, 0x68, 0xd0, 0xab, 0x18, 0x12, 0x64, 0x18,
+  0x31, 0xa8, 0xdf, 0x14, 0x9b, 0x36, 0x60, 0x3b, 0xa2, 0xcc, 0xa9, 0xf5,
+  0xd9, 0x0a, 0x9d, 0x5e, 0x45, 0x38, 0xa0, 0xbc, 0x1d, 0x06, 0xa6, 0x1c,
+  0xdf, 0xa9, 0xbc, 0x39, 0xd6, 0xee, 0x17, 0x9a, 0x30, 0x62, 0xeb, 0x5d,
+  0xdb, 0xd0, 0x87, 0x2d, 0xd9, 0x9c, 0xc8, 0xe1, 0x27, 0x5a, 0x0e, 0x12,
+  0x09, 0x6d, 0xb8, 0xa9, 0xa0, 0x90, 0xb2, 0x15, 0xb5, 0xb2, 0x7b, 0xcc,
+  0x66, 0x91, 0xb0, 0x3a, 0x25, 0x54, 0x80, 0xda, 0x84, 0xd6, 0xb9, 0xa9,
+  0xbb, 0x72, 0xda, 0x74, 0x55, 0xea, 0xe7, 0x63, 0x27, 0x42, 0xbc, 0x03,
+  0x9f, 0x6a, 0x5e, 0x83, 0x2b, 0x75, 0x24, 0xc9, 0xc8, 0xae, 0xde, 0x6e,
+  0x97, 0x07, 0x1b, 0xc8, 0xe3, 0xb2, 0xfe, 0x51, 0x25, 0x8c, 0x2d, 0xeb,
+  0x1c, 0x19, 0x4b, 0xfb, 0x58, 0x3e, 0x1d, 0xd4, 0x5a, 0xd0, 0x19, 0x25,
+  0x90, 0x3d, 0x44, 0x9d, 0xd7, 0x6d, 0xcd, 0x8c, 0x3f, 0x6f, 0xc8, 0xb8,
+  0x7f, 0xee, 0x16, 0xe4, 0x9a, 0x9d, 0x7a, 0x6a, 0xb3, 0xbb, 0xbc, 0x8d,
+  0x8e, 0x99, 0x08, 0x12, 0x01, 0x04, 0xe8, 0x31, 0x08, 0x17, 0x75, 0x38,
+  0x41, 0x23, 0xa2, 0xa1, 0x00, 0x42, 0x83, 0xfa, 0x94, 0x50, 0xe4, 0xee,
+  0x0d, 0xc7, 0xd9, 0x16, 0x57, 0xbe, 0x8b, 0xdf, 0xb4, 0xae, 0xd0, 0xa0,
+  0xa7, 0xd5, 0x18, 0x9a, 0x44, 0x4c, 0x58, 0x1d, 0xd4, 0xb4, 0x2d, 0x39,
+  0x31, 0xfa, 0x9d, 0x1a, 0x7a, 0xb4, 0x98, 0xcb, 0xd9, 0x27, 0xf2, 0xc4,
+  0xac, 0x5f, 0x4c, 0x51, 0x63, 0xbf, 0x56, 0x1a, 0xe4, 0x77, 0x8c, 0xfc,
+  0xa1, 0x57, 0xb6, 0x68, 0x66, 0xea, 0xb3, 0xea, 0x6a, 0xcb, 0x8d, 0x2f,
+  0x7f, 0x8e, 0x44, 0xe0, 0x32, 0x40, 0x8c, 0x5a, 0x2a, 0x2d, 0xe5, 0xb8,
+  0xc9, 0x21, 0x09, 0xfb, 0xca, 0x79, 0x34, 0x47, 0xb0, 0x90, 0x94, 0x6f,
+  0xde, 0x91, 0x12, 0x1e, 0xd5, 0x15, 0x82, 0x69, 0x4e, 0xf0, 0x70, 0x0a,
+  0xcc, 0x47, 0x50, 0x02, 0x4b, 0xf8, 0xae, 0xf1, 0x12, 0xc5, 0xc6, 0xee,
+  0x73, 0x21, 0x0d, 0x3e, 0xaf, 0x33, 0x59, 0x44, 0x5b, 0x33, 0xe7, 0xde,
+  0xc5, 0xdd, 0x05, 0xfd, 0x9e, 0x5d, 0x1b, 0x52, 0xbe, 0xe9, 0xe2, 0xe6,
+  0x93, 0x48, 0x70, 0x21, 0x1a, 0x94, 0x95, 0xbe, 0x8b, 0x05, 0x41, 0x92,
+  0xd8, 0x46, 0x10, 0x5f, 0x41, 0x70, 0x68, 0xe3, 0x12, 0xc0, 0x00, 0x2f,
+  0x91, 0x93, 0x42, 0x40, 0x45, 0xee, 0xd2, 0x6f, 0x83, 0xb4, 0x2c, 0xd1,
+  0x10, 0x10, 0xfe, 0xc5, 0xa4, 0x3f, 0x1b, 0x92, 0x32, 0x51, 0x29, 0x2a,
+  0xba, 0x5d, 0xfc, 0x5b, 0x44, 0x16, 0x6b, 0xff, 0x37, 0x03, 0x33, 0xee,
+  0x35, 0xc5, 0x75, 0xae, 0x15, 0xd2, 0x30, 0xd6, 0x5d, 0xe0, 0xe6, 0x8c,
+  0x72, 0x2b, 0x99, 0x54, 0x66, 0xa9, 0xeb, 0x5f, 0xcb, 0x02, 0xc7, 0x3b,
+  0xa1, 0x1c, 0x4a, 0x84, 0xf6, 0xfb, 0x3a, 0x4b, 0x76, 0x83, 0x2f, 0xa4,
+  0x60, 0x81, 0x48, 0x46, 0x71, 0x93, 0x74, 0x50, 0xec, 0xa9, 0xf8, 0xe5,
+  0x56, 0x09, 0xbb, 0x7a, 0x94, 0xc0, 0x8c, 0xf6, 0x99, 0x7c, 0xd5, 0x35,
+  0x04, 0x45, 0x46, 0x40, 0x34, 0x92, 0xc4, 0xa1, 0xc1, 0x32, 0x61, 0x50,
+  0x67, 0xde, 0xbc, 0xdb, 0xd2, 0x85, 0x2e, 0x01, 0x42, 0xa3, 0x29, 0x77,
+  0xc1, 0xa5, 0x42, 0xe4, 0x84, 0x84, 0x55, 0x38, 0x10, 0xdd, 0x98, 0x6c,
+  0xf5, 0xae, 0xf9, 0xe8, 0x84, 0x72, 0x9b, 0xec, 0xb9, 0x1f, 0xa2, 0x07,
+  0x42, 0xa5, 0xbe, 0x73, 0x69, 0x7b, 0x1c, 0xd4, 0xf7, 0x19, 0x4d, 0x2b,
+  0x62, 0x4b, 0x44, 0xe6, 0xa5, 0x66, 0xab, 0xfc, 0xaa, 0x63, 0x3c, 0xb1,
+  0xe2, 0x62, 0xa4, 0xd7, 0xcb, 0x2e, 0xe8, 0x80, 0x7d, 0x0c, 0xb6, 0x68,
+  0xc0, 0xc7, 0xf4, 0xfb, 0x81, 0x65, 0xb4, 0x6f, 0x58, 0xb2, 0x11, 0xd8,
+  0x7f, 0x63, 0xdd, 0x57, 0x13, 0xb4, 0x23, 0x58, 0x44, 0x36, 0x88, 0x90,
+  0xae, 0xc1, 0x4c, 0x0e, 0xc7, 0x10, 0x25, 0xc3, 0x07, 0x69, 0x25, 0x0c,
+  0x9c, 0x7c, 0xdf, 0x74, 0x24, 0x6d, 0x10, 0xe1, 0x92, 0x04, 0x42, 0x0a,
+  0x90, 0xe3, 0x82, 0x93, 0x4d, 0x31, 0x08, 0xe3, 0x94, 0x10, 0xc5, 0xe0,
+  0xa6, 0x74, 0x43, 0xa7, 0xbc, 0xe7, 0x8c, 0x55, 0xd9, 0x8e, 0xed, 0x88,
+  0xaf, 0x6b, 0x58, 0x81, 0xf2, 0xdd, 0x2b, 0x11, 0x69, 0xd6, 0x93, 0x6e,
+  0xfc, 0xde, 0x1d, 0x4d, 0x1e, 0xaf, 0x95, 0x43, 0x32, 0x4c, 0x3c, 0x3c,
+  0xae, 0x5e, 0xbf, 0x5d, 0xab, 0xcb, 0xfb, 0xa8, 0xdd, 0xaf, 0x04, 0x6c,
+  0xa5, 0x54, 0xc2, 0x9e, 0x8d, 0x0e, 0xef, 0x57, 0x2e, 0x8d, 0xd9, 0xb6,
+  0x14, 0xdb, 0x5b, 0x1a, 0x0f, 0x6e, 0x75, 0xc8, 0x99, 0xd4, 0x08, 0xb4,
+  0x62, 0xc0, 0x76, 0x0b, 0x41, 0x47, 0x33, 0x6f, 0x67, 0xcf, 0x56, 0x36,
+  0x8c, 0x37, 0x00, 0x50, 0x4c, 0x02, 0x5d, 0x3b, 0x68, 0xc6, 0xd6, 0x04,
+  0x00, 0x16, 0x8c, 0x98, 0x43, 0x3d, 0xb8, 0xf4, 0xac, 0x85, 0x29, 0x0b,
+  0xc4, 0x9a, 0xe0, 0x26, 0x34, 0x1c, 0xb9, 0x7b, 0xa6, 0x62, 0xc9, 0xd5,
+  0x82, 0x7f, 0x3d, 0x3e, 0x38, 0x46, 0x22, 0xdf, 0x6d, 0x6c, 0x0f, 0x3f,
+  0xcc, 0x3d, 0x75, 0x7f, 0x04, 0x90, 0x96, 0xb9, 0xe4, 0x3b, 0xad, 0x10,
+  0x70, 0x21, 0x1a, 0x94, 0xad, 0xbe, 0x8c, 0xc4, 0x22, 0x98, 0x89, 0x41,
+  0x5d, 0x1d, 0x0e, 0x80, 0xe1, 0x56, 0x00, 0x00, 0x06, 0xbe, 0xa9, 0xc5,
+  0xdd, 0xb4, 0x39, 0x68, 0x23, 0x56, 0xa3, 0xef, 0x3c, 0xff, 0xbd, 0x75,
+  0x6c, 0xf8, 0xc8, 0x27, 0xe5, 0x23, 0x9f, 0x21, 0x8e, 0xec, 0xd1, 0xee,
+  0x5d, 0xeb, 0xd2, 0x78, 0x5d, 0x97, 0xd1, 0x96, 0x16, 0x21, 0x94, 0x1e,
+  0xb0, 0xca, 0xc0, 0x22, 0xe9, 0x0f, 0x0c, 0xaa, 0xb2, 0xc4, 0xc1, 0xc7,
+  0x91, 0xac, 0xb2, 0x8b, 0x06, 0x94, 0xe9, 0x17, 0xbf, 0x1a, 0x9b, 0x8c,
+  0x19, 0xac, 0xde, 0xa9, 0x64, 0x25, 0xd9, 0x28, 0x16, 0x36, 0x2d, 0x45,
+  0x96, 0x19, 0xef, 0x0d, 0xd0, 0x5e, 0x9e, 0x1f, 0x74, 0xad, 0x01, 0x9d,
+  0x2a, 0x9a, 0xbb, 0xe5, 0xb9, 0xe9, 0xef, 0xf7, 0xbb, 0xd7, 0xfc, 0x3f,
+  0x87, 0x17, 0xd6, 0xbd, 0x97, 0xf2, 0xed, 0xe7, 0x9c, 0xf9, 0x3c, 0xc5,
+  0x9a, 0x38, 0x39, 0x9b, 0xab, 0xe4, 0x1a, 0x6c, 0xca, 0xbd, 0x86, 0x38,
+  0x90, 0xc7, 0xc6, 0x15, 0xe0, 0x8f, 0x24, 0x93, 0x69, 0x02, 0xbe, 0x94,
+  0x20, 0xfb, 0x83, 0xe8, 0xcc, 0x47, 0xe6, 0x2d, 0x2a, 0x23, 0x05, 0x89,
+  0x76, 0x5a, 0x09, 0x96, 0x2d, 0xa6, 0x5d, 0x24, 0x6a, 0x5c, 0x81, 0x8d,
+  0x99, 0x54, 0x91, 0xd6, 0x61, 0x7a, 0x62, 0x68, 0xc1, 0x64, 0x50, 0x0a,
+  0xe5, 0x23, 0x3e, 0xb4, 0x6f, 0x33, 0x3a, 0x80, 0x00, 0x60, 0x30, 0x76,
+  0xde, 0xef, 0x44, 0xc0, 0x73, 0xa9, 0x33, 0xbe, 0x64, 0xa6, 0xae, 0x82,
+  0x6d, 0x80, 0x01, 0x1f, 0x67, 0xa4, 0x41, 0xd4, 0x63, 0x10, 0x02, 0x49,
+  0xa6, 0x5d, 0xb4, 0xcb, 0x5a, 0x52, 0x20, 0xc1, 0x96, 0x17, 0x35, 0x9e,
+  0x06, 0x75, 0x91, 0x26, 0x61, 0xff, 0x76, 0xc7, 0x0e, 0x7a, 0xb8, 0xea,
+  0x70, 0x13, 0x2b, 0xc9, 0x20, 0x39, 0x3c, 0x3e, 0x45, 0x8c, 0xb0, 0xc2,
+  0xd5, 0x4c, 0x8f, 0x01, 0xa0, 0x4e, 0xd8, 0xf4, 0x3a, 0x3e, 0x1f, 0x5f,
+  0x3c, 0x85, 0xef, 0xf7, 0x5b, 0x5d, 0xcf, 0x4f, 0xd4, 0xea, 0x89, 0xe7,
+  0xc3, 0x45, 0x0f, 0xc2, 0xae, 0x72, 0x98, 0x56, 0x3c, 0xfc, 0x75, 0x0e,
+  0xef, 0x76, 0xcd, 0x50, 0x58, 0xda, 0xfd, 0xec, 0x3b, 0x75, 0x4d, 0xe3,
+  0x4a, 0xb9, 0x44, 0x42, 0x58, 0xca, 0x60, 0x00, 0x72, 0xf9, 0xe5, 0x77,
+  0x4a, 0x5f, 0x2a, 0x96, 0x86, 0xe3, 0x01, 0x32, 0x0e, 0x6b, 0xde, 0xc9,
+  0x15, 0x15, 0x45, 0x54, 0x26, 0x2e, 0x45, 0x40, 0x5e, 0xcb, 0x29, 0xd5,
+  0x95, 0x4d, 0x2a, 0x08, 0x22, 0xf9, 0x5e, 0x74, 0xe8, 0xe1, 0x25, 0x27,
+  0xf0, 0x62, 0x95, 0x93, 0x4a, 0x0a, 0x2c, 0x26, 0xac, 0xd0, 0x68, 0x60,
+  0x95, 0xd9, 0x1b, 0x7f, 0x3b, 0xac, 0x0a, 0x77, 0xf0, 0x21, 0xe5, 0xc6,
+  0x7e, 0x5d, 0x7c, 0x7e, 0x70, 0xe0, 0x21, 0x1a, 0x8d, 0xcf, 0x90, 0x1f,
+  0xff, 0xff, 0x2d, 0x6f, 0x82, 0x31, 0x50, 0x46, 0xb2, 0x1a, 0x04, 0x42,
+  0x1e, 0x63, 0x9b, 0xb6, 0xa2, 0xc9, 0x69, 0xbe, 0x10, 0x04, 0xa1, 0x00,
+  0x2a, 0x49, 0xe1, 0x74, 0x7a, 0xf7, 0x71, 0xfd, 0x25, 0xc5, 0xf8, 0x32,
+  0x01, 0x17, 0x63, 0xac, 0x49, 0xa4, 0xbe, 0xe9, 0xd8, 0x9f, 0xf3, 0xf5,
+  0xa4, 0xf5, 0x89, 0xb9, 0x72, 0xe5, 0xb0, 0xc5, 0x88, 0x69, 0x19, 0xc4,
+  0x43, 0x57, 0xc7, 0x33, 0x8a, 0xa6, 0x72, 0xda, 0xb6, 0x15, 0x9c, 0xb3,
+  0x7c, 0xb0, 0x6c, 0x26, 0x10, 0x86, 0x5e, 0x75, 0x56, 0xa3, 0x80, 0x4b,
+  0xaf, 0xca, 0xf9, 0xa3, 0xc4, 0x9d, 0x6f, 0xec, 0x4e, 0x68, 0x68, 0x58,
+  0xb9, 0x44, 0x37, 0x6c, 0x76, 0x80, 0x09, 0x84, 0xa1, 0x7c, 0xa3, 0x1d,
+  0xf4, 0xd6, 0x83, 0x85, 0xd7, 0x79, 0x04, 0x73, 0x82, 0x0d, 0x08, 0xc6,
+  0x98, 0x15, 0xb2, 0xf9, 0x94, 0x63, 0x07, 0xa5, 0x6e, 0x19, 0x34, 0xd7,
+  0x4c, 0xbe, 0x91, 0x6b, 0xce, 0x31, 0x9b, 0x5a, 0x13, 0xc8, 0x16, 0x84,
+  0x6e, 0xd1, 0xd6, 0xb6, 0xcd, 0xa3, 0x3b, 0xc8, 0xdd, 0x64, 0xef, 0xf5,
+  0x08, 0x75, 0x7a, 0x50, 0xb1, 0x77, 0x2e, 0x92, 0xc1, 0xd8, 0xaa, 0x83,
+  0x14, 0x11, 0x88, 0x5b, 0x42, 0x57, 0x52, 0x52, 0xf9, 0xba, 0xa8, 0x31,
+  0xeb, 0x82, 0x81, 0x3d, 0x29, 0x37, 0x7d, 0x38, 0x48, 0xab, 0x0d, 0xa3,
+  0x50, 0x2b, 0x28, 0xcd, 0x29, 0xfc, 0x46, 0xf3, 0x39, 0x65, 0x58, 0x24,
+  0x6c, 0xf4, 0x5b, 0x15, 0x21, 0x04, 0x2e, 0x22, 0x00, 0x68, 0x80, 0xd4,
+  0x5c, 0x68, 0xb1, 0x42, 0x61, 0x00, 0x39, 0xba, 0xef, 0x4e, 0xe2, 0xea,
+  0xbe, 0x61, 0xc7, 0x5e, 0x26, 0xde, 0xe2, 0x82, 0x2e, 0x41, 0x22, 0xa8,
+  0x89, 0x93, 0xe5, 0xce, 0xef, 0xe9, 0x94, 0xd0, 0xd0, 0x36, 0x09, 0x76,
+  0x1e, 0xd9, 0x9d, 0xeb, 0xec, 0x67, 0xd1, 0xeb, 0x9c, 0xbb, 0x92, 0x36,
+  0x3f, 0xa2, 0x53, 0x71, 0x34, 0xe4, 0x8d, 0x2a, 0xcc, 0xef, 0xcf, 0xb9,
+  0x24, 0xd6, 0xca, 0x1c, 0xcf, 0xeb, 0xe5, 0x70, 0x1f, 0x4e, 0xd6, 0xfd,
+  0x4d, 0xb0, 0x6e, 0xba, 0x34, 0xf2, 0x31, 0xef, 0x1b, 0x14, 0x26, 0x8a,
+  0x3d, 0xca, 0xaa, 0x27, 0xf7, 0xf5, 0x06, 0x1e, 0x4d, 0x66, 0xae, 0xc1,
+  0x48, 0x07, 0x4e, 0xb4, 0x37, 0xc1, 0x40, 0x33, 0x55, 0x3f, 0x14, 0xdd,
+  0x02, 0x8b, 0x13, 0x9b, 0x94, 0x60, 0x04, 0x3c, 0x15, 0xb8, 0x9d, 0x50,
+  0x8f, 0x31, 0x7b, 0x05, 0xa3, 0x68, 0x29, 0xaa, 0xbf, 0x39, 0x7d, 0xed,
+  0x28, 0x11, 0x4b, 0x3a, 0xa7, 0x0d, 0x3c, 0x7d, 0xe3, 0x7a, 0x48, 0xa6,
+  0x16, 0xaa, 0xe8, 0x25, 0x11, 0x7b, 0x5a, 0xab, 0x4d, 0xed, 0x0c, 0x5e,
+  0x67, 0x6e, 0x28, 0x84, 0xf4, 0x2b, 0x18, 0x38, 0x56, 0x21, 0xea, 0x34,
+  0x2d, 0x56, 0xc0, 0x00, 0xe0, 0x21, 0x1a, 0x8f, 0xce, 0x18, 0x1f, 0xff,
+  0xff, 0x2d, 0x70, 0x81, 0xb1, 0x88, 0x82, 0xa3, 0x1b, 0x58, 0xb8, 0xd4,
+  0x2e, 0xb8, 0x11, 0x2c, 0xb0, 0x00, 0x05, 0x07, 0x2f, 0xa9, 0x71, 0xff,
+  0xd4, 0x31, 0xf8, 0xf7, 0x9f, 0x42, 0x70, 0x0b, 0x9e, 0x95, 0xa4, 0x33,
+  0x45, 0xcb, 0xde, 0x78, 0x4e, 0x17, 0xec, 0xbc, 0xdd, 0xf8, 0x8e, 0x3f,
+  0xb2, 0xe2, 0xf0, 0xf3, 0xfb, 0x77, 0x34, 0xa2, 0xa4, 0x71, 0x8f, 0xb6,
+  0x39, 0xc6, 0x98, 0x91, 0x1b, 0xaf, 0xfe, 0x7b, 0x97, 0x50, 0xe3, 0xd0,
+  0xb0, 0x78, 0x3b, 0x2b, 0xcd, 0xc4, 0x5d, 0xab, 0xe4, 0xe3, 0x55, 0x5d,
+  0xca, 0xe9, 0x6c, 0xe3, 0x41, 0x79, 0x89, 0xf6, 0x54, 0x32, 0xb3, 0xa4,
+  0x60, 0x7b, 0xe7, 0x32, 0x76, 0xf2, 0xd2, 0x25, 0x55, 0xa5, 0x61, 0xd4,
+  0x9a, 0xe7, 0xca, 0x4c, 0xd6, 0xa2, 0x08, 0xba, 0xf8, 0x8a, 0x2b, 0xb0,
+  0xc4, 0x0a, 0x48, 0xe1, 0xb9, 0x44, 0x5c, 0x81, 0x90, 0xa4, 0x20, 0x1d,
+  0x47, 0x2b, 0x1c, 0xce, 0x65, 0xa0, 0x65, 0xf8, 0xcc, 0xe1, 0x77, 0x9e,
+  0x6b, 0x12, 0xaf, 0xad, 0xb9, 0x47, 0xfe, 0xcd, 0x38, 0x7b, 0xa7, 0x60,
+  0x86, 0xe4, 0xb7, 0x66, 0x8c, 0x60, 0x8a, 0x48, 0xa1, 0x96, 0x53, 0xc8,
+  0x27, 0xb7, 0xdf, 0xa7, 0x0a, 0x5a, 0x51, 0xa4, 0xa0, 0xe1, 0x6e, 0x71,
+  0x63, 0xbd, 0xab, 0x5f, 0xeb, 0xe1, 0xa0, 0x9a, 0x58, 0xbb, 0x28, 0x6e,
+  0x34, 0x36, 0xeb, 0x38, 0x04, 0xb5, 0xba, 0x90, 0x66, 0x17, 0x24, 0x1b,
+  0xbb, 0xd1, 0x76, 0x85, 0x96, 0xb6, 0xa1, 0x44, 0xa5, 0x00, 0x14, 0x6c,
+  0x26, 0x17, 0x47, 0x1b, 0xc1, 0xf4, 0x93, 0x5b, 0xaa, 0xa9, 0xfd, 0x44,
+  0xab, 0x1a, 0x5a, 0x26, 0x28, 0x74, 0xf3, 0xb8, 0x47, 0x64, 0x22, 0x27,
+  0xaf, 0x58, 0xe3, 0x8b, 0x07, 0x9f, 0x50, 0xe4, 0x8e, 0xe6, 0xed, 0xe9,
+  0x0d, 0x7f, 0xde, 0x5d, 0xae, 0xd9, 0x02, 0x61, 0x15, 0x5b, 0x34, 0x6c,
+  0x20, 0x2d, 0x39, 0x35, 0x69, 0x3b, 0xde, 0xe1, 0x61, 0xc8, 0xdc, 0xb0,
+  0x75, 0x37, 0x82, 0x4a, 0x82, 0xdd, 0xa8, 0x39, 0x85, 0x47, 0x80, 0x4b,
+  0x48, 0xbe, 0xda, 0xf4, 0xc5, 0x79, 0x82, 0x92, 0xbf, 0x0a, 0x84, 0x9d,
+  0x66, 0x58, 0x3f, 0xd6, 0xc0, 0xe3, 0xd7, 0xe0, 0xe1, 0x1c, 0x66, 0x08,
+  0xd5, 0x49, 0x94, 0x69, 0x00, 0x2d, 0x3c, 0x61, 0x61, 0x21, 0x14, 0x4c,
+  0xe9, 0x2a, 0x1d, 0x4c, 0xd7, 0xd9, 0x07, 0xd4, 0x42, 0x09, 0xb5, 0x47,
+  0xba, 0x77, 0x86, 0x52, 0xa2, 0xa8, 0x5e, 0xa5, 0x6b, 0x40, 0x6a, 0x73,
+  0x47, 0x2e, 0x0c, 0x2b, 0x4b, 0x87, 0xbf, 0x65, 0x1f, 0xd6, 0x44, 0xf7,
+  0x2b, 0x4e, 0x9f, 0x69, 0xff, 0x0c, 0x57, 0x0e, 0x21, 0x2a, 0x8f, 0x87,
+  0x5d, 0x3b, 0xff, 0xff, 0x25, 0x67, 0xa6, 0x40, 0xd8, 0x62, 0xb2, 0x28,
+  0x84, 0x19, 0xa5, 0xaf, 0x3a, 0x55, 0x6a, 0x22, 0xc8, 0x04, 0xa1, 0x00,
+  0x21, 0xd5, 0x00, 0x33, 0x01, 0x28, 0x46, 0x24, 0x13, 0xdd, 0x6e, 0x97,
+  0x49, 0xd0, 0x96, 0x13, 0x4d, 0x19, 0x4d, 0xfb, 0x8e, 0x50, 0xb5, 0x74,
+  0x59, 0x0f, 0x94, 0xde, 0xdf, 0x6c, 0xd8, 0x9e, 0x5b, 0xbb, 0x54, 0x81,
+  0x34, 0xf5, 0x60, 0xb0, 0xdb, 0x6f, 0xed, 0x72, 0x33, 0xf9, 0xdf, 0xf0,
+  0xfb, 0xe6, 0x8b, 0x62, 0x8b, 0x2c, 0x7e, 0x78, 0x4c, 0x6c, 0x8b, 0xa6,
+  0x15, 0xb8, 0x09, 0xf5, 0x74, 0xee, 0xb3, 0x40, 0x94, 0x9f, 0x5d, 0x11,
+  0x03, 0x7c, 0x4f, 0x1d, 0xb2, 0xc9, 0x68, 0x4b, 0x5e, 0xfe, 0x1d, 0x00,
+  0xe4, 0x13, 0x73, 0xac, 0xfb, 0xe6, 0xbe, 0x75, 0x14, 0x7e, 0xf2, 0x9c,
+  0xe4, 0x09, 0xe6, 0x11, 0x4b, 0x66, 0x34, 0x4e, 0xf0, 0xfd, 0x22, 0x8b,
+  0xa6, 0x7c, 0x60, 0xf5, 0xc2, 0x5d, 0xa6, 0xe7, 0x6b, 0x4a, 0x31, 0x41,
+  0xa6, 0x6d, 0x32, 0x92, 0x42, 0xdf, 0x3b, 0xd5, 0xda, 0x5d, 0xbd, 0xbc,
+  0xe9, 0xbd, 0x09, 0x87, 0x6e, 0x28, 0xb1, 0x52, 0x15, 0xb2, 0x94, 0xa1,
+  0x24, 0x41, 0xbc, 0x5d, 0x5e, 0x6c, 0x3f, 0xa0, 0xc0, 0x4a, 0xcb, 0x9c,
+  0x53, 0x7c, 0x92, 0x53, 0xe9, 0x31, 0xbe, 0x7f, 0xe5, 0x46, 0xd8, 0x91,
+  0x5b, 0x6a, 0xea, 0xcb, 0x3f, 0x11, 0xe6, 0x6b, 0xe0, 0x12, 0xf6, 0x8a,
+  0x69, 0x98, 0x04, 0x2d, 0x33, 0x4e, 0x88, 0xb5, 0xd1, 0x6b, 0x4a, 0xd2,
+  0x34, 0x28, 0x8d, 0xd8, 0x06, 0xaa, 0x09, 0xaf, 0xa0, 0x5a, 0x7c, 0x90,
+  0xa9, 0xbc, 0x75, 0xdd, 0xa6, 0x9c, 0x0c, 0xe4, 0x27, 0x0e, 0x5d, 0x5e,
+  0x88, 0xdf, 0x2a, 0x89, 0x5e, 0x23, 0xd4, 0x9d, 0xaa, 0x97, 0xb7, 0xe7,
+  0xfc, 0xfe, 0x71, 0x1e, 0xde, 0x4e, 0x32, 0xcd, 0x8d, 0xf4, 0x6f, 0x37,
+  0x57, 0x8c, 0x0a, 0xaa, 0xea, 0x18, 0xa3, 0x70, 0x8e, 0x18, 0x17, 0xc8,
+  0x41, 0x4c, 0xcc, 0xa8, 0x68, 0x14, 0xab, 0xcc, 0x01, 0x32, 0x35, 0xf1,
+  0xf1, 0xbe, 0x61, 0xa3, 0x8e, 0x81, 0xd3, 0xbb, 0x76, 0xee, 0x9e, 0xf3,
+  0x6e, 0x1c, 0x6d, 0xf0, 0xc7, 0x16, 0xdb, 0x3c, 0x40, 0x52, 0x2b, 0xcd,
+  0x48, 0xb8, 0xa0, 0x33, 0x9d, 0x81, 0x48, 0xb1, 0x28, 0x10, 0x56, 0xf7,
+  0x2f, 0x0b, 0x80, 0x52, 0x09, 0x41, 0x91, 0x65, 0x6e, 0x00, 0x0b, 0x4b,
+  0x1a, 0xd9, 0xf1, 0x41, 0x74, 0x54, 0xa7, 0x91, 0xa7, 0xdc, 0x1a, 0xf5,
+  0xc9, 0x3e, 0x41, 0xc0, 0x21, 0x4c, 0xd8, 0xfb, 0xff, 0x5f, 0xff, 0xff,
+  0x00, 0xc6, 0xda, 0xa4, 0xc8, 0x75, 0xb8, 0x68, 0x8a, 0x5c, 0x44, 0x3a,
+  0xf0, 0xe7, 0xb3, 0x87, 0x00, 0x7e, 0x8e, 0x3a, 0xb6, 0x90, 0xaf, 0xe1,
+  0xd6, 0x9a, 0x15, 0xa7, 0xb9, 0xc1, 0x61, 0x42, 0xd5, 0x3f, 0x98, 0xf2,
+  0x2f, 0xc0, 0x65, 0x70, 0xfd, 0x76, 0x6c, 0x6e, 0xdd, 0x86, 0xc7, 0x7c,
+  0x4f, 0x8d, 0x36, 0xf5, 0x6c, 0x0c, 0x59, 0x1a, 0xb2, 0x0f, 0x5f, 0x1e,
+  0x39, 0x27, 0x5c, 0x08, 0xad, 0x32, 0x28, 0x14, 0x94, 0x0d, 0x1f, 0x31,
+  0x06, 0xf8, 0x2e, 0x86, 0x19, 0xdd, 0x2f, 0x4f, 0xba, 0x6d, 0x15, 0xa6,
+  0x38, 0x2a, 0x94, 0xee, 0x2a, 0xaa, 0x0b, 0xea, 0x42, 0xc0, 0x99, 0x6b,
+  0x16, 0x73, 0x7c, 0xaa, 0xa6, 0x95, 0x2e, 0x2b, 0x01, 0x4f, 0xab, 0xf7,
+  0xb5, 0x91, 0x78, 0x62, 0xbc, 0x9e, 0xb3, 0xd5, 0x22, 0x62, 0x03, 0x38,
+  0xa2, 0xb3, 0x65, 0xc9, 0x2c, 0x8a, 0xca, 0x86, 0x82, 0xfc, 0xe6, 0xd2,
+  0x6c, 0x22, 0x7e, 0x5b, 0x46, 0x2e, 0x7c, 0xf8, 0x5c, 0xd7, 0x6b, 0x66,
+  0x99, 0x85, 0x6c, 0x9c, 0x5f, 0x66, 0xd7, 0x0f, 0x8c, 0x59, 0x5e, 0xee,
+  0x73, 0x57, 0x12, 0xa1, 0xcf, 0xd6, 0x8e, 0xf6, 0x5b, 0xea, 0xd4, 0x29,
+  0xf5, 0x7e, 0x55, 0xa6, 0x52, 0x03, 0x6a, 0xc0, 0xe9, 0x8c, 0xc3, 0xd7,
+  0x49, 0x1c, 0x3b, 0x0d, 0x47, 0x09, 0x90, 0x96, 0xdc, 0x3b, 0x17, 0x3b,
+  0xb7, 0x01, 0x45, 0x95, 0x55, 0x64, 0x7a, 0x45, 0x95, 0xe7, 0x93, 0x7c,
+  0x2e, 0x32, 0xbc, 0xa4, 0x26, 0xea, 0x9b, 0x6d, 0x8c, 0xe0, 0xea, 0xc0,
+  0x55, 0x79, 0xc5, 0x4e, 0xf5, 0x86, 0xb7, 0xb9, 0x3f, 0xaf, 0x18, 0xa2,
+  0xac, 0xc4, 0x52, 0x3a, 0xcc, 0x53, 0xd7, 0x07, 0x9b, 0xb5, 0x8c, 0xa4,
+  0xf2, 0xd3, 0x46, 0x3f, 0xab, 0xae, 0x1f, 0x54, 0x52, 0xfe, 0x40, 0xfa,
+  0xa6, 0xdd, 0x83, 0xca, 0x41, 0x01, 0x4a, 0x65, 0x72, 0xe0, 0x41, 0xdb,
+  0xb4, 0xbe, 0xc7, 0xfe, 0x6a, 0x56, 0x22, 0x95, 0x77, 0x1f, 0x62, 0x44,
+  0xc4, 0x6d, 0xca, 0x6c, 0x32, 0x60, 0xc3, 0x56, 0x40, 0x35, 0xc4, 0x60,
+  0xb7, 0x82, 0xf5, 0x08, 0xea, 0x12, 0x04, 0x62, 0x09, 0x9b, 0xdc, 0xd1,
+  0x30, 0xa4, 0xe5, 0x41, 0x3a, 0x82, 0xb4, 0x2f, 0x01, 0x28, 0xac, 0xae,
+  0x43, 0xd4, 0x5d, 0x7e, 0xc1, 0xa7, 0xa7, 0x2d, 0x36, 0x02, 0x45, 0x59,
+  0x76, 0x4e, 0xd3, 0xb4, 0x97, 0x69, 0x5d, 0xd7, 0xd3, 0xd8, 0x04, 0xe2,
+  0x08, 0x96, 0xf8, 0xdc, 0x21, 0x36, 0x92, 0xaa, 0xf1, 0xf1, 0xe5, 0xc6,
+  0x08, 0xdd, 0xc1, 0x86, 0x98, 0x80, 0x45, 0x30, 0xb2, 0x21, 0x59, 0xc7,
+  0x24, 0x6e, 0x5b, 0xf1, 0x31, 0x75, 0xb3, 0x39, 0x9b, 0x51, 0x64, 0x19,
+  0x79, 0xd4, 0x36, 0xd6, 0x5f, 0x61, 0x6e, 0x0a, 0x8e, 0x00, 0xa2, 0xb2,
+  0x65, 0x14, 0xb0, 0xb5, 0x44, 0x49, 0x2f, 0x5a, 0x4e, 0xf7, 0x8c, 0xda,
+  0x5f, 0x29, 0x83, 0x83, 0xa1, 0xbf, 0xf1, 0xb5, 0x18, 0x51, 0xb8, 0xe9,
+  0x6a, 0x1a, 0x0a, 0x80, 0xeb, 0xe2, 0x30, 0xee, 0x7d, 0xb8, 0xd1, 0x93,
+  0x84, 0x3b, 0x1c, 0xdb, 0x35, 0x6a, 0xd7, 0x1e, 0xa3, 0xec, 0xff, 0x1d,
+  0xab, 0x07, 0x21, 0x4c, 0x6c, 0xc0, 0x00, 0xbf, 0xc0, 0x04, 0x1f, 0xc6,
+  0xdc, 0x46, 0x36, 0xf1, 0xeb, 0x50, 0x8d, 0x8d, 0xb6, 0x50, 0x6b, 0x48,
+  0xd7, 0x91, 0x8f, 0xda, 0xe9, 0xed, 0x79, 0x2d, 0x6f, 0xeb, 0xc6, 0xad,
+  0x77, 0xd3, 0x31, 0xfb, 0x6a, 0x9f, 0x0e, 0x27, 0x00, 0x10, 0x21, 0x64,
+  0xe4, 0xe6, 0x35, 0x2d, 0x3d, 0xde, 0x89, 0x8e, 0xae, 0xd7, 0x97, 0x5b,
+  0x97, 0x55, 0x3a, 0xbc, 0x71, 0x33, 0xc5, 0x73, 0xaa, 0xf5, 0xb7, 0x19,
+  0x44, 0xb2, 0x08, 0x33, 0xc2, 0x59, 0xe9, 0x33, 0x93, 0x0b, 0xee, 0x17,
+  0xa6, 0x76, 0xe0, 0x71, 0xe1, 0x69, 0x1f, 0x82, 0x70, 0xba, 0xae, 0xb2,
+  0xf6, 0x13, 0xb1, 0xad, 0x22, 0x3c, 0x9a, 0x0e, 0xca, 0x7c, 0x34, 0xd2,
+  0x49, 0xe7, 0x0a, 0xb9, 0x6f, 0x70, 0x77, 0x3e, 0x85, 0x3a, 0x79, 0x68,
+  0xdf, 0x1d, 0xfa, 0xd0, 0x20, 0x49, 0x10, 0x22, 0xd4, 0xeb, 0xb6, 0xf7,
+  0xa0, 0x8e, 0x91, 0x02, 0xf6, 0x2e, 0x02, 0x8e, 0xb6, 0x2d, 0x8d, 0xf3,
+  0xf9, 0x5a, 0xa2, 0xe4, 0x9a, 0x5e, 0xab, 0xdc, 0x06, 0xd0, 0xa5, 0xf3,
+  0xa3, 0x32, 0x7f, 0x8a, 0x70, 0x4e, 0x41, 0x5d, 0x83, 0x67, 0xa6, 0x57,
+  0xe3, 0xef, 0x16, 0x25, 0x86, 0x9b, 0xba, 0x68, 0xbf, 0x28, 0xd2, 0x3d,
+  0x23, 0x3c, 0xfa, 0x02, 0xe6, 0xde, 0xca, 0x09, 0x87, 0x32, 0x82, 0x13,
+  0x3f, 0xb0, 0xf9, 0x85, 0x9e, 0x52, 0x3b, 0x9b, 0xd1, 0xf3, 0x4e, 0x65,
+  0x28, 0x89, 0xc2, 0xbf, 0xf7, 0x5f, 0xd7, 0xd2, 0x49, 0x5e, 0x64, 0x52,
+  0xeb, 0x90, 0x43, 0x2e, 0xb1, 0x1d, 0x74, 0x98, 0xc2, 0x9c, 0x5d, 0xf1,
+  0x96, 0x7e, 0x4f, 0x39, 0xe7, 0xd9, 0x1f, 0xd0, 0x9c, 0x69, 0xa0, 0xfc,
+  0x9d, 0x1f, 0x82, 0xd1, 0xa5, 0x08, 0x85, 0x28, 0xa6, 0x92, 0x21, 0xdb,
+  0x8b, 0xe2, 0x7d, 0x09, 0xca, 0xa4, 0xcc, 0x9a, 0xe0, 0x95, 0xc8, 0x38,
+  0x75, 0x27, 0x0d, 0x7d, 0x2f, 0x59, 0xaf, 0xcc, 0xe3, 0x2b, 0x57, 0x44,
+  0x1a, 0xbe, 0x3a, 0x25, 0x49, 0xd1, 0x68, 0x17, 0x08, 0xdb, 0xf6, 0x51,
+  0xc9, 0x8a, 0xcb, 0x24, 0x80, 0x0f, 0xbc, 0x92, 0x8d, 0x0e, 0xee, 0x6b,
+  0x8b, 0x53, 0x4f, 0x24, 0x98, 0x7e, 0xa2, 0xd2, 0x1e, 0xc0, 0xf1, 0x73,
+  0x41, 0xa0, 0xaf, 0x22, 0x8a, 0x24, 0x93, 0xdb, 0xb6, 0xcb, 0xb9, 0x20,
+  0xbd, 0xee, 0x47, 0x6b, 0x64, 0x09, 0x4f, 0x05, 0x81, 0x5b, 0x20, 0x0a,
+  0xc1, 0x14, 0xc5, 0xa0, 0x40, 0x06, 0x1d, 0xca, 0xd8, 0x84, 0x2a, 0x30,
+  0xd1, 0xeb, 0x07, 0x16, 0x11, 0xcd, 0xa4, 0xc0, 0x25, 0xc7, 0x98, 0x9f,
+  0x96, 0x83, 0xee, 0x93, 0x08, 0x7b, 0x3f, 0xe8, 0x3d, 0x61, 0xfb, 0x65,
+  0xc3, 0x59, 0x08, 0xfa, 0x16, 0x3b, 0x23, 0x00, 0xf8, 0x52, 0x07, 0xad,
+  0xae, 0xa8, 0x86, 0x0f, 0x35, 0x0f, 0x47, 0xe2, 0xa8, 0xef, 0x7b, 0xe8,
+  0xf5, 0xdc, 0x85, 0xf8, 0xda, 0xf0, 0xa8, 0x46, 0x75, 0x97, 0x05, 0x8c,
+  0x02, 0x63, 0x56, 0x4f, 0x56, 0xfb, 0x08, 0x90, 0x1e, 0x1a, 0xc4, 0xdb,
+  0x4a, 0x3e, 0x1b, 0x39, 0xb9, 0xe2, 0x71, 0x35, 0x41, 0xa0, 0xd1, 0x39,
+  0x58, 0xe0, 0x21, 0x4c, 0xd9, 0x46, 0x5c, 0x44, 0x3a, 0xea, 0x21, 0xb7,
+  0x29, 0xa4, 0x03, 0x7a, 0x93, 0x23, 0x47, 0xb0, 0xb5, 0xa3, 0xf8, 0xd3,
+  0x8e, 0x01, 0x7d, 0x7f, 0x01, 0xc4, 0x54, 0x7e, 0x47, 0xb1, 0x73, 0x62,
+  0x05, 0x29, 0x92, 0xc6, 0x57, 0xa7, 0x63, 0xe0, 0xcb, 0xc5, 0x95, 0xcb,
+  0x9e, 0x3f, 0x74, 0x5b, 0xfd, 0x8e, 0x2a, 0xa5, 0xc6, 0x66, 0xe8, 0x89,
+  0x0a, 0x9e, 0x82, 0x39, 0x2f, 0xc3, 0x30, 0xbb, 0xe9, 0x2d, 0x97, 0xaa,
+  0x07, 0x99, 0x75, 0x9b, 0x49, 0xd3, 0x49, 0x52, 0x85, 0x86, 0x54, 0x95,
+  0xdd, 0x68, 0x05, 0x57, 0x81, 0xda, 0x0e, 0xe9, 0xc1, 0xa5, 0x84, 0x22,
+  0x88, 0xf2, 0xdd, 0x1f, 0xb7, 0x6c, 0xf0, 0xdb, 0xe3, 0xc4, 0xa9, 0xb9,
+  0x2f, 0x79, 0x93, 0x10, 0xb4, 0x64, 0xf7, 0xa4, 0xe7, 0xbf, 0xf8, 0x7d,
+  0xf9, 0xfb, 0xa6, 0xd6, 0x35, 0x47, 0xcd, 0x55, 0x5b, 0x43, 0x93, 0x96,
+  0x13, 0x5f, 0xec, 0x85, 0x89, 0x18, 0xa7, 0x7e, 0x0b, 0xa8, 0xbf, 0x68,
+  0x48, 0x21, 0x8c, 0xdc, 0xbd, 0x3b, 0x2e, 0xb2, 0x50, 0x48, 0x48, 0x0b,
+  0x9f, 0x10, 0x21, 0xf2, 0x65, 0x00, 0x1d, 0xbc, 0x4e, 0x5a, 0x5f, 0xbb,
+  0x22, 0x23, 0xf0, 0x04, 0x08, 0x9c, 0xd1, 0x20, 0x41, 0x0a, 0xea, 0x02,
+  0x49, 0xcf, 0xae, 0x94, 0x61, 0x4f, 0x50, 0x00, 0xcd, 0x9f, 0xf0, 0x00,
+  0x06, 0xad, 0xc9, 0xf5, 0xe5, 0x9d, 0xae, 0x4c, 0xef, 0x24, 0x11, 0xca,
+  0xad, 0x26, 0x74, 0xcb, 0x6f, 0xe5, 0xcf, 0xcf, 0xe1, 0xf5, 0xb0, 0xbd,
+  0x76, 0x47, 0x50, 0xf6, 0xaa, 0xd8, 0xe9, 0x61, 0x89, 0x54, 0xa7, 0x13,
+  0xa3, 0x01, 0x64, 0xfb, 0xdb, 0xfd, 0xd7, 0x94, 0x50, 0x8c, 0xb5, 0x08,
+  0xf9, 0xba, 0x48, 0x6d, 0xa5, 0xa1, 0x69, 0x87, 0x4d, 0x38, 0x34, 0xb2,
+  0xbf, 0x6d, 0x38, 0xb5, 0xb4, 0x9a, 0xfe, 0xc1, 0xd3, 0xd0, 0x81, 0x4a,
+  0x64, 0xd7, 0xf3, 0xf9, 0x36, 0x74, 0xba, 0xaf, 0xa5, 0x53, 0xf6, 0x6a,
+  0x56, 0x29, 0xd3, 0xd2, 0x01, 0xed, 0x5b, 0x08, 0x43, 0x29, 0xe6, 0x74,
+  0x68, 0xd2, 0x3f, 0x9b, 0xd1, 0x7e, 0x07, 0xa2, 0xf8, 0x28, 0x63, 0x93,
+  0x59, 0x7a, 0xda, 0xb5, 0x01, 0x30, 0xb9, 0x41, 0x64, 0x13, 0xa5, 0x4b,
+  0x04, 0x02, 0x25, 0x4a, 0x51, 0xfd, 0x8a, 0x3a, 0x7a, 0x1f, 0x39, 0xb7,
+  0xd5, 0xb4, 0x41, 0x00, 0x0f, 0xe3, 0xea, 0xdb, 0x61, 0xf1, 0xf6, 0x7f,
+  0xb4, 0xb5, 0x0a, 0xdb, 0x8b, 0xfd, 0xf7, 0x1c, 0xbd, 0x52, 0x29, 0xc4,
+  0x6c, 0xc5, 0xd1, 0x39, 0x77, 0x8d, 0xa5, 0x70, 0xee, 0xea, 0xc8, 0x12,
+  0xb0, 0x29, 0xa0, 0xbc, 0xd3, 0x46, 0xe8, 0x04, 0x4a, 0x9b, 0x62, 0xef,
+  0x92, 0xe0, 0x49, 0x15, 0x33, 0xe6, 0xd1, 0xf1, 0x5c, 0xb7, 0x3e, 0x85,
+  0xb0, 0xc2, 0x0c, 0xcb, 0xe5, 0xd2, 0x22, 0x58, 0x1c, 0x21, 0x4c, 0x6d,
+  0x49, 0xdf, 0x08, 0xc5, 0x5d, 0x82, 0x88, 0x65, 0xaa, 0x6c, 0x4a, 0x0a,
+  0xba, 0x8c, 0x62, 0xf9, 0x7d, 0x70, 0x74, 0x3f, 0x49, 0x4e, 0xbc, 0xe9,
+  0x57, 0xbd, 0x7f, 0x06, 0xb8, 0xea, 0x25, 0xd6, 0xfd, 0x06, 0xb4, 0x58,
+  0x3b, 0x73, 0x63, 0xdd, 0x61, 0xb6, 0xa1, 0xbd, 0xab, 0xfc, 0x1d, 0xc5,
+  0xaa, 0xb2, 0x4b, 0x75, 0xef, 0x3a, 0x8b, 0xaa, 0x5f, 0x26, 0xb9, 0x95,
+  0xbf, 0x1b, 0x5a, 0xda, 0x1a, 0x70, 0x29, 0x2d, 0xee, 0x85, 0x11, 0x54,
+  0x04, 0x20, 0x40, 0xf4, 0x4e, 0xd7, 0x9f, 0xc1, 0xc8, 0xd0, 0x2c, 0xf7,
+  0xdd, 0xd4, 0x6f, 0x13, 0xd6, 0x7e, 0x52, 0x45, 0xac, 0xb0, 0x63, 0xeb,
+  0x94, 0x89, 0x41, 0x62, 0x87, 0x64, 0xb1, 0x68, 0xcf, 0x57, 0xb2, 0x6f,
+  0x15, 0x6b, 0x20, 0x67, 0xc8, 0xd9, 0x34, 0xa9, 0x3f, 0x47, 0x55, 0xf7,
+  0x13, 0x67, 0x7b, 0x74, 0x57, 0x42, 0xe3, 0x75, 0xdb, 0xe4, 0xd3, 0x93,
+  0x52, 0xc8, 0x93, 0x20, 0x54, 0x88, 0x94, 0x3d, 0xbd, 0xd9, 0xbd, 0xac,
+  0x36, 0x00, 0xac, 0x4e, 0x19, 0xce, 0x1b, 0x4f, 0x9e, 0x73, 0x64, 0x14,
+  0x56, 0x21, 0xf9, 0x2d, 0xf9, 0xc8, 0xbb, 0x37, 0xaa, 0x71, 0x18, 0x9b,
+  0xaf, 0xdd, 0xa3, 0xfd, 0xbf, 0x80, 0x63, 0xd2, 0x61, 0xae, 0xbf, 0x3b,
+  0x6b, 0xf8, 0x8b, 0x36, 0xa3, 0x55, 0x5f, 0x7f, 0xbc, 0xae, 0xaf, 0x94,
+  0x55, 0x22, 0x52, 0xb7, 0x5d, 0xc8, 0xfb, 0x68, 0xbe, 0x4e, 0x35, 0x07,
+  0x49, 0x21, 0x86, 0x07, 0x60, 0xae, 0x48, 0x73, 0xe2, 0xfe, 0x77, 0x79,
+  0xd7, 0x57, 0x1d, 0x22, 0x77, 0xdb, 0x5c, 0x95, 0x00, 0xa4, 0x8b, 0xba,
+  0x37, 0xf4, 0x2e, 0x6b, 0x97, 0xa5, 0x2e, 0x69, 0x31, 0xb6, 0x22, 0xf6,
+  0xc4, 0x9f, 0x7e, 0x50, 0xeb, 0xa5, 0xa9, 0x16, 0xd7, 0x3e, 0x59, 0xe4,
+  0x44, 0x8b, 0xa4, 0x1c, 0x8a, 0xa8, 0x3c, 0xd1, 0x5a, 0x30, 0x15, 0x40,
+  0xc2, 0x8f, 0xc3, 0xfb, 0xd9, 0xd6, 0xbc, 0xb4, 0x3f, 0xa0, 0xf3, 0xec,
+  0xb3, 0xfb, 0x70, 0x7f, 0x21, 0xc0, 0x7e, 0x69, 0xf4, 0x88, 0xc0, 0xee,
+  0x6f, 0x96, 0xf3, 0x7b, 0x63, 0x1a, 0x37, 0x61, 0xb7, 0xc0, 0x65, 0xa4,
+  0xb0, 0x7c, 0x8e, 0x34, 0x74, 0x43, 0xdd, 0x94, 0xb1, 0x07, 0x7d, 0xbd,
+  0xd1, 0x8a, 0x2c, 0x35, 0xf1, 0x0d, 0x77, 0x03, 0xe9, 0xd2, 0x72, 0xaa,
+  0x14, 0xcf, 0x37, 0xc8, 0x18, 0x5e, 0x58, 0x82, 0x56, 0x88, 0xa0, 0xf0,
+  0x1e, 0xd5, 0x3b, 0x49, 0xc8, 0xab, 0x44, 0xf0, 0x7c, 0xf7, 0xa7, 0x5e,
+  0xb5, 0x1d, 0xaa, 0xf6, 0x3d, 0x4f, 0xa2, 0x1b, 0x18, 0x62, 0x26, 0x38,
+  0x91, 0x73, 0xf0, 0xd4, 0xa4, 0x02, 0x73, 0x99, 0x68, 0x0b, 0x84, 0xa6,
+  0x15, 0xbc, 0x41, 0x64, 0x1c, 0xac, 0x86, 0xc5, 0xc3, 0x07, 0x21, 0x4c,
+  0x37, 0x47, 0x5d, 0x64, 0x76, 0xe5, 0x35, 0xb7, 0x21, 0x31, 0x38, 0x06,
+  0xec, 0x23, 0xa4, 0x48, 0xb5, 0xba, 0xfd, 0x28, 0x49, 0x9a, 0x5b, 0xe4,
+  0x57, 0x5a, 0x9a, 0x3e, 0xc2, 0xf5, 0x7a, 0x94, 0xe9, 0xa5, 0xb1, 0x94,
+  0x91, 0x52, 0x58, 0x3f, 0xbb, 0xac, 0x16, 0x70, 0x96, 0xdc, 0xca, 0x0f,
+  0xc5, 0x6f, 0x1a, 0x72, 0x0b, 0xa2, 0x5d, 0x2e, 0x36, 0xf9, 0x67, 0xfe,
+  0x05, 0x0e, 0x9f, 0xd3, 0xf7, 0x1c, 0x8a, 0xcd, 0xdb, 0x8e, 0x86, 0xe8,
+  0xca, 0x37, 0x0b, 0x26, 0x64, 0xda, 0x14, 0x08, 0xc7, 0x6d, 0x8f, 0x17,
+  0xa1, 0xb5, 0x1b, 0x17, 0xf5, 0x79, 0xc6, 0x6f, 0xa7, 0xae, 0xaa, 0xe1,
+  0xe7, 0x20, 0xea, 0xac, 0xcf, 0x77, 0xca, 0xf5, 0xe3, 0x57, 0x70, 0x41,
+  0x02, 0x9d, 0x4d, 0x07, 0xd3, 0x18, 0xb7, 0x19, 0x5b, 0xe0, 0x89, 0x57,
+  0x00, 0xf3, 0xae, 0xf2, 0x98, 0x63, 0x9e, 0x3a, 0x3d, 0x66, 0xf9, 0xb1,
+  0xc1, 0x56, 0x10, 0x10, 0xac, 0x61, 0x66, 0xbb, 0x0a, 0xa5, 0x0e, 0x9b,
+  0xea, 0xc5, 0x7a, 0xd5, 0x97, 0xf8, 0x3b, 0x99, 0x12, 0x9a, 0x6b, 0x6a,
+  0x05, 0x34, 0x01, 0xfc, 0x32, 0x4b, 0xa8, 0x42, 0x68, 0x80, 0x3f, 0x4f,
+  0xc2, 0x8c, 0x50, 0xcd, 0xf7, 0xe9, 0xaa, 0x69, 0xfc, 0x53, 0xa5, 0x7d,
+  0x16, 0xcc, 0xf1, 0x3f, 0x05, 0x9c, 0x28, 0x7c, 0x57, 0x26, 0xed, 0xd9,
+  0x87, 0xea, 0x3b, 0x12, 0xaf, 0x49, 0xb9, 0xf9, 0xe5, 0xc9, 0xc3, 0xfc,
+  0xc6, 0x51, 0x0f, 0xcc, 0x54, 0xc3, 0xe9, 0xeb, 0x54, 0x33, 0x15, 0x06,
+  0x59, 0xf4, 0xdc, 0x5d, 0xd3, 0x5d, 0xd3, 0xe2, 0x83, 0xa5, 0x5b, 0x46,
+  0xda, 0x3c, 0x6f, 0x6f, 0xb1, 0x93, 0x93, 0x5a, 0x12, 0x9f, 0x38, 0x64,
+  0xbf, 0x06, 0x04, 0x42, 0x49, 0x96, 0xe7, 0x2b, 0xe4, 0xa3, 0xd5, 0x47,
+  0x64, 0xb5, 0x80, 0xd7, 0xea, 0x7e, 0x5d, 0x98, 0x36, 0x00, 0x14, 0x17,
+  0x02, 0x3e, 0x20, 0x73, 0x10, 0x39, 0x84, 0x68, 0x39, 0x82, 0x6c, 0x38,
+  0x12, 0x66, 0x5d, 0xf7, 0xc0, 0xe4, 0x3f, 0xea, 0xd2, 0xd8, 0xca, 0x48,
+  0xa9, 0x2c, 0x1c, 0x9f, 0xdb, 0x47, 0x6c, 0x90, 0xdc, 0x4f, 0xa9, 0xdd,
+  0x57, 0x16, 0xb0, 0x2e, 0xbe, 0xab, 0xd1, 0xb1, 0xdd, 0x74, 0xae, 0x5a,
+  0x19, 0x20, 0x51, 0xc4, 0xba, 0xdf, 0x6f, 0xa2, 0x3e, 0xff, 0x16, 0xb6,
+  0xcf, 0x71, 0xf0, 0xea, 0x3a, 0x47, 0x1f, 0xae, 0x1f, 0x61, 0xe9, 0xa1,
+  0xc0, 0x21, 0x7a, 0x94, 0xd5, 0x55, 0x88, 0x31, 0x51, 0x2a, 0x70, 0xd8,
+  0xe5, 0x47, 0x0b, 0x75, 0x2a, 0xd3, 0x8d, 0x45, 0x50, 0xe0, 0x85, 0xb2,
+  0x66, 0x6e, 0x39, 0x6a, 0x93, 0xbf, 0x13, 0xe3, 0xee, 0x38, 0xbf, 0xf8,
+  0xa4, 0xbc, 0x56, 0xad, 0x8b, 0xf3, 0x2e, 0x9b, 0x60, 0xf6, 0xcc, 0x6e,
+  0x8b, 0x8c, 0x01, 0x94, 0x4a, 0x51, 0xb1, 0xdb, 0x75, 0x57, 0xec, 0xcb,
+  0x84, 0xda, 0x34, 0xd3, 0x7c, 0xe8, 0x57, 0x12, 0x19, 0x8b, 0xe3, 0x5a,
+  0x31, 0xa1, 0xba, 0xee, 0x7d, 0x73, 0xe7, 0x78, 0x38, 0xdf, 0x7e, 0xf4,
+  0x0a, 0x5b, 0xd2, 0xfe, 0xdd, 0x87, 0xa9, 0x7f, 0x53, 0x64, 0xe5, 0x13,
+  0xac, 0x92, 0xdf, 0x48, 0x2d, 0xe4, 0x92, 0xbd, 0x3c, 0xc9, 0x64, 0x21,
+  0xa3, 0x36, 0x55, 0xa7, 0xb1, 0x67, 0x9d, 0x37, 0x65, 0x96, 0x5d, 0x54,
+  0x25, 0xbd, 0xf9, 0x4e, 0x79, 0xd4, 0xf7, 0x0c, 0xb5, 0xac, 0xf0, 0x22,
+  0xe2, 0x27, 0x4f, 0x6f, 0xd6, 0xb5, 0x97, 0x2e, 0x92, 0xee, 0x94, 0x24,
+  0x05, 0x26, 0xa4, 0xe7, 0xd3, 0x5f, 0x20, 0x85, 0xe7, 0x30, 0xc7, 0x32,
+  0xf2, 0x5d, 0x7a, 0x46, 0x85, 0xc7, 0x2a, 0xd5, 0x00, 0x64, 0x98, 0xa7,
+  0x0b, 0x40, 0x24, 0xa8, 0x6e, 0xe5, 0x4a, 0x2e, 0x48, 0x85, 0x2f, 0x8e,
+  0x5b, 0x4a, 0xaf, 0xad, 0x83, 0xe9, 0xcb, 0x04, 0x76, 0x63, 0x6b, 0x47,
+  0x18, 0x4a, 0xd9, 0xd8, 0x80, 0x7a, 0x08, 0x30, 0x56, 0x00, 0x1f, 0xc9,
+  0x08, 0x0b, 0x65, 0x8d, 0xdf, 0x80, 0x00, 0x00, 0xa9, 0xc9, 0xb7, 0x64,
+  0xe8, 0xed, 0x0a, 0xfd, 0xfa, 0x75, 0xff, 0x0a, 0x9e, 0x7e, 0xf9, 0xd7,
+  0x32, 0xd0, 0x9d, 0xd8, 0x96, 0x74, 0x6e, 0xbe, 0xb9, 0x92, 0x02, 0x39,
+  0x01, 0x7d, 0x79, 0x53, 0x7a, 0x20, 0x18, 0x98, 0xe8, 0x01, 0x42, 0xb9,
+  0xa3, 0x8f, 0x18, 0x09, 0x5e, 0x4b, 0x8e, 0x75, 0x18, 0x2f, 0xe9, 0x89,
+  0xae, 0xbc, 0xee, 0x5c, 0xa4, 0x40, 0xbe, 0xa3, 0xa7, 0xef, 0x29, 0x4c,
+  0xc4, 0x0e, 0x21, 0x1a, 0x94, 0xad, 0x96, 0x95, 0x62, 0xa4, 0x11, 0x05,
+  0xa0, 0x37, 0x15, 0x82, 0x85, 0xde, 0xb5, 0x56, 0xd6, 0x8e, 0x2b, 0x6d,
+  0x02, 0xcb, 0x64, 0x8b, 0xc7, 0xba, 0x62, 0xdb, 0xf8, 0x6f, 0x55, 0xd2,
+  0x3f, 0x6e, 0xc4, 0x7f, 0x5b, 0x62, 0x02, 0x3f, 0xf7, 0xfc, 0xd3, 0x94,
+  0xb7, 0x55, 0x75, 0x4b, 0x96, 0x66, 0x54, 0xb8, 0x9b, 0x58, 0xda, 0xac,
+  0xcf, 0xcd, 0x58, 0x92, 0x6c, 0xfc, 0x77, 0x29, 0xde, 0x78, 0x98, 0x5c,
+  0xc2, 0xdd, 0x96, 0x74, 0xec, 0x2d, 0xc7, 0x98, 0xb4, 0x77, 0x15, 0xcb,
+  0x42, 0xcb, 0x5f, 0x5f, 0x9d, 0x85, 0xca, 0x5c, 0x33, 0xbf, 0x68, 0xf6,
+  0xef, 0xa9, 0xe6, 0x0a, 0x31, 0x50, 0x5f, 0xff, 0x3d, 0x17, 0x90, 0x48,
+  0xb1, 0xef, 0x14, 0x33, 0x16, 0x0f, 0xdd, 0x59, 0xfe, 0x4a, 0x02, 0xae,
+  0xfb, 0x71, 0x46, 0x16, 0x46, 0x36, 0x34, 0xc9, 0x92, 0x41, 0x24, 0x93,
+  0x8e, 0x04, 0x14, 0x47, 0x62, 0x2a, 0x59, 0xdc, 0x4d, 0xa5, 0x8a, 0xa2,
+  0xc5, 0x65, 0x11, 0xe3, 0x15, 0x6b, 0x83, 0xe1, 0x67, 0x4e, 0x87, 0x7d,
+  0xc4, 0x3d, 0xd2, 0x51, 0x5b, 0x6e, 0x5d, 0x61, 0x05, 0xa9, 0x3e, 0x90,
+  0x11, 0x1a, 0x26, 0xbd, 0x0b, 0x92, 0x9e, 0x0b, 0x65, 0x02, 0x8a, 0xa8,
+  0x4a, 0x65, 0xd5, 0x3a, 0x3f, 0x6b, 0xf7, 0x14, 0x9d, 0x12, 0xb4, 0xe0,
+  0xac, 0x0b, 0x48, 0xe1, 0xba, 0x6e, 0xd0, 0x89, 0x73, 0xa5, 0xc9, 0xde,
+  0x0c, 0xb2, 0xf4, 0x67, 0x73, 0x6d, 0x8c, 0xc2, 0x4a, 0xd6, 0x07, 0xb0,
+  0x82, 0x85, 0xa7, 0x36, 0xba, 0x07, 0xf2, 0x0a, 0x01, 0x6c, 0x91, 0x78,
+  0xf7, 0x48, 0x4c, 0x3b, 0x1b, 0x2f, 0xcd, 0x9a, 0x2a, 0x45, 0xc4, 0x1d,
+  0xef, 0xfa, 0x63, 0x9b, 0xf0, 0x60, 0x2c, 0xcc, 0x6b, 0x27, 0x2f, 0xc7,
+  0x1b, 0x05, 0x1a, 0x5a, 0x81, 0x40, 0x22, 0xbe, 0xb1, 0xbf, 0xc2, 0x61,
+  0xd8, 0x00, 0xaa, 0xc3, 0x31, 0x9e, 0xe0, 0x00, 0xba, 0x06, 0x5a, 0xa4,
+  0x8c, 0x0a, 0x12, 0xb2, 0x51, 0xfc, 0x8b, 0xcc, 0x4e, 0x82, 0xa6, 0x00,
+  0x49, 0x70, 0x3d, 0xb9, 0x0a, 0x03, 0x07, 0x21, 0x1a, 0x94, 0xc5, 0xb2,
+  0x94, 0xc4, 0x41, 0x09, 0x08, 0x42, 0x52, 0x10, 0x05, 0xb8, 0xa9, 0x2f,
+  0x81, 0xe1, 0x84, 0xae, 0xb5, 0x77, 0x77, 0xab, 0x41, 0x28, 0x0b, 0x1c,
+  0xcd, 0xc7, 0xbd, 0xbc, 0x72, 0x60, 0xfb, 0x9f, 0x31, 0x2d, 0xdc, 0xb2,
+  0x23, 0xeb, 0xa6, 0x2b, 0xe4, 0xd4, 0x9b, 0x14, 0xf6, 0x26, 0xc3, 0xe3,
+  0xdd, 0xeb, 0xb3, 0x28, 0xdb, 0x67, 0xc4, 0xbb, 0x56, 0x64, 0x0e, 0x59,
+  0x17, 0x68, 0xae, 0x7c, 0xed, 0xdf, 0xb4, 0x66, 0x3b, 0x6d, 0x6e, 0xa3,
+  0xf2, 0xf6, 0xd8, 0x77, 0x8d, 0xab, 0xc9, 0x7e, 0xe3, 0x94, 0xf1, 0x8a,
+  0x88, 0x5c, 0x1c, 0x86, 0xdf, 0xf2, 0xd4, 0x19, 0xbf, 0xd4, 0x36, 0xa0,
+  0xc5, 0xad, 0x61, 0x61, 0xca, 0x6f, 0x56, 0xb0, 0x72, 0xea, 0xae, 0xa9,
+  0x3b, 0xab, 0x13, 0x97, 0x56, 0x2f, 0x0f, 0x57, 0xef, 0xe6, 0x44, 0x9e,
+  0xc9, 0xf9, 0xca, 0xd7, 0x5d, 0xc9, 0x63, 0xe5, 0x87, 0xdf, 0x0a, 0x53,
+  0xa9, 0xeb, 0xf9, 0x5b, 0xe6, 0x9f, 0x6a, 0xba, 0xe3, 0xa6, 0x79, 0x60,
+  0x56, 0x08, 0x1d, 0x03, 0x68, 0xb1, 0x3d, 0x36, 0x57, 0x5e, 0x85, 0x02,
+  0x5a, 0x4a, 0xd9, 0xf8, 0x65, 0x64, 0xb3, 0x73, 0xc7, 0x24, 0x4e, 0xd2,
+  0x13, 0x2d, 0x33, 0x3e, 0x54, 0x65, 0xcc, 0xb9, 0x52, 0xcd, 0x2b, 0x54,
+  0xfb, 0xd4, 0x73, 0x1b, 0xe4, 0x8e, 0x1c, 0xad, 0x40, 0x68, 0x94, 0xea,
+  0x89, 0x0a, 0xfe, 0x90, 0xad, 0xef, 0x45, 0x3e, 0x1b, 0xdb, 0x5b, 0xf7,
+  0x94, 0x84, 0xed, 0xf7, 0x42, 0xd6, 0xd2, 0x62, 0x12, 0x3f, 0xdd, 0xb6,
+  0xc8, 0xa6, 0x3c, 0xa5, 0x9d, 0x88, 0x07, 0x70, 0x81, 0xc6, 0x00, 0x37,
+  0x6a, 0xaf, 0xf2, 0xd6, 0x0b, 0xda, 0xd4, 0xc0, 0xd1, 0x51, 0xcf, 0xa7,
+  0x30, 0xf1, 0x47, 0xaf, 0xf8, 0x93, 0x05, 0xe7, 0x87, 0xe2, 0x3d, 0xa3,
+  0x0f, 0x88, 0xb2, 0x52, 0xd1, 0x20, 0xa6, 0x12, 0x07, 0x5b, 0xed, 0xe2,
+  0xd4, 0xfa, 0x80, 0x29, 0xe5, 0xb6, 0x7b, 0x3a, 0x5a, 0xcd, 0x80, 0x80,
+  0x01, 0x14, 0x94, 0x4a, 0x21, 0x68, 0xde, 0x90, 0xdb, 0x4f, 0x50, 0x48,
+  0x48, 0x91, 0x55, 0x65, 0xef, 0x21, 0xa1, 0xea, 0xf2, 0x31, 0xc5, 0x71,
+  0xb5, 0xe4, 0xc3, 0x41, 0x4f, 0xa4, 0x5d, 0x80, 0xb8, 0x54, 0x1c, 0x21,
+  0x1a, 0x94, 0xb5, 0xa2, 0x9c, 0xc4, 0x41, 0x12, 0x04, 0xc0, 0x11, 0x55,
+  0x59, 0x51, 0x4d, 0x75, 0xc6, 0xa9, 0xc2, 0xd6, 0x01, 0x40, 0x6b, 0xc9,
+  0x49, 0xa4, 0x02, 0x3a, 0x7e, 0xa3, 0x1d, 0x12, 0x8f, 0xf9, 0x7d, 0xc4,
+  0x3d, 0xf5, 0x35, 0x43, 0x8b, 0xb4, 0x1d, 0x77, 0x1f, 0x3d, 0xe5, 0x4b,
+  0x3b, 0x66, 0x08, 0xb7, 0xdc, 0x15, 0x57, 0x6c, 0xe4, 0xf4, 0xae, 0xa1,
+  0x9a, 0x58, 0xb1, 0x73, 0x09, 0xea, 0x08, 0xf4, 0x7a, 0xce, 0x23, 0x30,
+  0xe7, 0xfe, 0x86, 0x37, 0x60, 0xf3, 0xbe, 0xf9, 0xc4, 0x6a, 0x46, 0x01,
+  0x9e, 0x82, 0x37, 0x39, 0xc6, 0x78, 0xbe, 0x55, 0x9e, 0x66, 0x01, 0xbb,
+  0x4b, 0xc9, 0x47, 0x5b, 0xa8, 0x74, 0xfa, 0xcb, 0x25, 0x38, 0x1a, 0x37,
+  0x8b, 0x3e, 0x98, 0x58, 0x76, 0x8d, 0x97, 0x31, 0xef, 0xd3, 0x8f, 0xdf,
+  0xb8, 0x6e, 0xa2, 0x94, 0xcc, 0xed, 0xf8, 0xe8, 0xe9, 0x87, 0xe8, 0x72,
+  0xee, 0xbf, 0xc1, 0x24, 0x11, 0x4c, 0xa6, 0xad, 0x6c, 0xbe, 0xc7, 0x88,
+  0xa1, 0x20, 0x00, 0x8d, 0xb4, 0xc2, 0x28, 0xdd, 0xee, 0xec, 0x23, 0x52,
+  0x72, 0x2f, 0xb5, 0x75, 0x79, 0x57, 0x4d, 0x91, 0xa0, 0x1d, 0x69, 0xb0,
+  0xf3, 0x62, 0x3d, 0x9e, 0x40, 0x43, 0x4a, 0xab, 0x62, 0xbc, 0x5b, 0x39,
+  0x22, 0x99, 0xc0, 0x78, 0x9e, 0x4a, 0x60, 0xb7, 0xc3, 0x4e, 0xf4, 0x18,
+  0x61, 0xdc, 0x8f, 0x16, 0x33, 0xa8, 0xc0, 0xae, 0x86, 0x17, 0x2d, 0x88,
+  0x9c, 0xbb, 0x4d, 0x5b, 0x49, 0xb3, 0xf0, 0xd4, 0x4e, 0x8a, 0x25, 0x6c,
+  0xe5, 0x18, 0x39, 0x21, 0xc1, 0xc7, 0x5d, 0x66, 0x13, 0x34, 0x94, 0x30,
+  0x0d, 0xc2, 0x03, 0x10, 0x80, 0xc4, 0x20, 0x21, 0x6a, 0x58, 0x2e, 0x8a,
+  0x63, 0xef, 0xe7, 0x82, 0x85, 0x9b, 0xd0, 0x24, 0xc3, 0x71, 0x86, 0xfd,
+  0xee, 0x33, 0xc9, 0xe2, 0xb8, 0x66, 0x7f, 0xe1, 0xfd, 0xee, 0xb7, 0xda,
+  0x1d, 0xdf, 0xd3, 0x03, 0xa0, 0xba, 0x5d, 0xc6, 0xbe, 0xb6, 0xab, 0x6b,
+  0xbf, 0x84, 0xa1, 0x5e, 0x93, 0xbf, 0xae, 0xd1, 0x59, 0xca, 0xda, 0xbc,
+  0x69, 0xc0, 0x43, 0xf7, 0x00, 0x04, 0xb4, 0x47, 0x87, 0x35, 0x82, 0x75,
+  0x54, 0x42, 0xdc, 0xa2, 0x09, 0x44, 0xb9, 0x9e, 0x60, 0x06, 0x37, 0x4b,
+  0xc6, 0x73, 0xa1, 0x72, 0xcc, 0xc1, 0x97, 0x35, 0x3f, 0xbe, 0xae, 0xb0,
+  0xa0, 0x07, 0x21, 0x2a, 0x94, 0xad, 0xd9, 0x03, 0x02, 0x61, 0x20, 0x85,
+  0xa0, 0x45, 0xec, 0xc5, 0x62, 0xeb, 0x5c, 0x69, 0x77, 0x20, 0xb1, 0x83,
+  0x4d, 0x86, 0xc7, 0xa8, 0x4b, 0x4d, 0x59, 0xad, 0x26, 0x71, 0xfe, 0x52,
+  0xb8, 0x47, 0x8f, 0xe1, 0x72, 0x98, 0x21, 0xd7, 0x48, 0xb8, 0xcf, 0xc3,
+  0xf8, 0xfe, 0x7b, 0xc2, 0x7a, 0xc2, 0x92, 0x69, 0x81, 0xe4, 0x9e, 0xfe,
+  0xda, 0x77, 0x0c, 0x7b, 0x96, 0xb9, 0x0f, 0x6a, 0xe6, 0x87, 0x14, 0x3b,
+  0x8b, 0xd6, 0xfb, 0xa5, 0xd1, 0x98, 0x34, 0x74, 0x73, 0xe2, 0x7b, 0x47,
+  0x2f, 0x61, 0x59, 0xb9, 0x53, 0x7e, 0xf6, 0xaf, 0xd7, 0xa0, 0xdd, 0x0b,
+  0x4e, 0x60, 0xc3, 0xa7, 0xc8, 0x88, 0x33, 0x67, 0x67, 0x65, 0xbc, 0xc1,
+  0x4b, 0xe1, 0xbb, 0x47, 0xa7, 0xac, 0xab, 0x8f, 0x1c, 0xc1, 0xad, 0xbc,
+  0xa7, 0x4e, 0x5e, 0x58, 0xd4, 0x39, 0xae, 0x07, 0x18, 0xc4, 0x15, 0xf4,
+  0x12, 0x92, 0xf3, 0x39, 0xdb, 0x0a, 0x10, 0x81, 0x53, 0x7a, 0xe2, 0xa8,
+  0xd4, 0x6a, 0x7a, 0xba, 0x96, 0xbe, 0xd6, 0x10, 0xc0, 0x55, 0xcd, 0xae,
+  0x7e, 0x62, 0x6c, 0x78, 0xee, 0xed, 0x19, 0x98, 0xe9, 0xc4, 0x30, 0x70,
+  0x03, 0xbd, 0xa8, 0x1b, 0xec, 0xd9, 0xff, 0xa8, 0x2d, 0xd3, 0x41, 0x79,
+  0x0d, 0x7c, 0xe2, 0x6a, 0x40, 0x3b, 0x52, 0x29, 0x42, 0x54, 0x54, 0xdc,
+  0xaa, 0xcf, 0xdf, 0x3f, 0xaa, 0xb2, 0x85, 0x15, 0xf3, 0x42, 0x3c, 0x62,
+  0xc8, 0x2c, 0x45, 0x18, 0x26, 0x48, 0x17, 0x4d, 0x5b, 0x04, 0xf0, 0x12,
+  0x9b, 0xd8, 0x67, 0x85, 0xd3, 0x12, 0x28, 0xa5, 0xac, 0x04, 0xa5, 0xa5,
+  0x08, 0x05, 0xa0, 0x80, 0xc4, 0x20, 0x61, 0x50, 0x0c, 0x01, 0x81, 0xd7,
+  0xee, 0xa0, 0x5e, 0x08, 0xbf, 0x30, 0xcf, 0x5d, 0x73, 0xce, 0x7f, 0x74,
+  0xf4, 0xcf, 0x27, 0xce, 0x51, 0xa7, 0x81, 0xf7, 0x96, 0x5d, 0xdb, 0xad,
+  0x28, 0xd6, 0x06, 0x01, 0xee, 0x10, 0x91, 0x2f, 0xb0, 0xde, 0x40, 0x01,
+  0x12, 0x79, 0xa4, 0xbb, 0x8b, 0xc5, 0x70, 0xde, 0xb6, 0x4e, 0xdc, 0x33,
+  0x92, 0x41, 0xe1, 0x42, 0x28, 0x2b, 0x88, 0x85, 0xea, 0x70, 0x26, 0x86,
+  0xf5, 0x80, 0x18, 0xef, 0x10, 0xb8, 0x33, 0x35, 0x5b, 0x10, 0x0e, 0x21,
+  0x4c, 0xc7, 0x47, 0x5d, 0x62, 0x3a, 0xe4, 0x41, 0x97, 0x9a, 0x1a, 0xbe,
+  0x5d, 0x89, 0x4c, 0xb9, 0xe7, 0x56, 0x1f, 0xc0, 0x79, 0xf2, 0x32, 0xff,
+  0x8a, 0x3c, 0x9d, 0x4d, 0x63, 0xf6, 0x52, 0xfc, 0xde, 0x95, 0xa2, 0x05,
+  0x25, 0x4e, 0xb8, 0xb3, 0x85, 0x83, 0x17, 0xfa, 0x3e, 0x53, 0xf6, 0x4b,
+  0xe3, 0x86, 0x52, 0x31, 0x0a, 0x3f, 0xcf, 0x1f, 0xc7, 0xf1, 0x0a, 0x80,
+  0x11, 0xdc, 0xaa, 0x5a, 0x6f, 0x22, 0x78, 0x4a, 0xb6, 0x74, 0x17, 0xd3,
+  0xa6, 0x20, 0x7f, 0xb2, 0xa3, 0x59, 0xe4, 0xd3, 0x54, 0xbc, 0xe7, 0x1d,
+  0x57, 0x77, 0x4f, 0x92, 0x1d, 0x6f, 0xc6, 0x5a, 0x21, 0xbc, 0xb2, 0x71,
+  0xa0, 0x86, 0x42, 0x37, 0x9c, 0xa7, 0xb7, 0x69, 0x19, 0xbb, 0x47, 0x7a,
+  0xc1, 0x03, 0xf3, 0x16, 0x61, 0x3d, 0x5e, 0xbd, 0xbe, 0xb2, 0x47, 0xe0,
+  0x3e, 0x62, 0x9f, 0xe1, 0x95, 0x68, 0x03, 0xd5, 0xfb, 0x7b, 0x76, 0xdf,
+  0x00, 0x10, 0x71, 0x27, 0xe2, 0x98, 0x89, 0xd5, 0xdf, 0xf6, 0xaf, 0xe0,
+  0xd9, 0xd1, 0x59, 0xdc, 0x6a, 0x9d, 0xcd, 0x9f, 0x20, 0x2b, 0x94, 0xe9,
+  0xdb, 0x0f, 0x61, 0x25, 0xbc, 0x73, 0x91, 0x00, 0x16, 0xdc, 0x93, 0xc7,
+  0xa7, 0xa3, 0xf6, 0xba, 0xdf, 0xa4, 0x72, 0x48, 0x17, 0xae, 0xcd, 0xfa,
+  0x4f, 0x79, 0xf5, 0x9e, 0xb3, 0x1a, 0x35, 0xf0, 0x7f, 0x27, 0x92, 0x7b,
+  0xaa, 0xa0, 0x1e, 0xef, 0xca, 0xc1, 0xa9, 0xc2, 0xee, 0xf6, 0xfa, 0x91,
+  0xf3, 0x3c, 0x09, 0xf8, 0xf6, 0x70, 0x2c, 0x18, 0xdf, 0x09, 0xb9, 0x39,
+  0xaa, 0x99, 0x31, 0x4a, 0xd1, 0x06, 0xfa, 0xdf, 0xbd, 0x81, 0x1b, 0x40,
+  0x7b, 0x29, 0x73, 0xca, 0x8b, 0x09, 0x57, 0x79, 0xb9, 0xbe, 0x36, 0xcd,
+  0x37, 0x33, 0x68, 0xb4, 0x23, 0x94, 0x59, 0x5a, 0x77, 0xfd, 0xe9, 0x04,
+  0x8a, 0xa8, 0x14, 0x59, 0x0c, 0x60, 0x15, 0x84, 0xd5, 0xdf, 0xab, 0x52,
+  0xf1, 0xeb, 0x40, 0xe0, 0x75, 0x3a, 0x3d, 0x77, 0x57, 0xe0, 0xc6, 0x59,
+  0x4e, 0xae, 0x88, 0x1f, 0xec, 0xe5, 0xf4, 0xcc, 0x30, 0xc8, 0x02, 0x58,
+  0xbe, 0x91, 0x50, 0x04, 0x95, 0x14, 0x50, 0x4f, 0x02, 0xa4, 0xe8, 0x39,
+  0x98, 0x1c, 0xd1, 0x62, 0x06, 0x08, 0x21, 0x41, 0x05, 0xfc, 0x3d, 0xad,
+  0x5f, 0xd9, 0xcd, 0x85, 0x97, 0xe5, 0x02, 0x92, 0xa3, 0x1c, 0xaf, 0x3a,
+  0x80, 0xdf, 0x71, 0x7d, 0x26, 0xf5, 0xdd, 0x66, 0xa6, 0x95, 0x6f, 0x0c,
+  0x80, 0x66, 0xfc, 0x2f, 0x47, 0x3c, 0x68, 0xa8, 0xe6, 0xa2, 0x21, 0x34,
+  0x82, 0x3a, 0x75, 0x08, 0x4a, 0x76, 0xc8, 0x19, 0x0f, 0xc8, 0x15, 0x0b,
+  0x3b, 0x7f, 0x4a, 0xf4, 0xd9, 0x6e, 0x9b, 0xe2, 0x66, 0x5f, 0x9a, 0xe5,
+  0x3e, 0x8b, 0x76, 0x98, 0xd3, 0x54, 0x4a, 0x24, 0x61, 0x3e, 0x71, 0xba,
+  0x11, 0x05, 0x98, 0x07, 0x21, 0x7a, 0x94, 0xc5, 0xda, 0x08, 0x83, 0x16,
+  0xb3, 0x81, 0x4e, 0x12, 0x9b, 0x09, 0xa2, 0xfc, 0x8b, 0x40, 0x00, 0x0e,
+  0x7d, 0x61, 0x9e, 0xfa, 0x5b, 0x34, 0xfb, 0xcb, 0x8f, 0x8d, 0x2d, 0x50,
+  0x6c, 0x1c, 0x5b, 0xcb, 0xf9, 0x4e, 0x2d, 0x0d, 0x7c, 0xfa, 0x0f, 0x82,
+  0xee, 0xbc, 0x23, 0x31, 0x63, 0xa9, 0x0c, 0xe7, 0x33, 0xd2, 0x3c, 0x6d,
+  0xd7, 0x59, 0x93, 0xe8, 0x32, 0x8e, 0x73, 0xc7, 0x33, 0xc3, 0xce, 0xe6,
+  0xec, 0x3b, 0x0b, 0x73, 0x55, 0x1e, 0xf2, 0x1b, 0x68, 0x83, 0xea, 0x35,
+  0xa8, 0xfd, 0x33, 0xf0, 0xdb, 0x81, 0x8e, 0x09, 0xa1, 0xac, 0x1d, 0x9f,
+  0x44, 0x8b, 0x51, 0xc8, 0x39, 0xb6, 0xe7, 0xee, 0xbd, 0x45, 0xcc, 0xf0,
+  0x5a, 0xa3, 0xa0, 0xf6, 0x55, 0x5f, 0x91, 0xa7, 0xa9, 0xc5, 0x3b, 0xd8,
+  0xb1, 0xae, 0xcd, 0x5a, 0x89, 0x38, 0x9f, 0x4a, 0x0c, 0x84, 0x24, 0x95,
+  0xb9, 0x15, 0x99, 0xc9, 0x5e, 0x66, 0x52, 0x75, 0x7d, 0xfc, 0x5e, 0x2b,
+  0x38, 0xdb, 0x1c, 0x6a, 0x84, 0x63, 0xe8, 0x5b, 0x9d, 0x23, 0x2d, 0xf4,
+  0x06, 0x28, 0x06, 0xb2, 0x21, 0x08, 0x13, 0x80, 0x76, 0x5a, 0x6f, 0x0a,
+  0x5b, 0xc8, 0x9e, 0x97, 0x82, 0xbd, 0xe7, 0x33, 0x81, 0xb5, 0x54, 0x37,
+  0xb2, 0x51, 0xf0, 0xc7, 0x81, 0x92, 0x93, 0xbf, 0x18, 0xd2, 0xb3, 0xaf,
+  0x56, 0x5b, 0xe3, 0x97, 0xb2, 0x1f, 0x3f, 0xd6, 0xa9, 0xc6, 0x91, 0xb1,
+  0xd2, 0x37, 0xc3, 0xc6, 0x36, 0xe3, 0xdd, 0xca, 0x70, 0xac, 0xe9, 0x9f,
+  0xa4, 0x63, 0xd9, 0x6a, 0xd2, 0xfb, 0xd3, 0x34, 0xdf, 0x94, 0x61, 0x1c,
+  0xaa, 0x55, 0x4a, 0xb4, 0xea, 0x84, 0x11, 0x5d, 0xfc, 0x9a, 0x6d, 0x18,
+  0xca, 0x07, 0xf0, 0x04, 0xad, 0x9e, 0x08, 0x84, 0x11, 0xd8, 0x8e, 0xc1,
+  0x90, 0xb1, 0x80, 0x0f, 0x86, 0x96, 0x58, 0x21, 0x60, 0x0e, 0xee, 0x88,
+  0xe6, 0x41, 0x1d, 0x3a, 0x7b, 0x91, 0xb9, 0x9f, 0xb5, 0x16, 0x23, 0xf2,
+  0x8a, 0x37, 0xa4, 0x68, 0x1b, 0xb1, 0xa6, 0x28, 0x4b, 0x4e, 0x60, 0x2c,
+  0x89, 0x66, 0x53, 0x4c, 0x54, 0x0e, 0x1f, 0xdf, 0x99, 0x69, 0x86, 0x65,
+  0xb9, 0xb4, 0x2a, 0xca, 0x51, 0x4a, 0x28, 0x00, 0x4f, 0x6a, 0x51, 0x06,
+  0xf7, 0x47, 0xca, 0x74, 0x9e, 0xaf, 0xd4, 0xb6, 0x20, 0x24, 0xdd, 0xf4,
+  0x4d, 0x10, 0x07, 0x10, 0x2d, 0x52, 0x8c, 0x0c, 0xf5, 0x00, 0x02, 0x7c,
+  0x76, 0x89, 0x04, 0xee, 0x2d, 0x10, 0x58, 0x90, 0x51, 0x52, 0xe4, 0xb1,
+  0x11, 0xac, 0x16, 0x8d, 0x52, 0x84, 0xf1, 0x00, 0x00, 0x39, 0x0d, 0xe9,
+  0x6d, 0x10, 0xe0, 0x21, 0x1a, 0x94, 0xd5, 0xce, 0x8b, 0x61, 0x81, 0x30,
+  0x88, 0x68, 0x51, 0x19, 0x04, 0x02, 0x85, 0xa3, 0x2e, 0x0c, 0x11, 0xae,
+  0x2f, 0x80, 0x2c, 0x83, 0x1a, 0x2d, 0x95, 0xa9, 0x52, 0x38, 0x00, 0x74,
+  0x97, 0xdf, 0xfd, 0xfb, 0xa4, 0xf7, 0x46, 0xea, 0x71, 0x78, 0xb7, 0xd4,
+  0xba, 0x13, 0x51, 0x6d, 0x1b, 0xbc, 0x55, 0xeb, 0xff, 0x42, 0x3a, 0x29,
+  0xdb, 0xdb, 0xa0, 0x28, 0x30, 0xf8, 0x25, 0x66, 0x5f, 0xc0, 0x47, 0xdb,
+  0xf7, 0x22, 0x29, 0xf3, 0x76, 0x79, 0xba, 0x42, 0xd3, 0xd4, 0x5f, 0xd6,
+  0x67, 0xf0, 0xaf, 0x9e, 0x9e, 0xf9, 0x99, 0xf0, 0xf8, 0x28, 0xc8, 0x00,
+  0xf6, 0x07, 0xd2, 0x7e, 0x6b, 0xad, 0x73, 0x03, 0xea, 0x95, 0xb8, 0x29,
+  0xf9, 0x34, 0x91, 0xcf, 0xb7, 0xe5, 0xe9, 0x7c, 0x5a, 0x2f, 0x0b, 0xb7,
+  0xc7, 0xd9, 0x4a, 0xbb, 0x79, 0x51, 0xdb, 0x0e, 0x67, 0x95, 0x7a, 0x46,
+  0x7d, 0x4b, 0x98, 0x1a, 0xf3, 0xd9, 0x38, 0x1b, 0xb4, 0xf5, 0x58, 0xfb,
+  0x0c, 0x07, 0x06, 0xfb, 0x8e, 0x9d, 0xa0, 0x86, 0xb8, 0xd7, 0x9f, 0xb3,
+  0x9a, 0x87, 0x6e, 0xfd, 0x4f, 0x52, 0xe1, 0xac, 0xb6, 0x9a, 0x28, 0x1f,
+  0xdd, 0xa8, 0x83, 0x51, 0x87, 0xed, 0x12, 0xf0, 0x3d, 0x86, 0x4a, 0x6b,
+  0x8c, 0x71, 0x35, 0xdd, 0x7e, 0xe3, 0xbf, 0xc1, 0x94, 0x16, 0xa2, 0xe0,
+  0x7f, 0x37, 0xb2, 0xb3, 0x60, 0xb4, 0xcd, 0x03, 0xe4, 0xa4, 0x27, 0xa0,
+  0x14, 0x5a, 0x77, 0x32, 0x11, 0x17, 0x33, 0x2d, 0x60, 0xae, 0x8e, 0x0e,
+  0x46, 0x1c, 0xf9, 0xa6, 0x85, 0x60, 0x72, 0xfd, 0xac, 0x10, 0x4b, 0xae,
+  0xd6, 0x03, 0x46, 0x9b, 0xb3, 0xb7, 0xef, 0xba, 0x65, 0xfd, 0xda, 0xee,
+  0x19, 0x03, 0x57, 0x59, 0x2e, 0xc1, 0x6c, 0xae, 0x0e, 0x39, 0x81, 0x1c,
+  0xc4, 0x85, 0x82, 0x77, 0xbc, 0x84, 0x68, 0x98, 0xda, 0xb6, 0xb3, 0xeb,
+  0x2a, 0x40, 0xe3, 0xb3, 0xc8, 0xdc, 0x0c, 0xc0, 0x2c, 0x28, 0x3e, 0x3b,
+  0x7f, 0xa7, 0xdc, 0x7f, 0xf7, 0xec, 0xd9, 0x69, 0xab, 0xb2, 0x62, 0x8e,
+  0xc8, 0x01, 0xc8, 0x80, 0x62, 0x16, 0x19, 0x0c, 0x46, 0x02, 0x13, 0x99,
+  0x70, 0x20, 0x17, 0xec, 0xd0, 0xd0, 0x1c, 0x60, 0xb6, 0x52, 0xa7, 0x40,
+  0x00, 0x13, 0xde, 0xab, 0x7f, 0x99, 0x85, 0x40, 0x6a, 0xb5, 0x41, 0x23,
+  0xb6, 0x09, 0xf7, 0x97, 0x99, 0x04, 0xb3, 0x99, 0x72, 0xba, 0x85, 0xa0,
+  0xa9, 0x99, 0x82, 0x05, 0x92, 0x84, 0x09, 0x4a, 0x2a, 0xb1, 0xaf, 0xcd,
+  0xbd, 0xf7, 0x66, 0x9c, 0x26, 0xe3, 0xf3, 0x07, 0x6f, 0x3f, 0x2f, 0xe3,
+  0xfc, 0xfe, 0x39, 0xf1, 0xc3, 0xaf, 0x67, 0x92, 0xf9, 0xf0, 0xd7, 0x3c,
+  0x8c, 0x8e, 0x2d, 0x6d, 0x53, 0x56, 0x74, 0x03, 0xb3, 0xcd, 0x65, 0xe5,
+  0x6b, 0x8a, 0x4e, 0x9e, 0x8e, 0x78, 0xc0, 0x24, 0xec, 0x9a, 0xa6, 0x01,
+  0x75, 0x41, 0x9a, 0x3b, 0x3e, 0x3c, 0x24, 0xd1, 0x69, 0x1e, 0xcc, 0xcc,
+  0x2f, 0x94, 0x25, 0xc1, 0x6f, 0x95, 0x9b, 0x6c, 0x33, 0x00, 0x4a, 0xc0,
+  0xcb, 0x2f, 0x8a, 0x3e, 0x58, 0x09, 0x15, 0x79, 0x40, 0x1c, 0x21, 0x1a,
+  0x94, 0xcd, 0x9e, 0x9e, 0xc3, 0x41, 0x12, 0x04, 0xe6, 0x48, 0xd3, 0x2c,
+  0x53, 0x63, 0x8b, 0xe2, 0xf4, 0x96, 0x5a, 0x00, 0x58, 0x5f, 0x78, 0xac,
+  0x07, 0x8a, 0xf6, 0xb3, 0xab, 0x0c, 0xf0, 0x1e, 0xf6, 0xbc, 0xaf, 0xeb,
+  0x5c, 0xbd, 0x65, 0xf0, 0xb6, 0x7b, 0xca, 0xbe, 0x8e, 0xbb, 0x13, 0x7d,
+  0xaf, 0x0e, 0xcf, 0x32, 0xaf, 0xe6, 0xf2, 0x0c, 0xe9, 0x33, 0xb0, 0x76,
+  0x08, 0x5a, 0xff, 0x97, 0x66, 0xde, 0xc9, 0x45, 0xc6, 0xf7, 0xac, 0x87,
+  0x91, 0xdf, 0xff, 0x77, 0x9c, 0x7e, 0x93, 0xae, 0xe4, 0xe4, 0xb9, 0x05,
+  0x57, 0x7b, 0xf3, 0xb3, 0x5a, 0x21, 0xef, 0x4d, 0xb1, 0x14, 0x97, 0x1b,
+  0x99, 0x35, 0x9d, 0xb5, 0xa6, 0x6c, 0xe1, 0x6d, 0x19, 0x55, 0x0a, 0x43,
+  0x0c, 0x8d, 0x20, 0x4b, 0xd7, 0x2c, 0x64, 0x02, 0x54, 0x77, 0x4b, 0x6f,
+  0x55, 0x51, 0x77, 0xc0, 0xfe, 0xbd, 0xde, 0xfd, 0x2a, 0xf6, 0xce, 0x03,
+  0x78, 0x1d, 0x74, 0x54, 0xce, 0x1a, 0x79, 0x77, 0xa0, 0xa6, 0x71, 0x5d,
+  0xd1, 0xe2, 0xa9, 0x7d, 0x31, 0x48, 0x00, 0x25, 0x22, 0x50, 0x46, 0x63,
+  0x4d, 0x2d, 0x59, 0xce, 0x70, 0xa5, 0xd4, 0xb1, 0x83, 0x76, 0x74, 0x16,
+  0x29, 0x5f, 0x70, 0x2f, 0xe7, 0xdb, 0xba, 0xe6, 0xc3, 0xe1, 0x46, 0xc0,
+  0xb9, 0xda, 0x3f, 0x7d, 0x8b, 0xf4, 0x67, 0x8b, 0xd6, 0xf3, 0x62, 0x8f,
+  0x13, 0xe7, 0xf2, 0x01, 0xf2, 0x9f, 0xc7, 0x94, 0x41, 0x46, 0x77, 0xcb,
+  0xb5, 0x63, 0xf3, 0x87, 0xe1, 0xfd, 0x72, 0x5b, 0x75, 0x42, 0x5a, 0x94,
+  0x85, 0x01, 0xb8, 0x86, 0x08, 0x10, 0x10, 0x8d, 0x41, 0xbe, 0xaa, 0x6d,
+  0x4b, 0x70, 0x5b, 0x5a, 0xb5, 0xdc, 0x06, 0x98, 0x18, 0x1a, 0x49, 0xbf,
+  0xeb, 0xa6, 0x8c, 0xb6, 0x6b, 0xf0, 0x57, 0x2c, 0x2f, 0xeb, 0xbb, 0x2d,
+  0x51, 0x41, 0x65, 0x4d, 0x6e, 0x6a, 0x4b, 0xe3, 0xc2, 0x8c, 0xb4, 0x81,
+  0x5c, 0x02, 0x45, 0x37, 0xe9, 0xfe, 0x4e, 0x85, 0xb1, 0x80, 0x20, 0x5c,
+  0x00, 0x88, 0x22, 0xa2, 0x49, 0x50, 0x02, 0x82, 0xc2, 0xe6, 0x1a, 0x47,
+  0x7d, 0x22, 0x58, 0x5a, 0x1e, 0x5b, 0xa1, 0x59, 0x27, 0x9e, 0xf0, 0x04,
+  0x46, 0x88, 0x05, 0xfa, 0x67, 0x98, 0x15, 0x43, 0x51, 0x1f, 0x58, 0x56,
+  0x67, 0xcb, 0xf8, 0xf8, 0x40, 0x07, 0x7d, 0xca, 0x56, 0x39, 0x83, 0x07,
+  0x21, 0x1a, 0x94, 0xad, 0xc6, 0x89, 0x07, 0x47, 0x00, 0x16, 0x1b, 0xa4,
+  0xe9, 0xad, 0x4c, 0xea, 0x49, 0x60, 0xa4, 0x05, 0xb2, 0x77, 0x12, 0x47,
+  0xec, 0xba, 0x40, 0xcb, 0xf3, 0x72, 0x6d, 0x3d, 0x6c, 0x9d, 0x6d, 0x2d,
+  0xb6, 0x4c, 0x57, 0xfb, 0xe7, 0x89, 0xb7, 0x4a, 0xf8, 0x3e, 0x50, 0x60,
+  0x71, 0x66, 0xcb, 0xf4, 0x42, 0x31, 0xd0, 0x31, 0x17, 0xec, 0x8d, 0x92,
+  0x29, 0x58, 0xae, 0x7c, 0x90, 0xbc, 0xeb, 0x3f, 0xe9, 0xfd, 0x5b, 0x84,
+  0xc0, 0x28, 0x71, 0x70, 0xa7, 0xab, 0xbe, 0xd9, 0xd6, 0xfd, 0x63, 0xe0,
+  0xb4, 0xc6, 0x5c, 0xd5, 0x58, 0x96, 0x2f, 0xc5, 0x17, 0xf9, 0x8e, 0x16,
+  0x32, 0xbf, 0xd0, 0xbd, 0x8f, 0x95, 0x53, 0x72, 0xa5, 0xef, 0xfa, 0x8d,
+  0x5a, 0x33, 0xa1, 0xed, 0x3a, 0x76, 0x79, 0xbd, 0x0d, 0x7e, 0x55, 0x18,
+  0x73, 0x3b, 0x2a, 0xec, 0x60, 0x85, 0x12, 0x37, 0xe6, 0x0c, 0x79, 0x6f,
+  0x26, 0xcc, 0x2d, 0xc6, 0xa0, 0x32, 0x0a, 0x4f, 0x76, 0x38, 0xb4, 0xdf,
+  0x61, 0x6f, 0xa5, 0x11, 0x31, 0xd4, 0x45, 0xc7, 0x81, 0x82, 0xdb, 0x40,
+  0x84, 0xdf, 0x40, 0x86, 0xdf, 0x00, 0x13, 0x28, 0x80, 0xa6, 0xf9, 0x06,
+  0x2c, 0x48, 0x22, 0xd8, 0x88, 0x09, 0x68, 0x24, 0xee, 0xc8, 0x58, 0x64,
+  0xb4, 0x95, 0x5f, 0xc9, 0x02, 0xc7, 0x3c, 0x1c, 0x76, 0x3c, 0xaa, 0x0a,
+  0x65, 0x75, 0x2b, 0xca, 0x08, 0x4f, 0x1b, 0xd2, 0xcf, 0xea, 0xcc, 0x0a,
+  0x5e, 0x6b, 0x3f, 0x51, 0x5f, 0xef, 0x37, 0xcd, 0x22, 0xe4, 0x20, 0xea,
+  0xaf, 0xcd, 0x1c, 0x81, 0xbb, 0x50, 0x9c, 0xb7, 0x9b, 0x62, 0x90, 0x8d,
+  0x60, 0x58, 0x05, 0x86, 0x61, 0x9a, 0x1b, 0x30, 0x56, 0xa6, 0x4e, 0xd0,
+  0x10, 0x3f, 0x6e, 0x0a, 0x69, 0x72, 0xb3, 0x85, 0xec, 0x2d, 0x35, 0x99,
+  0x31, 0xff, 0x25, 0x88, 0xb6, 0x38, 0x45, 0x55, 0x58, 0xd5, 0x45, 0x6e,
+  0x71, 0x00, 0xa0, 0xb5, 0x9e, 0x4a, 0x7e, 0xa3, 0xbb, 0xbc, 0xa5, 0x9d,
+  0x90, 0x03, 0x72, 0x80, 0x50, 0xa2, 0x74, 0x08, 0x08, 0x46, 0x01, 0x52,
+  0xa8, 0x85, 0xbd, 0x9c, 0x5a, 0xe0, 0x00, 0x22, 0x9e, 0xb1, 0xcc, 0xbc,
+  0x57, 0xd3, 0x59, 0x63, 0xc7, 0xbc, 0x63, 0x4c, 0xe6, 0x5a, 0x73, 0x3d,
+  0xd6, 0x20, 0x49, 0xf5, 0x4b, 0x04, 0x70, 0xb0, 0xa8, 0x63, 0x46, 0xb4,
+  0xc8, 0x10, 0x92, 0x21, 0x38, 0x18, 0xd5, 0xce, 0x3f, 0x37, 0xbd, 0xc5,
+  0x09, 0x02, 0x00, 0x29, 0x04, 0x96, 0xe0, 0x38, 0x89, 0x6f, 0xff, 0x7c,
+  0xb3, 0x4b, 0xf2, 0x0a, 0xf5, 0x37, 0x73, 0x07, 0xfa, 0x4c, 0xcc, 0x37,
+  0x91, 0x66, 0x0b, 0x5d, 0xb1, 0x55, 0xb3, 0xa5, 0x6d, 0xe7, 0xce, 0x84,
+  0x6d, 0x8c, 0xc4, 0xf1, 0xac, 0x64, 0x72, 0x85, 0x31, 0xe8, 0xbc, 0x7e,
+  0x90, 0xbb, 0x04, 0x67, 0xa2, 0x0b, 0xbc, 0x74, 0xa2, 0x00, 0xfb, 0x79,
+  0x3f, 0x5e, 0xbd, 0xb9, 0x3e, 0xe2, 0x9b, 0xee, 0x8e, 0xe6, 0xd2, 0x9c,
+  0x88, 0xae, 0xbf, 0x50, 0xa5, 0xb9, 0xfa, 0xf9, 0x69, 0xe9, 0xb0, 0x38,
+  0x21, 0x1a, 0x94, 0xd5, 0x9e, 0xa6, 0xc3, 0x44, 0x09, 0x55, 0x22, 0xa5,
+  0xb5, 0x59, 0x79, 0xc9, 0x35, 0xa6, 0xb8, 0x94, 0x9a, 0xb9, 0x2a, 0xaf,
+  0x08, 0x51, 0xac, 0x9d, 0x42, 0x90, 0x0a, 0x05, 0x53, 0xc3, 0xae, 0x6e,
+  0xbd, 0x97, 0x7a, 0xe1, 0xfb, 0x98, 0x7f, 0x0f, 0x24, 0xc6, 0x18, 0x95,
+  0x27, 0xa5, 0x93, 0xd7, 0xfb, 0x16, 0xce, 0xd7, 0x7b, 0x7e, 0xab, 0x69,
+  0x19, 0x5b, 0xed, 0x5e, 0xc1, 0x6e, 0xbd, 0x5c, 0xbc, 0xdb, 0x98, 0x56,
+  0x29, 0xdf, 0xfb, 0xa7, 0xb2, 0x78, 0x34, 0xdb, 0xe5, 0x86, 0x17, 0x05,
+  0xeb, 0xe8, 0xf2, 0xe9, 0xdc, 0x85, 0x50, 0x1a, 0xed, 0x1a, 0xb9, 0x16,
+  0xa2, 0x76, 0x4f, 0x51, 0xf6, 0xbd, 0x8d, 0x5e, 0x10, 0x1f, 0xdb, 0xd5,
+  0xd5, 0xc7, 0xb2, 0xb2, 0x5e, 0x2e, 0x16, 0x05, 0x05, 0x54, 0x88, 0x5a,
+  0xac, 0x34, 0x5d, 0x08, 0x62, 0x07, 0x6b, 0xda, 0xd0, 0xe0, 0x3a, 0x05,
+  0x56, 0xa7, 0xf9, 0xbe, 0xb7, 0x52, 0xe3, 0x99, 0x64, 0xad, 0x0f, 0x95,
+  0xc5, 0xf5, 0x56, 0x5a, 0xa7, 0x42, 0xc8, 0xde, 0x32, 0x53, 0x6c, 0x26,
+  0x9f, 0x9e, 0x5c, 0x26, 0x09, 0x68, 0x06, 0x87, 0x9a, 0x50, 0x82, 0x2a,
+  0xa5, 0x92, 0x28, 0x0b, 0x85, 0x16, 0xe7, 0x4d, 0x72, 0x1c, 0xf7, 0x50,
+  0x87, 0x2e, 0x65, 0x45, 0xd3, 0xe4, 0xd9, 0xa9, 0x83, 0xcd, 0x0b, 0xcd,
+  0x74, 0x06, 0x02, 0x55, 0x5d, 0x73, 0xd0, 0xb6, 0x92, 0xe6, 0xb3, 0x1a,
+  0xaf, 0x0d, 0x99, 0xe5, 0xdc, 0x57, 0xa7, 0xec, 0xe4, 0x06, 0xcb, 0xd9,
+  0x74, 0xca, 0x7a, 0xee, 0x80, 0x0c, 0x1a, 0xec, 0x88, 0xfc, 0x7b, 0x3d,
+  0xe6, 0x06, 0xe2, 0x5c, 0x50, 0xca, 0xa4, 0xcb, 0x11, 0x6e, 0x3e, 0x28,
+  0x61, 0xb4, 0xe1, 0x92, 0xe4, 0xee, 0x9b, 0x88, 0x01, 0x68, 0x3f, 0x2b,
+  0x45, 0x40, 0x3d, 0x1a, 0xa1, 0x6b, 0x80, 0x96, 0xa3, 0xb2, 0x00, 0x6a,
+  0x21, 0x23, 0x10, 0x52, 0x02, 0x11, 0xab, 0x2e, 0x6f, 0x4c, 0xb1, 0x41,
+  0xe6, 0xd2, 0x43, 0xcc, 0xa0, 0x58, 0xd6, 0x58, 0x91, 0x17, 0x24, 0x00,
+  0x3a, 0x05, 0x53, 0xc3, 0xb3, 0x6e, 0x07, 0x7d, 0xf1, 0x9a, 0xd6, 0x30,
+  0xe3, 0xbc, 0x5a, 0xd8, 0x78, 0x9a, 0x83, 0x1c, 0xf9, 0x3b, 0x0e, 0xcb,
+  0xd8, 0xa0, 0x44, 0x52, 0x27, 0x03, 0x54, 0xbd, 0x57, 0x37, 0x42, 0xf5,
+  0xfa, 0xf5, 0xca, 0x40, 0x7e, 0x1c, 0xf8, 0x0a, 0x7d, 0xcf, 0x89, 0xcb,
+  0xb6, 0xf9, 0x9e, 0xae, 0xbb, 0x70, 0xa7, 0x8f, 0x74, 0xbd, 0x71, 0x85,
+  0x93, 0x5b, 0x83, 0x25, 0x6b, 0x4a, 0x3b, 0xb2, 0x3a, 0x9a, 0x10, 0xb2,
+  0x3a, 0xb4, 0x38, 0x21, 0x09, 0x80, 0xf9, 0xce, 0x61, 0x74, 0xcb, 0x76,
+  0x0a, 0x41, 0x49, 0xa3, 0xbb, 0x35, 0xff, 0x8e, 0xe9, 0xfb, 0xeb, 0x81,
+  0x97, 0x1a, 0x87, 0x4f, 0xa9, 0xd3, 0x07, 0x4f, 0x76, 0x1f, 0x47, 0x4f,
+  0x74, 0x88, 0x22, 0xd5, 0x01, 0x94, 0x00, 0x05, 0x7f, 0x88, 0x38, 0x21,
+  0x1a, 0x94, 0xc5, 0xce, 0x8c, 0xc3, 0x24, 0x89, 0x40, 0x1a, 0xca, 0x14,
+  0x13, 0xa0, 0xbb, 0x97, 0xaa, 0xa0, 0xb8, 0xa3, 0x59, 0x62, 0x92, 0x1c,
+  0x73, 0xc7, 0x28, 0x11, 0x2c, 0xa6, 0x78, 0xb7, 0xc5, 0x4d, 0xbe, 0xbe,
+  0xd1, 0xd8, 0xbe, 0x25, 0x83, 0x98, 0xf7, 0x25, 0xe9, 0x82, 0x67, 0x1c,
+  0x98, 0x0b, 0xb0, 0x9b, 0xb7, 0x2b, 0x82, 0x34, 0x8b, 0xe7, 0x0a, 0xab,
+  0x86, 0x6d, 0xd8, 0x7d, 0x3d, 0xff, 0x69, 0xe6, 0xf5, 0xf0, 0x0d, 0x25,
+  0x65, 0xb4, 0xe2, 0x36, 0xd6, 0xa3, 0xb0, 0x61, 0xd2, 0x37, 0x30, 0x52,
+  0x8e, 0x16, 0xbe, 0xfb, 0x6c, 0xec, 0x7e, 0x4a, 0xca, 0x59, 0xcc, 0xce,
+  0x22, 0xf9, 0x8d, 0xee, 0x1b, 0x48, 0x3e, 0x2f, 0xba, 0x96, 0x2f, 0x0c,
+  0x58, 0xab, 0x2a, 0x35, 0xda, 0x7c, 0x2b, 0x14, 0xcc, 0xd9, 0x2b, 0x7d,
+  0x11, 0x6e, 0xcd, 0x73, 0x85, 0xe5, 0xef, 0x75, 0xa8, 0x61, 0x8b, 0x9d,
+  0x62, 0x12, 0xab, 0x12, 0xbb, 0xf9, 0xd7, 0xd4, 0xd1, 0xd6, 0x2b, 0xf8,
+  0xab, 0xab, 0x26, 0x3d, 0xb2, 0xa5, 0xb5, 0x42, 0x0a, 0x54, 0xa6, 0x6a,
+  0x3e, 0x32, 0x06, 0x87, 0x4a, 0x8e, 0xe7, 0xa5, 0x06, 0x77, 0x51, 0x1c,
+  0x62, 0x55, 0x71, 0xa0, 0xd9, 0xd4, 0x5d, 0x6a, 0xa1, 0x29, 0x52, 0x77,
+  0xdb, 0x86, 0x7c, 0x69, 0x64, 0x31, 0xcf, 0x4b, 0x14, 0x66, 0x36, 0x2b,
+  0x59, 0x76, 0x61, 0x28, 0x40, 0x03, 0xce, 0xc0, 0x8e, 0x8c, 0x72, 0xa3,
+  0x38, 0x13, 0x06, 0x10, 0xa2, 0x08, 0x79, 0x87, 0x39, 0xf0, 0xf5, 0x58,
+  0x79, 0x0d, 0x78, 0xfd, 0xca, 0x66, 0xd3, 0x2b, 0x5c, 0xe4, 0x17, 0x1f,
+  0xba, 0x7b, 0xf8, 0x9c, 0x1f, 0x21, 0x12, 0x37, 0xf1, 0xbf, 0x96, 0x4d,
+  0x72, 0xd7, 0xf1, 0x1d, 0xca, 0xcd, 0x10, 0x4c, 0xd2, 0x50, 0xc0, 0x34,
+  0x10, 0x44, 0x4a, 0xba, 0x66, 0xe4, 0xb0, 0x0f, 0xf1, 0x34, 0x8d, 0x65,
+  0x8a, 0x48, 0x71, 0xcf, 0x1c, 0xa0, 0x44, 0xb2, 0x97, 0xd6, 0x38, 0xf6,
+  0xb3, 0x8c, 0xf2, 0x5e, 0xa6, 0xdb, 0x7e, 0xbd, 0xbc, 0x33, 0x3c, 0xb2,
+  0x47, 0x1e, 0xf6, 0x3c, 0x40, 0x0c, 0x3c, 0x02, 0xd4, 0xdf, 0x3f, 0xfe,
+  0xfb, 0xb8, 0xff, 0xa7, 0x87, 0xad, 0xe0, 0x00, 0x36, 0x80, 0x96, 0x80,
+  0x00, 0x69, 0x0e, 0x21, 0x2a, 0x94, 0xb5, 0xa2, 0x8f, 0x64, 0x81, 0xb1,
+  0x88, 0x88, 0x22, 0x40, 0x0b, 0x65, 0xef, 0x52, 0x85, 0xcd, 0x38, 0x67,
+  0x13, 0x40, 0x00, 0x0d, 0x27, 0xea, 0x1d, 0x57, 0xc9, 0x04, 0x50, 0x7e,
+  0xeb, 0xa7, 0x49, 0x09, 0x13, 0xf1, 0x9c, 0x9c, 0x51, 0xf6, 0x6f, 0x58,
+  0xe6, 0x6f, 0x74, 0xe2, 0xaa, 0xf4, 0x1f, 0x5b, 0x91, 0xdb, 0x2a, 0x21,
+  0x58, 0xd9, 0xeb, 0x56, 0xdc, 0xde, 0x48, 0x3a, 0x07, 0x51, 0xda, 0x1e,
+  0xfb, 0x58, 0xbe, 0xd2, 0x24, 0x54, 0xec, 0xad, 0x9b, 0xc8, 0x2c, 0x2a,
+  0x33, 0x43, 0xfa, 0xab, 0x87, 0x0a, 0xaa, 0xa2, 0x56, 0x1b, 0x82, 0xfa,
+  0x31, 0xf1, 0x84, 0xee, 0x3c, 0xd4, 0x97, 0xce, 0x66, 0xdb, 0xde, 0x2d,
+  0x9b, 0x4d, 0x9f, 0x6d, 0x78, 0x58, 0x4f, 0xf3, 0x23, 0x48, 0xd0, 0x00,
+  0x96, 0xae, 0xe5, 0xc0, 0xbf, 0x9f, 0xb0, 0xde, 0x7c, 0x57, 0x7f, 0x75,
+  0x5a, 0xa5, 0x91, 0xd2, 0xf3, 0x52, 0xac, 0xd0, 0xe9, 0xc7, 0x17, 0x7b,
+  0x26, 0x07, 0x12, 0xae, 0xb9, 0x01, 0x00, 0x88, 0x8d, 0x8d, 0x98, 0xc2,
+  0x0b, 0x07, 0x62, 0x78, 0x18, 0x43, 0x9e, 0xdd, 0xcf, 0xcd, 0xe0, 0x41,
+  0xcf, 0x19, 0x42, 0x48, 0x34, 0xea, 0xa9, 0xff, 0x19, 0x59, 0xf7, 0x87,
+  0xd2, 0x11, 0x78, 0x47, 0xba, 0x4d, 0xed, 0x92, 0xa5, 0x96, 0xce, 0xfd,
+  0x30, 0x8a, 0xf6, 0x04, 0xae, 0x6f, 0x86, 0x45, 0xe4, 0xb2, 0xe7, 0xfc,
+  0x7b, 0xc3, 0x61, 0x01, 0x66, 0xb0, 0xed, 0xdf, 0x2e, 0x0e, 0xfc, 0x00,
+  0xa4, 0x63, 0x5c, 0x2b, 0xc7, 0x61, 0x30, 0x02, 0xf5, 0x68, 0x73, 0x7a,
+  0x1b, 0x6b, 0x6d, 0x74, 0xf7, 0xfd, 0xb9, 0x75, 0x97, 0xc6, 0x6f, 0xc3,
+  0xa0, 0x00, 0x25, 0x2c, 0xd0, 0x64, 0x18, 0xec, 0x00, 0x32, 0x02, 0xde,
+  0xd0, 0x74, 0x58, 0x08, 0xa0, 0x61, 0xfd, 0xc4, 0x82, 0xf5, 0xda, 0xbd,
+  0x05, 0x05, 0xf8, 0x67, 0xf5, 0xb3, 0xf4, 0xb9, 0x35, 0x1e, 0xdf, 0xc5,
+  0xc5, 0x67, 0xbd, 0x41, 0x27, 0x49, 0x6c, 0x43, 0xad, 0x7a, 0xdc, 0xfe,
+  0xa1, 0x9a, 0xaa, 0xbf, 0x9a, 0x54, 0xf2, 0x7e, 0x31, 0xd9, 0xae, 0xf6,
+  0xe3, 0x08, 0xb0, 0x1e, 0x4f, 0x16, 0xdf, 0xbd, 0xde, 0xe8, 0x01, 0x93,
+  0x00, 0x05, 0x46, 0xee, 0x21, 0x28, 0x00, 0x4a, 0x9d, 0x0c, 0x08, 0x40,
+  0x11, 0x5c, 0x4a, 0x55, 0xdb, 0x6b, 0x78, 0xb2, 0x11, 0x22, 0x7f, 0xd0,
+  0x0c, 0x19, 0x13, 0xd1, 0xa9, 0x73, 0x8c, 0x30, 0xd2, 0xb5, 0x9f, 0x08,
+  0x94, 0xfb, 0xed, 0x86, 0xd8, 0x15, 0x29, 0x13, 0xc9, 0x75, 0x42, 0xc3,
+  0x2c, 0x0a, 0x7a, 0xf0, 0x07, 0x21, 0x4c, 0xcd, 0x46, 0xdd, 0x62, 0x3a,
+  0xea, 0x31, 0x96, 0xaa, 0x23, 0x17, 0x78, 0x71, 0x6e, 0xb8, 0x25, 0x1f,
+  0xc2, 0xdd, 0x3a, 0x21, 0xfd, 0x27, 0xb5, 0x79, 0xd4, 0x41, 0xfc, 0x5d,
+  0x9e, 0x69, 0x7a, 0xb0, 0xa2, 0x43, 0xc8, 0x6b, 0x77, 0xd8, 0xe6, 0x24,
+  0x29, 0x56, 0x91, 0x91, 0x61, 0xea, 0x38, 0x4d, 0x5f, 0x9f, 0x69, 0xf5,
+  0xa5, 0x9b, 0x86, 0x98, 0xa5, 0x56, 0x8f, 0xf3, 0x0b, 0xea, 0x2f, 0xf2,
+  0xec, 0x2b, 0x1c, 0x46, 0x3d, 0xf5, 0xf8, 0x9a, 0xcb, 0x63, 0xcb, 0x7f,
+  0x09, 0x7e, 0x3d, 0x95, 0x02, 0x0c, 0xde, 0xeb, 0x94, 0x2e, 0x94, 0x68,
+  0xbd, 0x3a, 0xf5, 0x22, 0x09, 0x59, 0x40, 0x31, 0x0d, 0xa2, 0x03, 0x07,
+  0x0e, 0xc5, 0xbe, 0x3d, 0xb3, 0xcb, 0x32, 0xdc, 0x8a, 0xd5, 0x9a, 0xdc,
+  0x5f, 0x76, 0x78, 0x4a, 0x29, 0x4c, 0x96, 0x83, 0x82, 0xeb, 0x40, 0xe0,
+  0xb1, 0x69, 0xe4, 0x98, 0xdd, 0x3b, 0x12, 0x80, 0x8d, 0x69, 0x02, 0x79,
+  0xac, 0x48, 0x9d, 0x35, 0xff, 0x7e, 0xfe, 0xf7, 0xeb, 0xaf, 0xd2, 0x71,
+  0x3c, 0xae, 0x13, 0xa2, 0xa9, 0xca, 0xb6, 0xec, 0xfe, 0xbd, 0x02, 0xff,
+  0xb7, 0x2d, 0x7d, 0x40, 0xb0, 0x4c, 0x1a, 0x4c, 0xe2, 0xea, 0x65, 0x64,
+  0x3d, 0x2f, 0xde, 0xfb, 0xa3, 0xbc, 0x69, 0x56, 0xbb, 0xd4, 0x32, 0xbe,
+  0x7c, 0x7d, 0xb6, 0x39, 0x23, 0x17, 0xc9, 0xf2, 0x6b, 0xb4, 0xaa, 0xbc,
+  0x29, 0x36, 0x3a, 0x7a, 0x24, 0x58, 0x5d, 0x00, 0x10, 0x5c, 0x42, 0x68,
+  0x26, 0x8a, 0xb2, 0x3a, 0x52, 0x25, 0x91, 0x9c, 0x6b, 0x4f, 0x0f, 0x25,
+  0x2f, 0x2a, 0x5a, 0xc9, 0x4d, 0x18, 0xa3, 0x3b, 0x2c, 0x47, 0xda, 0x66,
+  0x38, 0x0d, 0xe1, 0xd6, 0xda, 0x0d, 0xb3, 0x50, 0x78, 0x45, 0xf1, 0xc5,
+  0xf0, 0x3f, 0xb2, 0x9f, 0x71, 0xa6, 0x9f, 0xd9, 0xc3, 0xad, 0x71, 0x4b,
+  0x3f, 0x61, 0xec, 0x79, 0x01, 0x15, 0xf2, 0xdd, 0xfb, 0xe9, 0x52, 0x70,
+  0x38, 0xcd, 0xfe, 0x3b, 0x01, 0xf6, 0xb0, 0xe3, 0x28, 0x8d, 0x28, 0x62,
+  0x08, 0x32, 0xde, 0x4a, 0xc8, 0x9c, 0x05, 0x33, 0x91, 0x5d, 0x24, 0x54,
+  0x46, 0x1e, 0x46, 0xe5, 0x6f, 0xef, 0xd0, 0xe2, 0x69, 0x9d, 0xa7, 0x22,
+  0x6a, 0xa1, 0xbe, 0xcb, 0xe7, 0xcc, 0x3f, 0xea, 0xfc, 0x97, 0x08, 0x7e,
+  0x27, 0xd8, 0x8a, 0xa7, 0x4f, 0x1d, 0x2e, 0x92, 0x46, 0xd3, 0x90, 0xca,
+  0x90, 0x3d, 0xc7, 0x43, 0x90, 0x3c, 0x79, 0x1e, 0x5f, 0xa3, 0x6e, 0x8b,
+  0x12, 0xa2, 0x8c, 0xdb, 0x6a, 0x5c, 0xd3, 0x4c, 0xba, 0x0d, 0x58, 0x39,
+  0xc1, 0x82, 0x86, 0xd4, 0xde, 0xfd, 0xbd, 0x0c, 0xf8, 0xcc, 0x6d, 0x38,
+  0x85, 0x11, 0x59, 0x9c, 0xd2, 0x8d, 0x36, 0x25, 0xe5, 0x7d, 0xc9, 0x54,
+  0x37, 0x6b, 0x94, 0xb8, 0x5a, 0xce, 0x84, 0x6a, 0x5e, 0xb8, 0xe9, 0xa2,
+  0x33, 0x14, 0xda, 0x80, 0x44, 0xa4, 0x80, 0xba, 0x6b, 0xdd, 0x0d, 0xd7,
+  0x55, 0x8a, 0x31, 0x42, 0x0c, 0xfd, 0x0c, 0x04, 0x79, 0xcd, 0x5b, 0xa3,
+  0x48, 0x63, 0x64, 0x38, 0x21, 0x7a, 0x8c, 0x00, 0x7f, 0xff, 0xff, 0xff,
+  0x2d, 0x6d, 0xa4, 0xb0, 0xc8, 0x82, 0xd0, 0x82, 0xa3, 0x55, 0x92, 0xb7,
+  0x7a, 0x9c, 0x1a, 0xad, 0x00, 0x40, 0x50, 0x13, 0x12, 0x32, 0x1a, 0xb1,
+  0xfa, 0x48, 0x05, 0xdf, 0x5b, 0xfa, 0xf1, 0x21, 0x43, 0xf7, 0x5a, 0x89,
+  0x15, 0x10, 0xf7, 0xd4, 0xac, 0x0c, 0x37, 0xdc, 0x1f, 0x12, 0x56, 0xa6,
+  0x8c, 0xfb, 0xfd, 0xb7, 0x70, 0xb7, 0xdb, 0x39, 0x89, 0xd9, 0x98, 0x5f,
+  0xba, 0xc3, 0x94, 0xb9, 0x8f, 0x88, 0xc1, 0xf5, 0x6e, 0x47, 0x57, 0xae,
+  0xd7, 0xe7, 0x33, 0xbf, 0x17, 0xd7, 0x58, 0x7e, 0x8a, 0x47, 0xca, 0xed,
+  0x1d, 0xe7, 0x8d, 0x61, 0x39, 0xe9, 0x45, 0x18, 0x69, 0xef, 0x71, 0xb6,
+  0xf8, 0xb0, 0x19, 0x7f, 0x2c, 0xea, 0xb7, 0x87, 0xee, 0x03, 0x17, 0xe4,
+  0x49, 0xda, 0x37, 0x2a, 0xc3, 0xe5, 0x77, 0x07, 0x5d, 0x6e, 0xd1, 0xfc,
+  0x62, 0xea, 0x43, 0xd9, 0x0c, 0x00, 0x2a, 0xad, 0x49, 0x45, 0xeb, 0x91,
+  0xa6, 0x55, 0x21, 0x40, 0x90, 0x4b, 0x7a, 0x4a, 0x64, 0x7c, 0x92, 0x97,
+  0xc9, 0x94, 0xe0, 0xae, 0x78, 0x40, 0x5d, 0xf0, 0x9d, 0x45, 0x7e, 0x69,
+  0x40, 0x15, 0x64, 0x76, 0x5b, 0x7a, 0xb2, 0x49, 0x65, 0xae, 0x56, 0xc1,
+  0x11, 0x99, 0x66, 0xdd, 0xd1, 0x91, 0x38, 0x02, 0xf6, 0x15, 0x84, 0xe2,
+  0x46, 0x16, 0x8a, 0x80, 0xf5, 0x11, 0xcc, 0x4c, 0x56, 0xf0, 0xa2, 0x63,
+  0x8d, 0x41, 0x37, 0x6c, 0x82, 0x10, 0xc0, 0x28, 0x51, 0x8a, 0x30, 0x26,
+  0x91, 0x6e, 0xda, 0xae, 0xaf, 0xc8, 0x5d, 0x8b, 0x00, 0x09, 0xbe, 0x17,
+  0xef, 0x77, 0x44, 0xa5, 0x0c, 0x8c, 0x98, 0x84, 0x9f, 0x2c, 0x94, 0x68,
+  0x3c, 0x71, 0xdd, 0x4f, 0xfd, 0xa9, 0x50, 0x75, 0x31, 0x7d, 0x07, 0xd7,
+  0xb5, 0x8e, 0xfc, 0xe6, 0xaf, 0xa4, 0xec, 0xce, 0xe2, 0x9b, 0x77, 0xae,
+  0xb2, 0xe6, 0x2c, 0xf3, 0xad, 0x64, 0x8b, 0x56, 0x25, 0x60, 0x27, 0x26,
+  0xa5, 0xfb, 0x68, 0x66, 0xd6, 0xa9, 0xa1, 0x19, 0xa3, 0x51, 0x95, 0x95,
+  0xcf, 0xb2, 0x95, 0x6c, 0x81, 0x1a, 0x2d, 0x31, 0x4e, 0x2a, 0x6d, 0x40,
+  0xd0, 0xaf, 0x0b, 0xd8, 0x1a, 0x24, 0xb6, 0x97, 0x58, 0xb0, 0x3a, 0xc0,
+  0x10, 0xaa, 0x75, 0x22, 0x13, 0x88, 0x00, 0x0c, 0x48, 0xe5, 0x36, 0x81,
+  0x28, 0x61, 0x42, 0x01, 0xc1, 0x30, 0xaf, 0x72, 0xf6, 0xc9, 0xa6, 0x80,
+  0x82, 0xf6, 0xa2, 0x89, 0x4c, 0x96, 0xbb, 0x67, 0x40, 0x34, 0xad, 0x82,
+  0x01, 0x87, 0x24, 0x03, 0x07, 0x21, 0x1a, 0x94, 0xb5, 0xce, 0x8a, 0xc2,
+  0x23, 0x20, 0x48, 0x68, 0x32, 0x19, 0x85, 0xf4, 0x51, 0x0a, 0x45, 0xaf,
+  0x84, 0xb8, 0x40, 0x01, 0x83, 0x60, 0xdb, 0x81, 0xd0, 0xd3, 0x1c, 0xae,
+  0x22, 0x30, 0x51, 0x50, 0xc0, 0x99, 0x17, 0x26, 0x97, 0xe0, 0x25, 0x61,
+  0x7e, 0xf4, 0x98, 0x8b, 0x52, 0xa3, 0x92, 0xbe, 0x5a, 0x5b, 0x37, 0xda,
+  0xb3, 0x66, 0x68, 0xbc, 0xf3, 0x2d, 0x37, 0x7b, 0xff, 0xda, 0x7b, 0xe7,
+  0xeb, 0x26, 0x38, 0x7e, 0x69, 0x2e, 0x1f, 0xf8, 0x5d, 0x31, 0x5f, 0xf7,
+  0xe7, 0x49, 0x3a, 0x74, 0x5e, 0x9b, 0xc7, 0x52, 0x98, 0x2e, 0x1f, 0x18,
+  0xa1, 0x0f, 0x9c, 0x2c, 0x71, 0x7c, 0xd7, 0x75, 0xd9, 0x36, 0x98, 0xba,
+  0xd7, 0x14, 0xe6, 0xfa, 0x47, 0x1c, 0x66, 0xaf, 0x95, 0x90, 0xb6, 0x6f,
+  0xf4, 0xbd, 0x7d, 0x0f, 0xaa, 0xe8, 0x3a, 0xaf, 0x38, 0xda, 0xce, 0xe8,
+  0xc2, 0xb2, 0xf3, 0xda, 0x76, 0xa5, 0x43, 0xd3, 0x0a, 0x21, 0x88, 0x34,
+  0x44, 0x02, 0x6b, 0x90, 0x15, 0x29, 0x49, 0x76, 0xcc, 0xfa, 0x60, 0x68,
+  0x89, 0xfd, 0x7d, 0xe3, 0xad, 0xa0, 0xad, 0x85, 0xa2, 0x2b, 0xb2, 0x52,
+  0x34, 0x42, 0x78, 0xb9, 0x36, 0x4d, 0x02, 0x90, 0xce, 0xc3, 0x95, 0xbd,
+  0x79, 0x75, 0x9e, 0x1e, 0xdd, 0x94, 0x72, 0xd3, 0x61, 0xca, 0x81, 0xe4,
+  0xd9, 0x76, 0xd6, 0xd9, 0xd1, 0xe4, 0x68, 0xd1, 0xfa, 0x34, 0x49, 0x6b,
+  0xfd, 0xae, 0x5a, 0x94, 0xd6, 0x36, 0x94, 0xf4, 0x20, 0x06, 0x40, 0x3e,
+  0x6e, 0x75, 0x85, 0x8c, 0xad, 0xaa, 0xc4, 0x26, 0x33, 0xd5, 0x9b, 0x3f,
+  0x53, 0x02, 0xe9, 0xb2, 0xc2, 0xac, 0x05, 0xa5, 0x8c, 0x39, 0x4b, 0x8a,
+  0x93, 0xd2, 0xc2, 0xdf, 0x24, 0x92, 0x2c, 0x12, 0x5e, 0x35, 0x76, 0xfb,
+  0xa1, 0xe5, 0x6c, 0x2e, 0x96, 0xba, 0x0e, 0xbb, 0x1d, 0xde, 0x00, 0x13,
+  0x56, 0x88, 0x42, 0x18, 0x5e, 0x02, 0x11, 0xba, 0xa3, 0x38, 0x65, 0xca,
+  0xab, 0x60, 0xe1, 0x71, 0xd3, 0x84, 0x15, 0x2a, 0xae, 0x80, 0xc3, 0x8c,
+  0x82, 0x74, 0x87, 0xe4, 0xb2, 0x13, 0xe7, 0xe1, 0xeb, 0x7e, 0x92, 0xca,
+  0x7c, 0x06, 0x11, 0xe9, 0x95, 0x57, 0x54, 0xfc, 0xaf, 0x63, 0xbf, 0x13,
+  0xa1, 0x86, 0xee, 0x6e, 0x14, 0xe0, 0x8a, 0xb2, 0x0c, 0x9d, 0xd3, 0xed,
+  0x0c, 0xf8, 0x19, 0x6e, 0x31, 0x9f, 0x20, 0x02, 0x3d, 0xd0, 0xb7, 0x35,
+  0xfc, 0xf2, 0xef, 0x1c, 0xa8, 0x12, 0x69, 0x1a, 0x2f, 0xcf, 0x1f, 0xa8,
+  0xb8, 0x54, 0xb0, 0x69, 0x49, 0x31, 0x53, 0x8f, 0xc4, 0xe8, 0x01, 0xb1,
+  0x96, 0xd0, 0xd2, 0xc7, 0xd0, 0xda, 0xb1, 0x52, 0xb4, 0x00, 0x20, 0x36,
+  0xd5, 0x39, 0x45, 0x28, 0x88, 0xd6, 0xe0, 0x88, 0x0a, 0xfb, 0xa3, 0xa8,
+  0x25, 0x11, 0x64, 0x0a, 0x5c, 0x14, 0x70, 0x0e, 0x21, 0x1a, 0x94, 0xbd,
+  0xd6, 0x07, 0x41, 0x21, 0x8b, 0x83, 0x7b, 0xea, 0xef, 0x7a, 0x54, 0x65,
+  0x74, 0x27, 0x96, 0x97, 0x40, 0x00, 0x0c, 0xe3, 0x95, 0x89, 0xfa, 0x9f,
+  0xd6, 0xf5, 0xff, 0x77, 0x8e, 0xb5, 0x0e, 0x1d, 0x1e, 0xbd, 0xe4, 0x4a,
+  0x72, 0xf2, 0xde, 0x7d, 0x69, 0x1d, 0x71, 0x96, 0xa7, 0xa7, 0xa7, 0xbc,
+  0x45, 0xd9, 0xd6, 0x13, 0xc5, 0x53, 0x98, 0x92, 0x64, 0x98, 0xcf, 0x7f,
+  0xc6, 0xef, 0x1d, 0x11, 0x96, 0xa0, 0xbf, 0x0f, 0xa3, 0x5b, 0xd1, 0x1d,
+  0xa9, 0xa1, 0xf9, 0x5e, 0xda, 0xfb, 0x8f, 0x30, 0xb9, 0x73, 0x94, 0xdd,
+  0x9a, 0x31, 0x1d, 0x6d, 0x3a, 0x13, 0x30, 0x91, 0x5a, 0x7f, 0x9d, 0xf5,
+  0x64, 0x76, 0x24, 0x2a, 0x03, 0xb0, 0xb1, 0x6b, 0x25, 0x3c, 0x5f, 0x40,
+  0x98, 0x26, 0x87, 0x17, 0xb4, 0x31, 0xf8, 0x94, 0xfc, 0xc9, 0xca, 0x59,
+  0x33, 0x52, 0x61, 0x86, 0xe2, 0xa9, 0xb6, 0xd2, 0x14, 0x52, 0x97, 0xaa,
+  0x16, 0x4e, 0x2d, 0x5e, 0xf9, 0x5a, 0x83, 0x64, 0x01, 0xb0, 0x82, 0x43,
+  0x46, 0x82, 0x63, 0x78, 0xf6, 0xe7, 0x81, 0x0e, 0x4b, 0x31, 0xd6, 0x74,
+  0xe8, 0xf9, 0xf2, 0x6e, 0x69, 0x9f, 0x2a, 0xd8, 0x0a, 0x43, 0x34, 0x39,
+  0xc3, 0x4b, 0xba, 0x98, 0x48, 0x42, 0x49, 0x43, 0x3b, 0x98, 0x47, 0x6e,
+  0x91, 0x32, 0x92, 0x45, 0x24, 0xe4, 0xbd, 0xa6, 0xb9, 0x65, 0x57, 0x51,
+  0x3b, 0x2a, 0x4e, 0xc7, 0x0a, 0x79, 0x34, 0x15, 0xc7, 0xb1, 0xb7, 0x9b,
+  0x9a, 0x14, 0x47, 0x70, 0x4c, 0x5a, 0x18, 0xe6, 0x80, 0x18, 0xc0, 0x92,
+  0xa1, 0x45, 0x5e, 0xec, 0x87, 0x49, 0xf8, 0x16, 0x2d, 0xc8, 0x04, 0x62,
+  0xe6, 0x76, 0xd3, 0x5c, 0x36, 0x4d, 0x26, 0xe4, 0xa3, 0x6a, 0xde, 0x69,
+  0xfc, 0x97, 0xd4, 0x79, 0xe1, 0xca, 0xaa, 0xc3, 0xd6, 0xb3, 0x30, 0xce,
+  0xb8, 0xd5, 0x07, 0xbe, 0x82, 0x7a, 0x60, 0x20, 0x35, 0xc8, 0x6e, 0x1d,
+  0x8e, 0xd7, 0xdf, 0x5d, 0xb5, 0x12, 0x95, 0x70, 0x65, 0xe5, 0x29, 0x30,
+  0x87, 0xe2, 0xef, 0x50, 0x02, 0xeb, 0xc6, 0xf0, 0xde, 0x0b, 0x3f, 0xdc,
+  0x69, 0x08, 0x6e, 0xc0, 0x00, 0x84, 0xb2, 0x56, 0x75, 0xdf, 0xa6, 0xb5,
+  0x80, 0xf1, 0x3d, 0xdc, 0x7c, 0x79, 0x2b, 0x6a, 0x80, 0x07, 0xb8, 0x2a,
+  0x09, 0xcb, 0x63, 0x28, 0xda, 0x00, 0x14, 0xc2, 0x00, 0x38, 0x21, 0x1a,
+  0x94, 0xa5, 0xd2, 0x0a, 0x81, 0x18, 0x02, 0xaa, 0x26, 0x95, 0x88, 0x38,
+  0x5d, 0xcd, 0x00, 0x00, 0x07, 0xff, 0xc4, 0xcd, 0x3b, 0x27, 0x8e, 0xcd,
+  0x49, 0x30, 0x0f, 0x1e, 0x16, 0xd3, 0x6f, 0x12, 0xe1, 0xfe, 0x25, 0xb9,
+  0xbe, 0xe7, 0x40, 0x11, 0x2b, 0xed, 0xa5, 0xdb, 0x73, 0xd3, 0x99, 0xbe,
+  0x0d, 0xa3, 0x7d, 0x71, 0x4a, 0xd1, 0x13, 0x5e, 0x5c, 0xa5, 0x66, 0xfa,
+  0xf6, 0x96, 0x9e, 0xe0, 0x6f, 0x7d, 0xa5, 0x8e, 0xf9, 0x2f, 0xb5, 0x18,
+  0x12, 0x41, 0xa4, 0x3e, 0xea, 0xc5, 0xa5, 0xe1, 0x74, 0x7f, 0xd5, 0xfc,
+  0x07, 0xd0, 0x24, 0x57, 0x5c, 0x67, 0x57, 0xcd, 0x98, 0xb6, 0xc3, 0xd2,
+  0x67, 0x65, 0x40, 0x59, 0x5c, 0x19, 0x8a, 0x79, 0x77, 0x5c, 0xfb, 0x1e,
+  0x37, 0x37, 0xeb, 0x5f, 0xb2, 0x96, 0x34, 0x9f, 0x65, 0xff, 0xd0, 0xef,
+  0x8a, 0x21, 0x4a, 0x5c, 0x75, 0x49, 0x59, 0x76, 0xeb, 0x0d, 0x37, 0xe3,
+  0xdd, 0xef, 0x15, 0x6c, 0x80, 0xe8, 0xd3, 0x61, 0xc5, 0xae, 0x0f, 0xdf,
+  0xd0, 0x41, 0x8d, 0x39, 0xbe, 0x9c, 0x2d, 0x7d, 0x9b, 0x2f, 0x1d, 0x0a,
+  0xd3, 0xde, 0x9d, 0xb9, 0xcb, 0x7e, 0x99, 0x5e, 0x3c, 0xd1, 0x1b, 0x6d,
+  0x6a, 0x9c, 0xd6, 0x07, 0xe7, 0x63, 0x45, 0xf0, 0x54, 0x76, 0x2b, 0xbc,
+  0x65, 0x4e, 0x96, 0x2d, 0x43, 0x34, 0x57, 0x9e, 0x75, 0x99, 0x24, 0xbd,
+  0xef, 0x38, 0xef, 0x42, 0x1f, 0x6e, 0xac, 0x2d, 0xda, 0x6f, 0x9e, 0xf0,
+  0xbd, 0xd7, 0x8c, 0x31, 0xe1, 0x7c, 0x26, 0x01, 0x33, 0x6b, 0x61, 0xaa,
+  0x80, 0x62, 0xd0, 0x12, 0x54, 0xb8, 0xb5, 0x4a, 0x6c, 0x1c, 0x3c, 0x9f,
+  0x00, 0xd3, 0x28, 0x08, 0x36, 0x45, 0xc4, 0xe2, 0x10, 0xf8, 0xa3, 0xe8,
+  0xfc, 0x43, 0x23, 0xd3, 0x7e, 0xd9, 0x79, 0x31, 0xc7, 0x8d, 0xad, 0xb6,
+  0x72, 0xaa, 0xc9, 0x69, 0xf2, 0xaa, 0xc7, 0x84, 0x93, 0xdb, 0xb3, 0x89,
+  0x56, 0xc4, 0x37, 0xf1, 0xf1, 0xe4, 0xd0, 0x0b, 0xcd, 0x6e, 0x28, 0x0a,
+  0x67, 0x5b, 0x89, 0x90, 0xee, 0xbc, 0x5e, 0x5a, 0xdc, 0x93, 0x17, 0x28,
+  0x58, 0x0b, 0x1c, 0xd9, 0x94, 0xdc, 0x89, 0x38, 0x22, 0x02, 0x14, 0x1c,
+  0xdb, 0xcb, 0xc9, 0x09, 0x41, 0x10, 0xbf, 0x5d, 0x95, 0xa7, 0xe7, 0x65,
+  0x92, 0xd6, 0xa0, 0x54, 0xaa, 0x96, 0x2d, 0x60, 0x10, 0xb0, 0x00, 0x1a,
+  0xe0, 0x70, 0x21, 0x1a, 0x94, 0xd5, 0xce, 0x87, 0x03, 0x40, 0x91, 0x94,
+  0x82, 0x61, 0x5d, 0x16, 0x9a, 0x15, 0x42, 0x5d, 0xdd, 0xad, 0x00, 0x4c,
+  0x0b, 0x12, 0x78, 0xb6, 0x26, 0xe7, 0xca, 0xe3, 0xd0, 0x26, 0x3c, 0xbf,
+  0xa9, 0x34, 0x37, 0xe4, 0x33, 0xec, 0x89, 0x4d, 0x3b, 0x62, 0x34, 0xf7,
+  0x25, 0xe6, 0xde, 0xc2, 0xd2, 0x1d, 0x93, 0xf3, 0x51, 0xcf, 0x95, 0x6c,
+  0x9e, 0x9b, 0xfd, 0x5f, 0x83, 0x6b, 0x6e, 0x28, 0x6e, 0x38, 0xf8, 0x95,
+  0x7f, 0x72, 0xa9, 0xe6, 0xbe, 0xdd, 0xf1, 0x9c, 0x77, 0xd8, 0x19, 0x00,
+  0x3c, 0xbd, 0x4b, 0x65, 0x50, 0x7e, 0xd3, 0x3c, 0x6b, 0x9e, 0x67, 0xe2,
+  0xde, 0x74, 0xe6, 0x9d, 0x6d, 0xe7, 0x3e, 0x21, 0x54, 0x5e, 0x9f, 0xa3,
+  0x64, 0x6c, 0xaf, 0xe1, 0xdb, 0x0b, 0xb5, 0xd9, 0x39, 0xc4, 0x9f, 0x29,
+  0xdb, 0xf2, 0xdb, 0xe9, 0x38, 0xc8, 0xec, 0x4e, 0xd2, 0x65, 0xd2, 0xd3,
+  0x51, 0xe0, 0x9d, 0x24, 0xc8, 0xc6, 0x44, 0x02, 0x29, 0x8e, 0x38, 0xef,
+  0xb5, 0x86, 0x1c, 0xf0, 0x9e, 0x7a, 0x64, 0x00, 0x91, 0x23, 0xf6, 0x90,
+  0xaa, 0x7c, 0x96, 0xf6, 0x31, 0x45, 0xeb, 0x1d, 0x4b, 0xfb, 0xe9, 0x66,
+  0x3c, 0xcf, 0x42, 0xa6, 0x97, 0x39, 0x9b, 0x58, 0x79, 0x64, 0x1d, 0x03,
+  0x29, 0x5b, 0x68, 0xed, 0x13, 0x24, 0x1a, 0xa5, 0x7c, 0x3b, 0xcc, 0xa3,
+  0xa3, 0x08, 0x53, 0x73, 0x6b, 0x28, 0x46, 0xb7, 0x92, 0x49, 0x30, 0x61,
+  0x68, 0x27, 0x34, 0x95, 0x49, 0x19, 0xca, 0x36, 0x88, 0xa5, 0x10, 0x21,
+  0x38, 0xe0, 0x58, 0xc7, 0xf6, 0x9b, 0xe4, 0x75, 0x66, 0xa5, 0x1d, 0xaf,
+  0x8f, 0xaa, 0x08, 0xec, 0xbe, 0x0f, 0x0d, 0x3c, 0xbf, 0xef, 0x6e, 0x80,
+  0x99, 0xa7, 0x30, 0x90, 0xc2, 0x20, 0x10, 0xc1, 0x68, 0xde, 0xa2, 0xb8,
+  0xb3, 0xc0, 0x69, 0xd3, 0x5d, 0x0b, 0x02, 0x80, 0x73, 0xbb, 0xee, 0xe3,
+  0xed, 0x75, 0xe2, 0x6d, 0x54, 0x72, 0x7f, 0x57, 0xce, 0x2f, 0x36, 0xf3,
+  0x3d, 0x52, 0xa5, 0x4a, 0xf1, 0x63, 0x33, 0x97, 0xd3, 0x3a, 0x7b, 0x7f,
+  0xd8, 0xbe, 0xf3, 0x79, 0xe2, 0x79, 0x77, 0x1a, 0xd7, 0x68, 0x6d, 0xf6,
+  0x62, 0x9b, 0x85, 0x4b, 0x33, 0x2c, 0x02, 0x50, 0x2f, 0x84, 0xd0, 0x56,
+  0xbc, 0x26, 0xa5, 0xf0, 0x92, 0x6d, 0x74, 0x78, 0xd9, 0x65, 0x19, 0x26,
+  0xb8, 0xa4, 0x7b, 0xad, 0x19, 0x10, 0x98, 0x04, 0xc0, 0x6a, 0x15, 0x43,
+  0xf7, 0x00, 0xa2, 0x2e, 0x70, 0x9c, 0xa8, 0x0b, 0xd2, 0x0b, 0x95, 0x21,
+  0x14, 0x4b, 0xc1, 0x48, 0x5f, 0x92, 0x7a, 0x42, 0x72, 0xa2, 0xb0, 0x7a,
+  0x26, 0x02, 0x91, 0x80, 0x19, 0x7e, 0x66, 0x40, 0x38, 0x21, 0x1a, 0x94,
+  0xb5, 0xce, 0x86, 0xc3, 0x42, 0x0b, 0x48, 0x17, 0x22, 0xa8, 0x09, 0x7c,
+  0x2e, 0x68, 0x00, 0x00, 0x63, 0x8c, 0x98, 0x2a, 0xd4, 0xce, 0x6f, 0xe8,
+  0xe0, 0xe8, 0xc1, 0x83, 0x40, 0x99, 0xbe, 0xb3, 0x7f, 0xe2, 0xba, 0xc4,
+  0x11, 0x7f, 0xce, 0xd8, 0x74, 0x77, 0xb4, 0xec, 0x8c, 0xcd, 0x98, 0xe2,
+  0x5e, 0x5e, 0x1f, 0x51, 0xf0, 0x75, 0x6e, 0xa8, 0xd2, 0xae, 0x48, 0x26,
+  0xbb, 0x57, 0x9d, 0x01, 0x31, 0xfd, 0x67, 0x2e, 0xfd, 0x27, 0xcc, 0x9c,
+  0x5d, 0xfb, 0x33, 0x27, 0x16, 0xe9, 0x9c, 0x82, 0x1f, 0xb0, 0x70, 0x4c,
+  0xa5, 0x93, 0x45, 0xe1, 0x56, 0x96, 0xb8, 0x3b, 0xf3, 0x64, 0x7f, 0x9b,
+  0xd2, 0xfd, 0x67, 0x30, 0xec, 0x0f, 0x8a, 0xb9, 0x4e, 0x7a, 0x8e, 0x7b,
+  0xc1, 0x73, 0xf9, 0xee, 0x4f, 0x5d, 0x82, 0x87, 0xab, 0xa9, 0xd7, 0x31,
+  0xf2, 0x52, 0x94, 0x29, 0x97, 0x1b, 0xa8, 0x02, 0x39, 0x96, 0xab, 0xa7,
+  0x50, 0xf0, 0x7f, 0x47, 0x87, 0x9f, 0xa8, 0x7f, 0x34, 0xb2, 0xc2, 0x0f,
+  0x17, 0xf8, 0x4a, 0x15, 0xb4, 0x63, 0x42, 0xce, 0xee, 0xa6, 0x21, 0xcb,
+  0x21, 0x4f, 0x2d, 0xac, 0xa6, 0xc8, 0x86, 0x56, 0x67, 0xe1, 0x70, 0xf1,
+  0xb2, 0x8f, 0xf5, 0xfe, 0x6c, 0x70, 0xf0, 0xed, 0xcc, 0xee, 0x25, 0x9a,
+  0x58, 0x7b, 0xc2, 0xd7, 0x81, 0x37, 0x31, 0x1f, 0xe3, 0xba, 0x51, 0x71,
+  0xb5, 0x14, 0x96, 0xdf, 0x56, 0x61, 0x27, 0xb0, 0x0a, 0xb2, 0x8d, 0xb7,
+  0xc9, 0x74, 0x5b, 0xa5, 0x49, 0x2e, 0xa6, 0xbf, 0x7c, 0x23, 0xe8, 0xa7,
+  0xf6, 0xa5, 0xe3, 0xb6, 0x01, 0x2f, 0x68, 0x83, 0x81, 0x04, 0x48, 0x21,
+  0x08, 0x08, 0x60, 0xb2, 0x0c, 0x92, 0xa0, 0x7b, 0x5b, 0x8e, 0x28, 0xab,
+  0x18, 0x20, 0x2a, 0xb0, 0x70, 0xd7, 0x13, 0x7e, 0x39, 0xbe, 0x3b, 0x06,
+  0x6f, 0xea, 0xe3, 0xf7, 0x40, 0xf8, 0xcd, 0x93, 0x14, 0x1c, 0x33, 0xf7,
+  0x0a, 0xd1, 0xa4, 0xd6, 0xce, 0x14, 0x6c, 0xb3, 0xb6, 0xd5, 0xec, 0x06,
+  0x25, 0x9c, 0x22, 0x26, 0x28, 0x81, 0x69, 0xfd, 0x46, 0x8c, 0x05, 0xaf,
+  0x5e, 0x81, 0xfc, 0xaa, 0xeb, 0x28, 0x81, 0x18, 0x38, 0x3c, 0x34, 0xc3,
+  0xf9, 0xec, 0x02, 0xd8, 0x80, 0x80, 0x58, 0x05, 0x4a, 0xa5, 0x02, 0xd0,
+  0x4c, 0x94, 0x12, 0x56, 0xb6, 0x82, 0x20, 0x01, 0x1b, 0x40, 0x42, 0x41,
+  0x41, 0x23, 0xf8, 0xbc, 0x90, 0x94, 0x6e, 0x3f, 0x7f, 0xac, 0x6d, 0xa3,
+  0xc0, 0x5a, 0x79, 0x15, 0x0e, 0x21, 0x1a, 0x94, 0xdd, 0xce, 0x89, 0x63,
+  0xa1, 0xa1, 0x98, 0x24, 0x62, 0x4b, 0x56, 0x70, 0xb6, 0x46, 0xec, 0xd5,
+  0xf4, 0xe9, 0xab, 0x9b, 0xa0, 0x93, 0x00, 0x1c, 0x1e, 0xb3, 0xe9, 0xb6,
+  0xe8, 0xb7, 0x47, 0xe7, 0xfc, 0x4b, 0x0e, 0xfa, 0x85, 0x06, 0x1a, 0x80,
+  0x3a, 0xff, 0xf1, 0x7f, 0x6b, 0x58, 0x88, 0xcc, 0xe0, 0x71, 0x41, 0xe1,
+  0x59, 0x7a, 0x88, 0x27, 0xa7, 0xf6, 0x06, 0x06, 0x0a, 0x7a, 0xc2, 0xf7,
+  0x6c, 0x26, 0x50, 0x07, 0xa3, 0xfd, 0x93, 0xa7, 0xff, 0x3d, 0xf8, 0x5f,
+  0x1f, 0xee, 0x8c, 0xd1, 0xcc, 0xf9, 0xff, 0x24, 0x69, 0xb9, 0x19, 0x64,
+  0x89, 0x44, 0x49, 0x01, 0xc0, 0x51, 0xf9, 0x7f, 0x5c, 0xf2, 0x3c, 0xc2,
+  0x8a, 0x1f, 0xe6, 0x59, 0x73, 0xab, 0xb9, 0xb2, 0x1b, 0xab, 0xae, 0x7b,
+  0xc7, 0xe5, 0x61, 0xb3, 0xbd, 0x40, 0xd2, 0x94, 0x98, 0x9e, 0x85, 0x65,
+  0x47, 0xe8, 0xa4, 0x37, 0x7f, 0x60, 0xe5, 0xfa, 0x0d, 0x5a, 0x76, 0xbc,
+  0xd6, 0x08, 0xb9, 0x4b, 0xae, 0x36, 0x2d, 0xfa, 0xea, 0x80, 0xe8, 0x8e,
+  0xe3, 0xf4, 0x0d, 0x6f, 0xfe, 0xdd, 0x6d, 0xfe, 0x5f, 0xff, 0xb2, 0xa8,
+  0xbf, 0x4d, 0x68, 0x87, 0x8e, 0x03, 0xa6, 0xfb, 0x53, 0xc5, 0xfa, 0xa3,
+  0xa0, 0xaa, 0x50, 0x7e, 0xdb, 0xe0, 0x7a, 0x5b, 0xf6, 0x78, 0x66, 0xc7,
+  0xa4, 0x35, 0x3e, 0x85, 0xcd, 0x59, 0x87, 0xe3, 0xb3, 0x5c, 0x16, 0x1d,
+  0xa5, 0xeb, 0x1b, 0xaf, 0x6b, 0xb9, 0x96, 0x46, 0xd9, 0xb1, 0xe8, 0x1a,
+  0x9f, 0xd2, 0xed, 0xdb, 0x6d, 0x7a, 0xa3, 0x64, 0xc5, 0xdc, 0x23, 0xa4,
+  0x6b, 0xd3, 0x52, 0x2b, 0x50, 0xe4, 0xc8, 0xc1, 0x92, 0x59, 0x0e, 0x5c,
+  0x21, 0xcd, 0xab, 0x2d, 0x52, 0x3d, 0x2c, 0xaf, 0xec, 0xb5, 0x88, 0xdd,
+  0xce, 0x32, 0xf7, 0x83, 0x1f, 0xd2, 0x8a, 0xd8, 0xf2, 0x23, 0xbc, 0xd8,
+  0xcf, 0x8c, 0xbc, 0xa9, 0x81, 0xd1, 0x34, 0x97, 0xd7, 0xe2, 0xd5, 0x02,
+  0x7a, 0xdf, 0x59, 0x3f, 0xa1, 0x81, 0x0b, 0xfd, 0x66, 0x9a, 0xce, 0x79,
+  0x29, 0xf2, 0x6b, 0xae, 0xcd, 0x18, 0x35, 0xb7, 0xdc, 0xff, 0xaa, 0x8e,
+  0x61, 0x20, 0x17, 0x1c, 0xbe, 0x40, 0x06, 0x82, 0x48, 0xbc, 0xe1, 0xb3,
+  0xd3, 0x42, 0x03, 0xab, 0x7d, 0x26, 0xbd, 0x7e, 0xe3, 0x69, 0xe7, 0xdb,
+  0x56, 0x74, 0x00, 0x04, 0xc5, 0xb1, 0x88, 0x63, 0x41, 0x88, 0x80, 0x62,
+  0x10, 0x40, 0x98, 0x23, 0x73, 0x52, 0x98, 0x81, 0x6f, 0x2b, 0xf6, 0x58,
+  0x05, 0x8d, 0x83, 0x4a, 0xf6, 0xed, 0x85, 0x19, 0xd3, 0x4e, 0xa8, 0xdb,
+  0xd2, 0xfe, 0x97, 0xce, 0x8c, 0x11, 0xa3, 0xe1, 0x0e, 0x11, 0x20, 0x28,
+  0xb9, 0xe3, 0xf9, 0x1d, 0x22, 0x2d, 0xc0, 0x0c, 0xa1, 0x76, 0xfc, 0x42,
+  0x58, 0x72, 0x86, 0xd2, 0x22, 0xf0, 0xc4, 0x7f, 0x6f, 0xda, 0x02, 0x5c,
+  0xfe, 0x66, 0x33, 0x70, 0x89, 0xd7, 0x88, 0x19, 0xcb, 0x2c, 0x95, 0x44,
+  0xf2, 0x01, 0x4c, 0xbe, 0xe5, 0xc5, 0x45, 0x36, 0xac, 0x28, 0x5f, 0xef,
+  0x83, 0x2f, 0xcf, 0xaf, 0xef, 0x7f, 0x15, 0xe5, 0x70, 0xe0, 0x21, 0x1a,
+  0x94, 0xb5, 0xaa, 0x95, 0x05, 0x41, 0x8b, 0x80, 0x52, 0xf0, 0xc5, 0x54,
+  0x79, 0x4e, 0x32, 0x5d, 0x9a, 0x18, 0x68, 0xa1, 0xac, 0x9d, 0xa0, 0x12,
+  0x0a, 0x05, 0x69, 0xe0, 0xae, 0xa7, 0x54, 0x26, 0x97, 0xcd, 0xfa, 0xed,
+  0x8d, 0x69, 0x9c, 0x91, 0xc9, 0x1a, 0x6d, 0xcf, 0x68, 0xa2, 0x8f, 0x95,
+  0x0b, 0xfb, 0xee, 0x4b, 0xb6, 0xfc, 0x8b, 0x5b, 0xab, 0x5e, 0x9c, 0x5d,
+  0xa5, 0x3c, 0x3a, 0xab, 0x4e, 0x5e, 0xb7, 0x9e, 0xd3, 0xb0, 0x3c, 0x1a,
+  0xfc, 0x50, 0xee, 0x58, 0xef, 0x09, 0x24, 0x0e, 0xa7, 0x3f, 0x2a, 0xe3,
+  0xbd, 0x69, 0x19, 0xa5, 0xc1, 0x36, 0x65, 0xad, 0x2e, 0xcd, 0xf0, 0xba,
+  0x93, 0xed, 0xcf, 0x39, 0xc3, 0xb9, 0x72, 0xe5, 0xff, 0x75, 0x81, 0xd0,
+  0x36, 0x6b, 0xfc, 0x8f, 0x16, 0x46, 0xa5, 0xa8, 0xd6, 0xfa, 0x7c, 0xc5,
+  0x30, 0x5a, 0xcc, 0x93, 0x4c, 0xa6, 0x98, 0x81, 0xb4, 0x90, 0xc3, 0xc3,
+  0x4e, 0x59, 0x6d, 0xbe, 0xb3, 0xa6, 0xf3, 0x14, 0x28, 0x4c, 0x40, 0xce,
+  0xd7, 0xff, 0xb7, 0x3f, 0x70, 0xc5, 0xb6, 0x65, 0x5e, 0xbd, 0x9a, 0x40,
+  0xc5, 0xa1, 0xeb, 0x82, 0x4b, 0x63, 0x75, 0x01, 0xe0, 0x9a, 0xd4, 0xa8,
+  0xac, 0x45, 0xad, 0xd9, 0x96, 0xa8, 0xec, 0xd5, 0x4b, 0xa7, 0x3f, 0x50,
+  0xa0, 0xa4, 0xcb, 0xd2, 0x60, 0x90, 0x7f, 0xfb, 0x4f, 0x90, 0xd9, 0x70,
+  0x6b, 0xd6, 0x59, 0x53, 0xdc, 0x6b, 0x0c, 0x4a, 0x46, 0x8c, 0x22, 0x37,
+  0x88, 0x4a, 0xd9, 0xe8, 0xe8, 0x81, 0x10, 0x14, 0x48, 0x02, 0x13, 0x80,
+  0x11, 0xe1, 0x80, 0xf6, 0x35, 0xf8, 0xb3, 0x17, 0x41, 0xac, 0x9d, 0xa0,
+  0x12, 0x0a, 0x05, 0x68, 0xfc, 0xbc, 0x4a, 0x8f, 0xbc, 0xfe, 0xf5, 0x1b,
+  0xe2, 0x7a, 0x3f, 0xcf, 0x16, 0xfb, 0x23, 0xb3, 0x49, 0x88, 0x73, 0x28,
+  0x3a, 0x31, 0xef, 0x09, 0x80, 0xbd, 0xe3, 0xc2, 0xbb, 0xc4, 0xd6, 0xee,
+  0x3b, 0xeb, 0x4e, 0x7b, 0x6e, 0x18, 0x33, 0x20, 0x19, 0x04, 0xa5, 0xde,
+  0x69, 0x90, 0xd0, 0x38, 0x3c, 0x4d, 0x55, 0x4e, 0x3a, 0x64, 0xcf, 0xae,
+  0xd7, 0xda, 0x20, 0x51, 0xdb, 0xf6, 0x38, 0x4f, 0xe7, 0x0b, 0xf2, 0x09,
+  0x5c, 0x0f, 0x08, 0x00, 0x8d, 0xd4, 0x9d, 0xae, 0x56, 0xe9, 0x2b, 0x20,
+  0x06, 0x46, 0x00, 0x31, 0xc0, 0x34, 0x32, 0xa5, 0x61, 0x7a, 0x45, 0x93,
+  0x10, 0x03, 0x07, 0x21, 0x1a, 0x94, 0xc5, 0xba, 0x96, 0x83, 0x13, 0x90,
+  0x84, 0xa2, 0x23, 0x77, 0x6b, 0x36, 0xc9, 0x1e, 0x65, 0xaa, 0xec, 0x81,
+  0x9c, 0x06, 0x04, 0x9a, 0x02, 0x43, 0x3f, 0xf0, 0x7d, 0x07, 0xff, 0x2b,
+  0xa5, 0x3e, 0xb7, 0x6c, 0x7d, 0xbf, 0xb5, 0x2d, 0x24, 0x5d, 0xc1, 0xbe,
+  0x2b, 0x50, 0x67, 0xd4, 0xfb, 0x26, 0x48, 0xf3, 0xb5, 0xbe, 0xeb, 0x99,
+  0x81, 0xa5, 0xe7, 0xf1, 0xcc, 0xe1, 0xfa, 0x97, 0x4d, 0x56, 0xc3, 0xc9,
+  0x7e, 0xed, 0xff, 0x94, 0x61, 0x1e, 0x71, 0xfe, 0x8f, 0xb2, 0xb9, 0x34,
+  0xde, 0x22, 0x3e, 0x7a, 0xf7, 0x53, 0xeb, 0x3b, 0xcf, 0xc2, 0xfb, 0xf7,
+  0x5a, 0xf2, 0xaa, 0x85, 0xdd, 0x79, 0x35, 0x5b, 0xaa, 0x7f, 0xba, 0x7a,
+  0xcd, 0x56, 0x37, 0x7d, 0x77, 0x65, 0xc6, 0xe3, 0x6b, 0x3b, 0x6e, 0x26,
+  0x33, 0x24, 0xa1, 0x4b, 0xb9, 0xda, 0xcd, 0xa6, 0x14, 0x62, 0x97, 0x1e,
+  0xe6, 0x5b, 0x90, 0x58, 0xb5, 0x6b, 0x12, 0x66, 0xd8, 0xac, 0x54, 0x70,
+  0x66, 0x5a, 0xd9, 0x49, 0x6a, 0xd5, 0x49, 0x90, 0x86, 0x64, 0xa8, 0xad,
+  0x17, 0xc0, 0x82, 0x93, 0x7c, 0xad, 0x89, 0xa8, 0x41, 0x68, 0x6b, 0xa3,
+  0xb7, 0xc1, 0x4d, 0x26, 0x6b, 0x2f, 0xbd, 0x54, 0xdb, 0x77, 0x48, 0x9c,
+  0xe6, 0x42, 0x5f, 0xa9, 0xb2, 0x9a, 0xe2, 0x25, 0x58, 0x46, 0xab, 0x94,
+  0x45, 0x7d, 0x51, 0xb4, 0x14, 0x48, 0x89, 0xd6, 0x65, 0x34, 0xe1, 0x9d,
+  0xa5, 0x25, 0xca, 0x28, 0x99, 0x55, 0x9e, 0xa5, 0x8b, 0x98, 0xa4, 0x9d,
+  0x8b, 0xd1, 0x8a, 0x33, 0x9a, 0x11, 0x41, 0x72, 0xd1, 0x04, 0xd5, 0xbc,
+  0xd2, 0x44, 0x17, 0x04, 0x6a, 0xaa, 0xed, 0x4a, 0x54, 0x5b, 0x81, 0xae,
+  0x0e, 0x00, 0x01, 0x6c, 0xad, 0x58, 0x0e, 0x78, 0x00, 0xa3, 0x9c, 0x2a,
+  0x22, 0xbf, 0x4e, 0xb8, 0xda, 0x94, 0x2d, 0xba, 0x4e, 0x22, 0xd3, 0x87,
+  0xfc, 0x6e, 0x53, 0x91, 0xe1, 0x54, 0x7c, 0x4e, 0xe6, 0xcc, 0xdc, 0x46,
+  0x38, 0xfe, 0x04, 0xb0, 0x16, 0xcb, 0xfe, 0x45, 0x1d, 0xca, 0xec, 0x9b,
+  0xea, 0xff, 0x38, 0xe6, 0xc9, 0x81, 0xa9, 0x51, 0x22, 0xa1, 0xfd, 0x9f,
+  0xab, 0xe3, 0xe6, 0xd4, 0x73, 0x77, 0x9b, 0xbe, 0x7f, 0x0d, 0xed, 0xbf,
+  0x8f, 0x4d, 0xa8, 0x00, 0xf7, 0x87, 0xe3, 0xe3, 0xcf, 0x40, 0x58, 0x00,
+  0x31, 0x39, 0xcb, 0x26, 0x67, 0x7d, 0xcb, 0x26, 0x68, 0x7d, 0x11, 0x1d,
+  0xd4, 0x55, 0x52, 0xbb, 0x1e, 0x17, 0xd6, 0x09, 0xda, 0x1f, 0x8c, 0x90,
+  0xb7, 0xd7, 0xa7, 0x6a, 0xd9, 0x71, 0x91, 0x5e, 0x9e, 0x2b, 0xf1, 0x9c,
+  0xa1, 0x4c, 0x79, 0x40, 0x3c, 0x5a, 0x8b, 0x54, 0xb1, 0x40, 0x00, 0xed,
+  0x9b, 0x2a, 0x81, 0x9e, 0x9a, 0xd3, 0x4a, 0x0c, 0xf0, 0x0e, 0x21, 0x1a,
+  0x8e, 0xca, 0x1f, 0xff, 0x6f, 0xff, 0x35, 0x65, 0xa8, 0x41, 0x90, 0xa4,
+  0x71, 0x18, 0x0a, 0x55, 0x33, 0x42, 0xa5, 0xde, 0xac, 0xd7, 0x15, 0xaa,
+  0xb0, 0x00, 0xd6, 0x48, 0x86, 0x7a, 0x05, 0x7b, 0x20, 0xbb, 0x8d, 0xca,
+  0xe5, 0x8d, 0x6b, 0x12, 0x90, 0x08, 0x09, 0x94, 0xb8, 0xf4, 0x3e, 0x71,
+  0x6e, 0x23, 0xd5, 0x39, 0x8b, 0x79, 0x76, 0xcc, 0x64, 0x1e, 0x6b, 0xaa,
+  0xf4, 0xaa, 0xe6, 0x20, 0xa6, 0x8f, 0x95, 0x65, 0x0e, 0xcd, 0x1c, 0x68,
+  0x09, 0xab, 0x27, 0x2a, 0x9b, 0x5e, 0x69, 0xb8, 0xe6, 0x5c, 0xb7, 0x2e,
+  0x80, 0x87, 0x4f, 0xe3, 0x5c, 0x71, 0xda, 0xa4, 0xa8, 0xcb, 0xc3, 0xd6,
+  0x71, 0x5b, 0xc8, 0x65, 0x2a, 0x80, 0x2d, 0xbb, 0xdd, 0x5d, 0x44, 0x52,
+  0x19, 0x9c, 0xe3, 0x76, 0x4d, 0x5d, 0x71, 0x04, 0x20, 0x5a, 0xd3, 0x2d,
+  0x08, 0x44, 0x8a, 0x48, 0xb5, 0x26, 0x37, 0x11, 0x6c, 0x2a, 0x1c, 0x16,
+  0x35, 0x51, 0x73, 0x82, 0x90, 0x44, 0x63, 0x84, 0x40, 0x6d, 0x88, 0x52,
+  0x20, 0xb6, 0x13, 0x82, 0x4c, 0x0b, 0x82, 0x15, 0x28, 0x25, 0x3d, 0x3a,
+  0xa5, 0xab, 0xcd, 0x68, 0x6e, 0xa6, 0xef, 0x55, 0xb3, 0x36, 0x78, 0x30,
+  0x2a, 0xbc, 0x75, 0xf6, 0x91, 0x27, 0x3d, 0x6c, 0xd5, 0xcb, 0x2c, 0x55,
+  0x6a, 0xdd, 0xd6, 0x4d, 0xdf, 0x14, 0xf2, 0x37, 0x95, 0x4f, 0x6f, 0x1c,
+  0xfc, 0x8e, 0x48, 0x84, 0xfb, 0x38, 0xd7, 0x9f, 0xce, 0x1c, 0x40, 0x5f,
+  0xeb, 0xab, 0xe4, 0xe4, 0xff, 0xce, 0xee, 0xe6, 0xe6, 0xd3, 0xfc, 0x9c,
+  0xe7, 0x5a, 0xe8, 0x6c, 0x87, 0x21, 0xb3, 0x59, 0xc1, 0x8a, 0xd5, 0x92,
+  0x16, 0x48, 0x59, 0xcc, 0xf5, 0xd5, 0x97, 0x75, 0x0f, 0xff, 0x74, 0x39,
+  0x70, 0x11, 0xfa, 0x84, 0xc5, 0xae, 0x8a, 0xc5, 0x22, 0x00, 0x85, 0xe3,
+  0x74, 0x56, 0xc2, 0xd9, 0x49, 0xad, 0x34, 0x71, 0xad, 0x52, 0xe2, 0x22,
+  0x0b, 0x65, 0x2f, 0x7f, 0x82, 0x07, 0x46, 0x71, 0x55, 0x38, 0x0e, 0xcd,
+  0xeb, 0x08, 0x3f, 0x3a, 0x46, 0x38, 0x18, 0x26, 0x44, 0x7d, 0x73, 0xfa,
+  0x1c, 0x3d, 0x23, 0x05, 0x81, 0xc8, 0x54, 0x9e, 0xf3, 0x8e, 0x0e, 0x0e,
+  0xa3, 0x20, 0xa0, 0xff, 0x43, 0x86, 0xf8, 0x8d, 0xcf, 0x60, 0x83, 0xb3,
+  0x62, 0x55, 0x89, 0xf5, 0xe3, 0x1e, 0x2f, 0xe0, 0x12, 0x95, 0x29, 0x7c,
+  0x51, 0x72, 0x0c, 0xe8, 0x44, 0x53, 0x9f, 0x7b, 0x54, 0x81, 0x7e, 0x7d,
+  0x08, 0xa7, 0xbf, 0x75, 0x37, 0x34, 0xbb, 0x63, 0xaf, 0x6f, 0x51, 0x6c,
+  0x3c, 0x5d, 0xc1, 0xfe, 0x2a, 0x25, 0x2a, 0x7f, 0x6c, 0x3d, 0x5d, 0xa3,
+  0x1b, 0x10, 0x4c, 0xa5, 0xa8, 0xbd, 0xcf, 0x4e, 0x7f, 0xc3, 0x3d, 0xaf,
+  0x2f, 0xfa, 0x05, 0x11, 0x00, 0xcd, 0x4c, 0xc0, 0x90, 0xa1, 0x79, 0xa7,
+  0x11, 0x41, 0x69, 0xa7, 0x6e, 0xba, 0x13, 0x00, 0x0b, 0x6c, 0x50, 0x4a,
+  0xd5, 0x1b, 0x60, 0x2c, 0x1c, 0x21, 0x1a, 0x8d, 0x08, 0x5f, 0x34, 0x07,
+  0xfd, 0x37, 0x54, 0x61, 0x0c, 0x40, 0x6c, 0xae, 0x0a, 0x85, 0x57, 0x34,
+  0x1a, 0x5c, 0xb1, 0xe6, 0xda, 0x5e, 0x11, 0x5a, 0x5b, 0x2a, 0x42, 0xe0,
+  0x70, 0x7f, 0x7b, 0x4e, 0xb3, 0x87, 0xbd, 0x7e, 0xee, 0xc1, 0x96, 0x62,
+  0x7f, 0x55, 0x58, 0x5d, 0x6d, 0xec, 0x0f, 0x3e, 0xd9, 0x1f, 0x0e, 0x6b,
+  0x0f, 0x18, 0xe5, 0xad, 0xae, 0x36, 0x3a, 0xb8, 0xbc, 0xf5, 0xcb, 0x5b,
+  0xbc, 0x1b, 0x89, 0x29, 0xa3, 0xf8, 0xc5, 0x18, 0x6b, 0xd4, 0x9d, 0x93,
+  0x5e, 0xda, 0xa2, 0xae, 0xe6, 0x5d, 0xf3, 0x76, 0x46, 0xb6, 0x1b, 0x27,
+  0x2b, 0x75, 0x7a, 0x04, 0xa3, 0x23, 0x14, 0xa4, 0xa3, 0x78, 0xb7, 0x23,
+  0xf9, 0xd3, 0xb3, 0x3c, 0xab, 0x60, 0x87, 0x9f, 0xfd, 0x5a, 0x26, 0xae,
+  0xb3, 0x6f, 0xb9, 0x10, 0xb8, 0x09, 0xa8, 0x54, 0x13, 0xc5, 0x5a, 0x62,
+  0xb4, 0x57, 0x02, 0x6c, 0x32, 0x0b, 0x52, 0x32, 0x8c, 0x34, 0x29, 0x68,
+  0x30, 0x5f, 0x7f, 0x52, 0xd2, 0x9d, 0xe3, 0x64, 0x9b, 0x65, 0x85, 0x74,
+  0x16, 0x42, 0xe1, 0x70, 0x09, 0x27, 0x38, 0x6d, 0x9d, 0xb6, 0x42, 0x86,
+  0x86, 0xeb, 0x31, 0xc6, 0x72, 0xd4, 0x68, 0x0f, 0x25, 0x86, 0x9a, 0xb9,
+  0x68, 0xb0, 0x16, 0x44, 0x46, 0xe6, 0x63, 0x73, 0x4f, 0x1c, 0x15, 0xd9,
+  0x8b, 0xb6, 0xff, 0x07, 0xce, 0xad, 0x0e, 0x36, 0xc4, 0xc3, 0x4f, 0xa5,
+  0x5b, 0xbe, 0x8e, 0x36, 0xe8, 0x40, 0xe2, 0x1e, 0xf1, 0x39, 0xf2, 0x14,
+  0x20, 0xf8, 0xcf, 0x86, 0x81, 0x53, 0xcc, 0x80, 0x0a, 0x3a, 0xca, 0x71,
+  0x06, 0x09, 0xa1, 0x09, 0x15, 0x2a, 0x9f, 0x40, 0x92, 0x01, 0xaa, 0x26,
+  0xab, 0x9d, 0x25, 0xe8, 0xbd, 0x85, 0xdc, 0x4f, 0xf3, 0x8e, 0x41, 0xef,
+  0x23, 0x02, 0x96, 0xba, 0xcc, 0xa4, 0x9f, 0x9f, 0x3a, 0xfb, 0x58, 0xdc,
+  0x3d, 0x58, 0xff, 0xcc, 0x3e, 0x5c, 0x60, 0x4e, 0xc2, 0xff, 0x84, 0xe5,
+  0x5e, 0xa4, 0x8d, 0x3f, 0xbb, 0x66, 0x6b, 0xc0, 0x20, 0xda, 0x5e, 0x4c,
+  0xd3, 0xcf, 0xb2, 0x74, 0x13, 0x04, 0xa7, 0x31, 0xc9, 0x7c, 0x30, 0xd3,
+  0x0a, 0x14, 0xa5, 0xb1, 0x92, 0x3c, 0x25, 0x2e, 0x98, 0x6d, 0x14, 0x5e,
+  0x3c, 0x3e, 0x40, 0x16, 0x02, 0x60, 0x1c, 0x21, 0x1a, 0x8f, 0x80, 0x1e,
+  0x0c, 0x00, 0x5f, 0x3f, 0x67, 0xa7, 0xb0, 0xc6, 0x24, 0x9c, 0x31, 0x2a,
+  0xa8, 0x52, 0x4e, 0x92, 0xd1, 0xab, 0x34, 0x12, 0x85, 0x96, 0xc9, 0x92,
+  0xb0, 0x3c, 0xe3, 0x9e, 0x35, 0xfe, 0x94, 0xf9, 0xee, 0x6e, 0x81, 0x3a,
+  0xbb, 0xbb, 0x99, 0x31, 0x3c, 0x3b, 0x8c, 0x1a, 0xf2, 0xd1, 0xb3, 0x89,
+  0x55, 0xca, 0x8d, 0x82, 0x7d, 0xc2, 0x32, 0xe3, 0xab, 0x8c, 0xd7, 0x4a,
+  0xb7, 0x64, 0x60, 0xae, 0x89, 0x7e, 0xad, 0xb8, 0xe4, 0x15, 0xee, 0xd7,
+  0x9e, 0x3f, 0x39, 0xc0, 0x41, 0x63, 0xb5, 0xb9, 0x29, 0x72, 0xb4, 0xdb,
+  0x0a, 0xfb, 0xd4, 0xe8, 0xe4, 0xc8, 0x55, 0xb7, 0xdc, 0x16, 0x67, 0x09,
+  0x1d, 0x3b, 0x7c, 0x43, 0x5b, 0x30, 0x62, 0x47, 0x19, 0x49, 0x11, 0x87,
+  0x24, 0x8d, 0x68, 0x83, 0xb4, 0x48, 0x92, 0x05, 0xd5, 0x71, 0xee, 0xb1,
+  0xab, 0xc7, 0xcf, 0xb6, 0x71, 0xa2, 0xbb, 0xe2, 0x45, 0xa6, 0x12, 0x6c,
+  0x09, 0xe4, 0x8a, 0x89, 0xa5, 0x8b, 0x75, 0x49, 0x28, 0x8c, 0x40, 0x60,
+  0x9a, 0x2b, 0x68, 0x16, 0x50, 0xd1, 0x4f, 0x45, 0xe1, 0x01, 0x18, 0x9b,
+  0xe1, 0x8e, 0x50, 0xf5, 0x28, 0xe5, 0x46, 0x1a, 0x17, 0xbb, 0xf1, 0xb2,
+  0xf3, 0x8d, 0xa8, 0x4c, 0x4a, 0xc5, 0xa1, 0x40, 0x51, 0x72, 0x1b, 0xeb,
+  0x6a, 0xf4, 0x83, 0xc7, 0x04, 0x81, 0x3f, 0x6d, 0xa4, 0xb0, 0x90, 0xc2,
+  0xc5, 0x20, 0x02, 0x58, 0xe4, 0xbd, 0x7d, 0x6f, 0x65, 0x92, 0xe1, 0xe7,
+  0x7c, 0x2e, 0x82, 0x74, 0x4d, 0xf5, 0xcb, 0x9e, 0x62, 0xd3, 0x89, 0xe7,
+  0x06, 0x54, 0x2c, 0x8c, 0x08, 0x5c, 0x89, 0x99, 0x30, 0xa7, 0xff, 0x33,
+  0xf3, 0xe6, 0x81, 0x74, 0x97, 0x99, 0xab, 0x70, 0x63, 0xd0, 0x73, 0x1f,
+  0xec, 0x90, 0x12, 0x9c, 0xdf, 0x8a, 0xf4, 0x9a, 0x33, 0xce, 0xbe, 0x99,
+  0x25, 0xcc, 0xea, 0x77, 0xb6, 0x14, 0x13, 0xec, 0x72, 0xc4, 0x60, 0x89,
+  0x30, 0x42, 0xe7, 0x82, 0x56, 0x30, 0x19, 0x83, 0x15, 0xf6, 0xde, 0x55,
+  0x20, 0xf5, 0x7b, 0xc0, 0xa2, 0xee, 0x1e, 0x29, 0xdb, 0xe7, 0x87, 0x90,
+  0x7c, 0xd8, 0xab, 0xec, 0x99, 0x74, 0x04, 0xbe, 0x2c, 0x08, 0x95, 0x10,
+  0x00, 0x98, 0xe9, 0x18, 0x1c, 0x63, 0x2e, 0x06, 0x17, 0x43, 0xbe, 0xad,
+  0x1e, 0x7b, 0xaf, 0x50, 0xa0, 0xc0, 0xae, 0x96, 0xbd, 0x48, 0x32, 0xb3,
+  0xc1, 0x5c, 0xb9, 0x22, 0x38, 0xa0, 0xac, 0x11, 0x53, 0xa1, 0xe2, 0x02,
+  0xc5, 0x6b, 0x36, 0xaa, 0xac, 0x60, 0xd2, 0x45, 0x19, 0x57, 0x3e, 0x97,
+  0x32, 0x47, 0xda, 0x3e, 0x74, 0x11, 0x7c, 0x28, 0xbe, 0xc5, 0x38, 0xe9,
+  0xd4, 0x9f, 0xf9, 0xb5, 0x51, 0x5c, 0x1b, 0x6a, 0x9b, 0x05, 0x65, 0x97,
+  0x56, 0x1d, 0xf1, 0xf6, 0x53, 0x58, 0x77, 0x2c, 0xa2, 0x50, 0xa9, 0xf0,
+  0xa3, 0x87, 0x3f, 0x5e, 0xdc, 0x49, 0x81, 0xc0, 0x21, 0x2a, 0x8e, 0x80,
+  0x04, 0x00, 0x00, 0x1f, 0x3b, 0x66, 0xa7, 0x30, 0x90, 0x63, 0x15, 0xc1,
+  0x32, 0x18, 0x0e, 0x11, 0xad, 0x34, 0xb2, 0x50, 0xb8, 0x6c, 0x0e, 0x47,
+  0x9b, 0xfe, 0x37, 0xc5, 0x6d, 0x00, 0x13, 0x18, 0x31, 0xc4, 0xb8, 0x2c,
+  0x23, 0x5d, 0x6d, 0x08, 0x6f, 0x65, 0xc2, 0xd1, 0xf0, 0x79, 0x08, 0xfc,
+  0xed, 0xbc, 0x7c, 0x75, 0x82, 0x89, 0x4c, 0x6c, 0x8d, 0x70, 0x09, 0xe7,
+  0xe4, 0x91, 0x58, 0x97, 0x9b, 0x63, 0x69, 0xbb, 0x52, 0xda, 0x0e, 0xc8,
+  0xfa, 0x5c, 0xee, 0x19, 0x2c, 0x0a, 0x75, 0xc1, 0xc3, 0x00, 0x44, 0x64,
+  0x6c, 0xa9, 0x78, 0x4a, 0x1b, 0xe4, 0xc4, 0xaf, 0x23, 0x0c, 0xb2, 0xba,
+  0x84, 0x46, 0xe3, 0x08, 0x97, 0x86, 0x55, 0x10, 0x76, 0xc4, 0xc6, 0xb1,
+  0x44, 0x31, 0xbe, 0x8b, 0x44, 0xab, 0xd7, 0x8a, 0x95, 0xb6, 0x45, 0x45,
+  0x29, 0x08, 0x56, 0xee, 0x08, 0x05, 0x6f, 0x90, 0x88, 0x04, 0xe2, 0x03,
+  0x3c, 0x3d, 0xdc, 0x48, 0x48, 0x12, 0x0a, 0xb3, 0x6b, 0x44, 0x92, 0xd4,
+  0x9c, 0xce, 0x98, 0x27, 0xe5, 0xa3, 0x90, 0x31, 0xdb, 0x78, 0xd2, 0x20,
+  0x6b, 0xf8, 0xb6, 0x5f, 0x5f, 0x6a, 0x66, 0xd0, 0xb5, 0x00, 0x13, 0x97,
+  0x08, 0x33, 0x0d, 0x0a, 0x2c, 0x2a, 0x98, 0x65, 0x2d, 0x13, 0x5b, 0x4c,
+  0xd7, 0x06, 0x6a, 0xac, 0x1a, 0x27, 0x98, 0xd0, 0xa3, 0xd8, 0x5c, 0xb6,
+  0x0e, 0x1c, 0xf4, 0xb7, 0x17, 0xfb, 0xa5, 0x12, 0x8e, 0x07, 0x3b, 0x3e,
+  0x52, 0x06, 0x3d, 0x2e, 0x04, 0x1e, 0x9a, 0xbc, 0x23, 0x1c, 0x27, 0xae,
+  0x76, 0x2d, 0x64, 0x0c, 0xf9, 0x75, 0x0e, 0x99, 0xa7, 0xae, 0x91, 0x6d,
+  0xbc, 0x56, 0xfa, 0x50, 0xe3, 0x59, 0x8b, 0x43, 0x46, 0xb9, 0x7b, 0x59,
+  0xf5, 0x35, 0x2f, 0xa8, 0x3b, 0xad, 0x37, 0x74, 0x3a, 0x25, 0x34, 0xf7,
+  0x5a, 0x14, 0xf6, 0xb2, 0xed, 0xb1, 0x2c, 0x1a, 0xee, 0x29, 0xc8, 0xfc,
+  0x9a, 0x4d, 0x65, 0xd5, 0x29, 0x57, 0x00, 0x67, 0x87, 0x32, 0x6f, 0xf6,
+  0x4a, 0xda, 0x82, 0x5c, 0x6c, 0xe9, 0x13, 0xe8, 0x2f, 0x1d, 0x25, 0xca,
+  0x9a, 0xc9, 0x0d, 0x59, 0x85, 0xe6, 0xa6, 0x94, 0xb2, 0xa6, 0x99, 0x8a,
+  0x2c, 0xab, 0x68, 0xc3, 0xb5, 0x3c, 0x6b, 0xab, 0xcc, 0xe9, 0xf4, 0x29,
+  0x28, 0xe0, 0xca, 0xab, 0x5f, 0x3a, 0x6f, 0xa5, 0xce, 0xd5, 0xf9, 0xca,
+  0x3c, 0xbc, 0x99, 0xb1, 0x7d, 0x35, 0xd6, 0x1b, 0x08, 0x3c, 0xd2, 0x82,
+  0xc3, 0x20, 0xe6, 0x0b, 0x0a, 0xda, 0xf0, 0xda, 0xfa, 0xc6, 0xa4, 0x2c,
+  0x03, 0x68, 0x0a, 0x0b, 0x0b, 0x01, 0x49, 0xd2, 0x4b, 0xc1, 0xa2, 0x71,
+  0x5a, 0xd8, 0x00, 0x70, 0x21, 0x4c, 0x36, 0x80, 0x0c, 0xa0, 0xdf, 0xbf,
+  0xff, 0xca, 0xd5, 0x44, 0x36, 0xa3, 0x33, 0xb7, 0x21, 0x22, 0x16, 0x06,
+  0xec, 0x24, 0x22, 0xc0, 0x87, 0x9d, 0x7c, 0x18, 0x7f, 0x75, 0x4b, 0xe8,
+  0xfa, 0xc7, 0x5f, 0xdd, 0x2a, 0x69, 0xa1, 0xe0, 0x2e, 0xc0, 0x7c, 0xef,
+  0x70, 0x5c, 0xfc, 0xaa, 0xb7, 0xa2, 0x70, 0x32, 0xfe, 0xfd, 0x90, 0x3c,
+  0xb9, 0x10, 0x82, 0x54, 0xb1, 0xcc, 0x76, 0x4d, 0xb9, 0xc1, 0xe6, 0x28,
+  0x67, 0xc6, 0x86, 0x95, 0x3b, 0xff, 0xdc, 0x91, 0x43, 0x9e, 0x4d, 0x3e,
+  0xb3, 0xe2, 0x17, 0x2e, 0x3b, 0x2b, 0xc9, 0x2e, 0x0c, 0xe8, 0x6b, 0xcf,
+  0xef, 0x2a, 0x4d, 0x9c, 0x41, 0x56, 0xda, 0xab, 0xe0, 0x5f, 0xdd, 0x99,
+  0x47, 0xaa, 0x70, 0xef, 0x62, 0x9d, 0x88, 0x9f, 0x27, 0x91, 0xd2, 0xdd,
+  0x98, 0xb4, 0x7a, 0x38, 0xf1, 0x59, 0x4e, 0x3b, 0xdf, 0xea, 0xcc, 0x7b,
+  0x0d, 0x1c, 0x90, 0x02, 0xfb, 0xfb, 0x37, 0x43, 0xfd, 0x55, 0x28, 0x02,
+  0xbf, 0x0e, 0x45, 0x0b, 0x27, 0xd4, 0x79, 0xc0, 0xa6, 0x4f, 0xed, 0x6c,
+  0xb7, 0x43, 0x5e, 0x60, 0x68, 0x1f, 0x3a, 0x5a, 0xc1, 0xf9, 0xd8, 0xb5,
+  0x9c, 0x7d, 0x35, 0xb5, 0xbb, 0x7b, 0x17, 0xec, 0x4e, 0xdf, 0x86, 0xf1,
+  0x5f, 0x45, 0x43, 0x5a, 0xbb, 0x4b, 0xa1, 0x13, 0xd1, 0x60, 0x60, 0xde,
+  0x7a, 0xcd, 0xc0, 0xda, 0xbc, 0xa4, 0x36, 0xc4, 0x11, 0x86, 0xea, 0x78,
+  0x4c, 0x67, 0x8f, 0x2e, 0x35, 0x11, 0xc4, 0x88, 0x82, 0x64, 0xa4, 0x22,
+  0xd9, 0xc9, 0x9a, 0x67, 0x73, 0xa5, 0x26, 0xf5, 0x3b, 0x26, 0xb5, 0x24,
+  0x1f, 0x6f, 0x64, 0xa3, 0xb8, 0x50, 0x98, 0x25, 0xef, 0x0e, 0xba, 0x05,
+  0x10, 0xcb, 0x54, 0x90, 0x8c, 0x07, 0x66, 0x9b, 0x11, 0x21, 0x84, 0x96,
+  0x3c, 0xbe, 0x3f, 0xa0, 0x4e, 0x17, 0xae, 0xbf, 0xb5, 0x15, 0x7a, 0x5f,
+  0x6a, 0xab, 0x34, 0xd4, 0x73, 0x00, 0x71, 0xcc, 0xf0, 0x65, 0x44, 0xfb,
+  0xb3, 0x87, 0x69, 0xee, 0x8f, 0x48, 0x8b, 0x32, 0x42, 0x29, 0xd1, 0x35,
+  0x75, 0xaa, 0xa7, 0xbb, 0x42, 0xc2, 0xe7, 0x4c, 0x47, 0x72, 0x83, 0xea,
+  0x36, 0xcd, 0x08, 0x98, 0xaa, 0x70, 0x77, 0xfa, 0xce, 0xce, 0xa9, 0xc7,
+  0x70, 0x56, 0x57, 0xfc, 0xbb, 0x88, 0x92, 0x57, 0x42, 0xba, 0xaa, 0x32,
+  0x5c, 0x7e, 0x9d, 0xb8, 0x28, 0xa1, 0x3a, 0x3e, 0x22, 0xb2, 0x15, 0xad,
+  0x05, 0x22, 0xbe, 0x5e, 0xfd, 0x5d, 0xea, 0xaf, 0x25, 0x6d, 0x0d, 0x9d,
+  0x31, 0xda, 0x77, 0xcc, 0x0e, 0xc0, 0x79, 0xc0, 0x0d, 0x53, 0x46, 0x15,
+  0x70, 0x78, 0x5d, 0x3b, 0x10, 0xd6, 0x54, 0x48, 0xb9, 0x21, 0x75, 0x1e,
+  0x79, 0xaf, 0x8a, 0x19, 0x3c, 0x0c, 0x33, 0x2c, 0xe5, 0x68, 0x1a, 0xe1,
+  0xd5, 0x43, 0x56, 0xbb, 0x4b, 0x5c, 0x19, 0x8a, 0xf0, 0x21, 0x7a, 0x8d,
+  0x88, 0x05, 0x3f, 0x41, 0xbf, 0x39, 0x68, 0x86, 0xa1, 0x46, 0x07, 0x3c,
+  0x19, 0x92, 0x2a, 0x14, 0xcb, 0xbb, 0xcd, 0x12, 0xba, 0x97, 0xd3, 0x91,
+  0xa8, 0x43, 0x59, 0x52, 0xb8, 0x3f, 0xf0, 0x3a, 0x03, 0x58, 0xe8, 0x5f,
+  0xd4, 0x2f, 0xbc, 0x3c, 0x47, 0x0f, 0x92, 0xf3, 0x2f, 0x37, 0xe1, 0xfa,
+  0xeb, 0x44, 0xd2, 0xd2, 0x2e, 0x99, 0x57, 0x67, 0x49, 0xbb, 0xc7, 0xd5,
+  0x2b, 0xf4, 0x8d, 0xb0, 0x92, 0xd6, 0x1c, 0x09, 0x8a, 0x45, 0x3a, 0xf6,
+  0x6e, 0x60, 0xd6, 0xef, 0xce, 0xde, 0x67, 0x88, 0x3c, 0x21, 0xdb, 0x66,
+  0x00, 0x88, 0x5e, 0x89, 0x22, 0xeb, 0x64, 0x9c, 0x45, 0x99, 0x48, 0x1c,
+  0xa4, 0x02, 0x38, 0xef, 0x42, 0x00, 0x77, 0x1a, 0xd4, 0x97, 0xaf, 0x7b,
+  0x00, 0xf3, 0xe9, 0x3d, 0xde, 0x2b, 0x69, 0x02, 0xbf, 0x6a, 0xf0, 0x49,
+  0xb3, 0x5f, 0xbf, 0xc3, 0xf8, 0x0d, 0x20, 0x81, 0x09, 0x3f, 0x5b, 0x4a,
+  0x21, 0xa7, 0x55, 0x66, 0xbf, 0xaa, 0x73, 0x07, 0x3d, 0x20, 0xbd, 0xa9,
+  0xb5, 0xa6, 0xfb, 0x40, 0x3b, 0x8a, 0x70, 0xbc, 0x68, 0xbb, 0x45, 0x4b,
+  0xd8, 0xda, 0xb4, 0x93, 0xb8, 0xa1, 0x39, 0x9c, 0xe9, 0x44, 0x1b, 0xc0,
+  0x39, 0x24, 0x4d, 0x2d, 0x73, 0x0d, 0x5f, 0xc0, 0x13, 0xb6, 0xea, 0x3a,
+  0x04, 0x4a, 0x87, 0x14, 0x2c, 0xed, 0xcf, 0x1b, 0x92, 0x37, 0xc2, 0xa2,
+  0xe4, 0x16, 0xf6, 0x2e, 0x2f, 0x6b, 0x97, 0x28, 0x07, 0x70, 0x41, 0xe3,
+  0xdb, 0x9e, 0x09, 0x79, 0xb8, 0xad, 0x13, 0xe6, 0xae, 0x33, 0xf4, 0x54,
+  0xf7, 0x03, 0x89, 0x25, 0x42, 0x0f, 0xfa, 0x45, 0x3c, 0x5a, 0xf2, 0x6a,
+  0x9e, 0xf2, 0xd4, 0x0a, 0xf6, 0xd3, 0x11, 0x9e, 0x42, 0x0f, 0x62, 0xd2,
+  0xfe, 0x69, 0xfa, 0x7e, 0x57, 0xe4, 0x2f, 0x19, 0xc6, 0x3f, 0x5d, 0xab,
+  0xdf, 0x59, 0xf1, 0x99, 0x7b, 0xdd, 0x7b, 0x06, 0x5e, 0xbd, 0xf2, 0xbf,
+  0x1e, 0xa5, 0xef, 0x66, 0x5a, 0x95, 0xd4, 0x42, 0x01, 0x3b, 0x6c, 0xd5,
+  0x0d, 0x52, 0x4b, 0xa9, 0xb3, 0x78, 0x8f, 0x51, 0xa2, 0x19, 0xda, 0x78,
+  0xbd, 0x40, 0x41, 0xc4, 0xb7, 0xf1, 0xfe, 0xf4, 0x36, 0x53, 0xd7, 0x08,
+  0x88, 0xd1, 0xac, 0xf7, 0xc0, 0xde, 0x8d, 0xb2, 0x87, 0xc5, 0x80, 0x9c,
+  0x30, 0x5b, 0xe0, 0x25, 0xa1, 0x16, 0xa1, 0x31, 0x5a, 0x79, 0x2a, 0xbf,
+  0x7a, 0xa1, 0x42, 0x4c, 0x60, 0x14, 0x9a, 0xaf, 0x92, 0x2e, 0xa5, 0x4c,
+  0x33, 0xad, 0x8c, 0xe3, 0xa7, 0xc0, 0x77, 0x0f, 0x79, 0x11, 0x52, 0x60,
+  0xa4, 0x8a, 0x0b, 0x4d, 0x68, 0x0b, 0x3f, 0xce, 0xbf, 0x77, 0x5f, 0x13,
+  0x5f, 0x5c, 0x82, 0x44, 0xb9, 0x5a, 0x4e, 0x12, 0xb2, 0x29, 0x5a, 0xa0,
+  0x52, 0x83, 0x61, 0x60, 0xe0, 0x21, 0x1a, 0x8f, 0xf0, 0x00, 0x1f, 0x67,
+  0x8b, 0x39, 0x69, 0x86, 0xa9, 0x4d, 0xe5, 0x56, 0x84, 0x2b, 0x06, 0xf5,
+  0xa1, 0x11, 0x6b, 0x9e, 0xd5, 0x98, 0x27, 0x9a, 0x03, 0xb3, 0x0e, 0x88,
+  0x40, 0x79, 0x6e, 0xe2, 0xb9, 0x97, 0x79, 0x2d, 0x8e, 0x65, 0x6f, 0xd5,
+  0xf4, 0x03, 0xcc, 0x1b, 0x5a, 0xc6, 0xb6, 0x46, 0xa3, 0x5d, 0x4a, 0xcf,
+  0x63, 0x58, 0x8d, 0x77, 0x49, 0x35, 0xe8, 0x20, 0x97, 0x20, 0x88, 0xfb,
+  0xa6, 0x93, 0xdb, 0x20, 0x5e, 0xaa, 0x25, 0xcc, 0x69, 0x7d, 0x5a, 0x01,
+  0xd2, 0x1a, 0x0d, 0xc1, 0x14, 0xbf, 0x49, 0xf2, 0xb4, 0x43, 0x42, 0xbe,
+  0x31, 0x14, 0xc4, 0xa9, 0xab, 0x4c, 0xa0, 0x9f, 0x46, 0x8a, 0x9e, 0x33,
+  0x8d, 0x7b, 0xe9, 0xa7, 0x43, 0x8f, 0x27, 0x16, 0xfb, 0x61, 0xd7, 0x53,
+  0x8c, 0xeb, 0x1d, 0x0f, 0x28, 0xd6, 0xcf, 0x3e, 0x9c, 0xfc, 0xac, 0x9c,
+  0xf3, 0xad, 0xe2, 0x9b, 0x9b, 0xd9, 0xd7, 0xd6, 0x6b, 0x90, 0x57, 0x41,
+  0x4d, 0x32, 0x00, 0xbf, 0x3e, 0x42, 0x81, 0x56, 0x34, 0xb9, 0x79, 0x2b,
+  0xb8, 0xd0, 0xd7, 0xc1, 0xb2, 0x2e, 0xbb, 0xb6, 0x25, 0x83, 0xbd, 0xd8,
+  0x46, 0x17, 0x8d, 0xcc, 0xa0, 0xb0, 0x2a, 0x01, 0x41, 0x11, 0xa5, 0x11,
+  0x14, 0x4d, 0x72, 0x90, 0xc8, 0x04, 0xf4, 0x1e, 0xcf, 0x48, 0x12, 0xa0,
+  0x44, 0x48, 0x11, 0x5b, 0x4a, 0xe7, 0x83, 0xd2, 0x4b, 0x19, 0x76, 0x4e,
+  0x03, 0x57, 0x74, 0xd5, 0x98, 0x79, 0xd8, 0x19, 0x08, 0x2b, 0xfc, 0xba,
+  0x56, 0x3f, 0xab, 0x77, 0xa7, 0x7c, 0x19, 0xfe, 0x19, 0x28, 0x11, 0xbc,
+  0x47, 0x2d, 0xfc, 0xae, 0x81, 0x92, 0x9d, 0x33, 0xc9, 0xf7, 0xc6, 0x51,
+  0x9b, 0x34, 0xe7, 0x7c, 0x6a, 0xe4, 0xd9, 0xdf, 0x67, 0xc0, 0x01, 0xc5,
+  0xc4, 0x96, 0x0a, 0x91, 0xbe, 0xc7, 0xe4, 0xf4, 0x8e, 0xc7, 0x27, 0xc3,
+  0x59, 0x2b, 0xb0, 0x71, 0xfa, 0xbe, 0x65, 0x64, 0xbb, 0xcb, 0x35, 0x2d,
+  0x33, 0x1c, 0xd2, 0x26, 0xf4, 0xfa, 0xd5, 0x87, 0xa2, 0x51, 0x1a, 0xa9,
+  0xc7, 0xcc, 0x54, 0x83, 0xb1, 0x6c, 0xc4, 0x04, 0xab, 0x9f, 0x09, 0xfe,
+  0x86, 0x51, 0xbf, 0xe5, 0xd7, 0xdd, 0x1e, 0x14, 0xff, 0xaa, 0xd2, 0xd4,
+  0x58, 0x09, 0x84, 0x93, 0xf1, 0x6d, 0x73, 0x5f, 0xaa, 0x37, 0x12, 0xca,
+  0x16, 0x94, 0x00, 0x06, 0x7f, 0xdd, 0x0c, 0x6a, 0x0c, 0x12, 0xdb, 0xa6,
+  0xcc, 0xb5, 0xef, 0x34, 0x53, 0x92, 0x65, 0x79, 0xd7, 0x2d, 0x60, 0x0c,
+  0xf7, 0xcb, 0x0c, 0x20, 0x13, 0xe3, 0xaf, 0x6a, 0x9e, 0x4b, 0xcf, 0xdf,
+  0x96, 0xf2, 0xd4, 0x82, 0xbf, 0xe6, 0xfb, 0x88, 0x14, 0x46, 0xd5, 0x94,
+  0x7c, 0x9d, 0xd2, 0x11, 0x01, 0xc0, 0x21, 0x1a, 0x94, 0xed, 0xba, 0x98,
+  0xc3, 0x32, 0xa0, 0x84, 0xcb, 0xa4, 0x20, 0x2b, 0x2d, 0x1c, 0x19, 0xc1,
+  0x62, 0xe8, 0x26, 0xac, 0x09, 0xad, 0x4a, 0x0d, 0xd7, 0xad, 0xfe, 0xbf,
+  0x35, 0x8f, 0xb5, 0x47, 0x52, 0x79, 0x96, 0xad, 0xe3, 0xa6, 0xe2, 0x8f,
+  0x39, 0xfb, 0x6e, 0xc5, 0x72, 0xf6, 0x14, 0xd6, 0x92, 0x76, 0x9d, 0x85,
+  0xe6, 0xd9, 0xc4, 0xe7, 0x08, 0xdb, 0x75, 0xb7, 0x03, 0x4a, 0x35, 0x83,
+  0x4e, 0x5f, 0x18, 0xf8, 0x15, 0x0c, 0xbf, 0x95, 0x4e, 0x36, 0x7e, 0xaa,
+  0x61, 0x7b, 0xf3, 0xe7, 0xc6, 0xc7, 0x56, 0x36, 0x4c, 0xb9, 0xef, 0x77,
+  0xba, 0x99, 0x5c, 0x9e, 0xac, 0xf3, 0xbc, 0xa2, 0xfb, 0xd8, 0x59, 0x6c,
+  0x5a, 0x05, 0x52, 0xbf, 0x33, 0x48, 0xd5, 0xf3, 0x97, 0x86, 0xfd, 0xd7,
+  0x15, 0x5b, 0xe5, 0xe6, 0x04, 0x04, 0xf1, 0x8d, 0xa3, 0x10, 0x01, 0xba,
+  0xa7, 0xa3, 0x1b, 0x4b, 0x6e, 0xae, 0xaf, 0x2f, 0x05, 0x06, 0xdf, 0x2b,
+  0xd2, 0x1b, 0x89, 0xc9, 0x8e, 0xca, 0x19, 0x2a, 0xaa, 0xd2, 0x58, 0x77,
+  0x4b, 0x23, 0x5b, 0x1c, 0x61, 0x04, 0x7a, 0xe1, 0xbd, 0x47, 0x78, 0xcd,
+  0x9c, 0xf6, 0x55, 0xf5, 0xa6, 0xb6, 0x60, 0x92, 0x2e, 0x26, 0x08, 0x15,
+  0x83, 0x30, 0x16, 0x50, 0x21, 0x5c, 0x0f, 0xfd, 0x06, 0xd5, 0x08, 0x80,
+  0x34, 0x44, 0xd5, 0x56, 0x79, 0xaa, 0x82, 0x16, 0x57, 0x6b, 0x3e, 0x3c,
+  0xfa, 0xec, 0x60, 0xbf, 0x36, 0x39, 0x78, 0xc5, 0xdc, 0xdd, 0x23, 0xe9,
+  0x62, 0x75, 0x97, 0x74, 0x0d, 0xeb, 0xe3, 0x68, 0x98, 0x2d, 0xc2, 0x97,
+  0x5e, 0x69, 0x72, 0xd1, 0xb2, 0x33, 0xa7, 0x7c, 0x7a, 0x51, 0x95, 0x41,
+  0x39, 0x4d, 0xb1, 0x41, 0xc1, 0x04, 0x10, 0x38, 0x84, 0x04, 0x21, 0x25,
+  0xd5, 0x45, 0x94, 0xa0, 0x48, 0xff, 0x40, 0x17, 0xc8, 0x6a, 0x73, 0xfc,
+  0x5c, 0x75, 0x4b, 0x39, 0x79, 0x56, 0xab, 0xd4, 0x3d, 0x8b, 0xad, 0x58,
+  0xb1, 0xd9, 0x83, 0xf3, 0xcc, 0xe1, 0xb9, 0xb6, 0x45, 0xc5, 0xdd, 0x31,
+  0x63, 0xc7, 0x4c, 0x1b, 0x67, 0x91, 0x2e, 0x7e, 0x9f, 0xa9, 0x45, 0x23,
+  0xf1, 0x1c, 0x72, 0x9e, 0x23, 0x6a, 0xc3, 0x12, 0x88, 0x73, 0x23, 0x33,
+  0xe0, 0xd6, 0x08, 0x86, 0x40, 0x3a, 0x4e, 0x8e, 0xc4, 0xba, 0x35, 0x22,
+  0x72, 0x9a, 0x2a, 0x55, 0x50, 0x56, 0x06, 0x49, 0x21, 0x37, 0x2a, 0x25,
+  0xf5, 0x61, 0xc0, 0xfd, 0x9e, 0xed, 0x17, 0x5c, 0x51, 0x1c, 0x61, 0xc0,
+  0x21, 0x1a, 0x94, 0xcd, 0xa2, 0x89, 0x69, 0xa2, 0xb0, 0xd4, 0x48, 0x61,
+  0x28, 0x62, 0x32, 0xe4, 0x4a, 0x41, 0xa2, 0x25, 0x5d, 0xa0, 0xcb, 0x2c,
+  0x0c, 0x4a, 0x80, 0x27, 0x06, 0xc0, 0x47, 0x01, 0xcc, 0x55, 0x10, 0x7d,
+  0x4a, 0xea, 0x66, 0x80, 0xe9, 0xca, 0x81, 0x54, 0x89, 0x62, 0x91, 0x2a,
+  0x4c, 0x2f, 0x08, 0xaa, 0xe5, 0x05, 0x0e, 0x46, 0x53, 0x54, 0x57, 0x19,
+  0xb9, 0x65, 0x61, 0x64, 0xad, 0x61, 0x38, 0x70, 0xed, 0xed, 0x95, 0x1b,
+  0x47, 0xf0, 0xc8, 0xfb, 0x37, 0x3b, 0xa6, 0x0a, 0x94, 0x5d, 0x97, 0x34,
+  0x94, 0xc1, 0x84, 0xcf, 0x1a, 0xdd, 0xba, 0x8e, 0xb0, 0x04, 0x03, 0x4b,
+  0xd1, 0x4b, 0x77, 0x5f, 0xb6, 0x52, 0xbe, 0xe8, 0x90, 0xe0, 0x71, 0xbc,
+  0x81, 0x84, 0x68, 0x5f, 0x94, 0xfc, 0x47, 0xe7, 0x39, 0xb3, 0x5a, 0x66,
+  0x55, 0x2b, 0x66, 0xa3, 0xa5, 0x72, 0x7a, 0x12, 0xe4, 0x26, 0x5d, 0xa4,
+  0x4b, 0x34, 0xca, 0xaa, 0x37, 0xb4, 0xc2, 0x8c, 0xd0, 0x0b, 0x9c, 0x13,
+  0x4f, 0x8f, 0x9d, 0x1b, 0xd1, 0x3b, 0x37, 0x23, 0xc7, 0xb0, 0x55, 0x8c,
+  0x9e, 0x5e, 0xed, 0x81, 0xbe, 0x0a, 0xcd, 0x50, 0x79, 0x2d, 0x5a, 0xc0,
+  0xe0, 0xd7, 0x67, 0x16, 0x91, 0x93, 0x4b, 0x56, 0xa6, 0xb9, 0x80, 0x5e,
+  0x2a, 0xa0, 0x2c, 0x2b, 0x57, 0x0b, 0x4a, 0x51, 0x91, 0x2d, 0x53, 0x9e,
+  0x6c, 0x72, 0xf2, 0xbb, 0xde, 0x80, 0x10, 0x01, 0x60, 0x3b, 0x16, 0x3b,
+  0x55, 0x6b, 0xa8, 0xb2, 0x16, 0xea, 0x81, 0x3b, 0x91, 0x4d, 0x1c, 0x0f,
+  0x94, 0xe6, 0x81, 0xd2, 0x51, 0x91, 0x9c, 0x1a, 0xd5, 0x08, 0xd3, 0x76,
+  0x3d, 0x07, 0xbf, 0xab, 0x5c, 0xb6, 0x25, 0x23, 0x90, 0xf4, 0x23, 0x64,
+  0x8d, 0x10, 0x92, 0x17, 0x90, 0x23, 0x0b, 0x6b, 0x88, 0x6a, 0xbd, 0xf7,
+  0x0a, 0x46, 0x60, 0x99, 0xa7, 0xb1, 0x28, 0x48, 0x10, 0xa1, 0x2b, 0x7a,
+  0x4a, 0x96, 0xda, 0x55, 0x13, 0xae, 0x45, 0x16, 0x92, 0xea, 0xd3, 0x09,
+  0x72, 0xaf, 0x50, 0x68, 0xef, 0xf2, 0x58, 0x1d, 0xea, 0x60, 0xb0, 0x89,
+  0x8b, 0x5d, 0x63, 0x09, 0xe2, 0xd3, 0x7f, 0xb5, 0xf1, 0xf8, 0x79, 0x33,
+  0x7a, 0x23, 0x06, 0x2b, 0x2c, 0xbd, 0x47, 0x6d, 0x92, 0x35, 0x31, 0x74,
+  0x8a, 0x69, 0x74, 0x94, 0xc5, 0x69, 0x10, 0x44, 0xd1, 0x72, 0x35, 0x62,
+  0x96, 0x6d, 0x9b, 0x79, 0xff, 0xdb, 0xfd, 0xff, 0xdf, 0xfe, 0x6f, 0xcf,
+  0xf1, 0xfa, 0x3c, 0x33, 0xb8, 0x31, 0xc0, 0x21, 0x1a, 0x8f, 0x78, 0x4e,
+  0x0f, 0xcf, 0xff, 0x3b, 0x4f, 0xb0, 0xd1, 0x18, 0xc4, 0x21, 0x72, 0x19,
+  0x9e, 0x72, 0x65, 0xe5, 0x55, 0x92, 0xa2, 0xe5, 0x49, 0x5a, 0x6b, 0xad,
+  0xe0, 0x69, 0xd5, 0x85, 0x93, 0xfe, 0x0f, 0xf2, 0x73, 0x7f, 0xa2, 0xe9,
+  0x5f, 0xd0, 0xfb, 0xdf, 0xff, 0xfa, 0x29, 0xae, 0x47, 0x5b, 0x83, 0xfe,
+  0xbc, 0x32, 0xf7, 0xfa, 0x77, 0x96, 0xc7, 0xc9, 0xba, 0xb0, 0xa6, 0x96,
+  0x54, 0x6d, 0xae, 0x6a, 0xf5, 0x06, 0x6e, 0x05, 0xc5, 0x74, 0x5b, 0x88,
+  0xd5, 0xd8, 0xee, 0xf0, 0x75, 0xe0, 0xcc, 0x2e, 0x31, 0x35, 0x4d, 0x26,
+  0x5b, 0x50, 0xa0, 0xd6, 0xde, 0xed, 0x2c, 0xe5, 0x55, 0xee, 0xa2, 0x94,
+  0x69, 0x77, 0xb9, 0x82, 0xab, 0x64, 0x2c, 0xe6, 0xd2, 0xf2, 0x50, 0x07,
+  0x53, 0x14, 0x3c, 0xce, 0x0c, 0xad, 0x83, 0x09, 0xac, 0x93, 0xf7, 0xd7,
+  0xf5, 0x2f, 0x0f, 0x8f, 0x9b, 0xbe, 0xc3, 0xda, 0x91, 0x60, 0x14, 0x12,
+  0x98, 0xfe, 0x60, 0xbb, 0xc9, 0x28, 0x53, 0x5b, 0x57, 0xca, 0x30, 0xc7,
+  0x1d, 0xb9, 0x74, 0x23, 0x39, 0x78, 0x42, 0x00, 0xa7, 0xd3, 0x41, 0x6b,
+  0xfe, 0xf2, 0x8e, 0x77, 0x38, 0x50, 0x58, 0x10, 0xe5, 0xad, 0xfb, 0xaa,
+  0xef, 0x91, 0x34, 0xb3, 0x56, 0x91, 0x98, 0xaa, 0xf6, 0x90, 0x11, 0x00,
+  0x14, 0x44, 0x31, 0x72, 0xdf, 0xb7, 0x94, 0x18, 0x6f, 0x00, 0x99, 0xa4,
+  0x59, 0xd8, 0x76, 0x44, 0x08, 0x10, 0x82, 0x01, 0x40, 0x90, 0x80, 0x24,
+  0x10, 0x10, 0x98, 0x46, 0x46, 0x37, 0x7c, 0xd7, 0xb7, 0x68, 0x8d, 0x57,
+  0xc5, 0x3c, 0x9a, 0x68, 0x16, 0xce, 0x99, 0x70, 0xc7, 0x6e, 0x19, 0x2d,
+  0xe3, 0xbc, 0xd7, 0xac, 0x9e, 0x2e, 0xa2, 0xaf, 0x6c, 0xc1, 0x61, 0x3f,
+  0x2f, 0xf0, 0xf6, 0x38, 0x3e, 0xc7, 0x8b, 0xd3, 0x73, 0x7b, 0x2f, 0xae,
+  0xc9, 0x80, 0xf5, 0xc7, 0xc2, 0x92, 0x06, 0x43, 0xa4, 0x7c, 0x59, 0x08,
+  0x6d, 0xbe, 0x7b, 0xb2, 0xc8, 0x00, 0x1f, 0x1c, 0xb6, 0xbc, 0xf4, 0x6c,
+  0x49, 0xf6, 0x73, 0x0b, 0x37, 0xcc, 0x19, 0x29, 0x63, 0xb1, 0xdf, 0x7f,
+  0x94, 0xc4, 0x38, 0xc7, 0xff, 0x72, 0xc0, 0x35, 0xd7, 0x64, 0x3b, 0x10,
+  0xf4, 0xc4, 0x73, 0xcc, 0x70, 0x3c, 0xc1, 0xc8, 0x29, 0xcc, 0xc3, 0x49,
+  0xb9, 0xb7, 0xe6, 0x11, 0xa3, 0xe9, 0xa5, 0xea, 0x8e, 0x5b, 0xd9, 0xbc,
+  0x76, 0x7c, 0xe3, 0x70, 0x62, 0x33, 0xef, 0x03, 0x15, 0x0d, 0xf7, 0x57,
+  0x70, 0x2b, 0xd5, 0x75, 0x49, 0x30, 0x08, 0x78, 0xdd, 0x92, 0x20, 0x5d,
+  0xfa, 0xc6, 0xe3, 0x6a, 0xe2, 0x60, 0x00, 0x62, 0x00, 0xd7, 0xb5, 0xa8,
+  0xa4, 0x03, 0x07, 0x21, 0x1a, 0x8f, 0xd0, 0x07, 0x0a, 0x00, 0x0f, 0x43,
+  0x4b, 0x83, 0xd0, 0x98, 0xc3, 0x07, 0x0a, 0xe7, 0x4b, 0x8a, 0x72, 0xb8,
+  0x46, 0x85, 0x5d, 0xad, 0xe7, 0x18, 0x3a, 0x74, 0x0e, 0x7b, 0xcd, 0x73,
+  0x6f, 0x2c, 0xf5, 0xd2, 0x5d, 0x77, 0xe8, 0xbf, 0x7b, 0xc9, 0x85, 0xdb,
+  0x6d, 0x23, 0x75, 0x47, 0x55, 0x5b, 0x80, 0x90, 0xcb, 0x5d, 0x85, 0x48,
+  0xdb, 0xc9, 0x8d, 0x55, 0xc7, 0x5d, 0xa3, 0xb7, 0xa5, 0xe0, 0xc0, 0xfc,
+  0xeb, 0x06, 0xd1, 0xed, 0x3f, 0xed, 0x36, 0xdb, 0xaf, 0xba, 0xdf, 0x43,
+  0x87, 0xb9, 0xc5, 0x7d, 0xf4, 0x07, 0x1d, 0xc7, 0x79, 0x4a, 0x9d, 0x25,
+  0x18, 0x8d, 0x1d, 0xd7, 0xa7, 0x3d, 0x92, 0x37, 0x75, 0x20, 0x9a, 0x85,
+  0xd0, 0xe9, 0x94, 0x06, 0xe4, 0xac, 0xe6, 0xae, 0x96, 0xfd, 0x55, 0x77,
+  0xf3, 0x71, 0x0b, 0x1c, 0xe4, 0x3a, 0x1e, 0xdf, 0xee, 0xc6, 0xd0, 0x20,
+  0x1c, 0x1e, 0x0c, 0x7a, 0x7f, 0x6c, 0xfb, 0xb3, 0xf2, 0x9c, 0xd4, 0xbd,
+  0x85, 0x9f, 0xcb, 0x2f, 0xdb, 0x81, 0x10, 0x8d, 0xd2, 0x00, 0x4b, 0x47,
+  0x3d, 0x2f, 0xde, 0x3d, 0x3a, 0xdf, 0x88, 0x17, 0x85, 0x69, 0xe2, 0x32,
+  0xd7, 0xfd, 0xb6, 0x10, 0x56, 0x70, 0x42, 0xab, 0x45, 0xd2, 0xdc, 0x05,
+  0xe6, 0x00, 0x7c, 0xb4, 0x2f, 0x66, 0xdf, 0xbc, 0x5f, 0x2f, 0xd7, 0xfc,
+  0x44, 0x02, 0x6a, 0xe1, 0x46, 0x81, 0xb1, 0x50, 0xc2, 0x61, 0xb7, 0x76,
+  0xc9, 0x8b, 0xc4, 0x8b, 0x5a, 0x6b, 0x26, 0x90, 0x01, 0xaf, 0xa8, 0x19,
+  0x13, 0x4a, 0xc0, 0xb1, 0x01, 0x1d, 0x67, 0xe6, 0x36, 0xd6, 0x5f, 0xd8,
+  0x7b, 0xce, 0x92, 0x45, 0xb7, 0x32, 0xdc, 0x67, 0x9e, 0xac, 0x98, 0xcd,
+  0x97, 0xa2, 0xd2, 0x7f, 0x3f, 0xb6, 0x22, 0x8a, 0xb7, 0xe6, 0xe6, 0xab,
+  0x8e, 0x63, 0x4a, 0xaf, 0xf6, 0xbf, 0x13, 0xbc, 0xe5, 0x42, 0x6d, 0xf8,
+  0xdb, 0xa1, 0xba, 0x85, 0x41, 0xae, 0xb4, 0x40, 0x23, 0x00, 0x8a, 0x61,
+  0x47, 0x18, 0x71, 0x40, 0x9e, 0x27, 0x3a, 0xfd, 0x4f, 0x5d, 0xbc, 0xef,
+  0x1c, 0x7b, 0x09, 0xc6, 0xae, 0x6f, 0x98, 0xaa, 0xa3, 0x01, 0xf0, 0x9a,
+  0x86, 0x81, 0x95, 0xb3, 0xca, 0xd6, 0xb1, 0x22, 0x88, 0x90, 0x25, 0xf6,
+  0x5b, 0x0a, 0x4b, 0x71, 0x40, 0x21, 0xb5, 0x6c, 0xd2, 0x91, 0x27, 0x8c,
+  0x44, 0xce, 0x5a, 0x64, 0x81, 0x6d, 0x06, 0x30, 0x0a, 0x81, 0x94, 0x1f,
+  0x78, 0x6c, 0x7e, 0x81, 0x3f, 0xf4, 0xb7, 0x53, 0x53, 0xd3, 0x2c, 0x97,
+  0x94, 0xb6, 0x15, 0xe1, 0x86, 0xbc, 0x3a, 0x5f, 0xc3, 0x6f, 0x8c, 0xad,
+  0x67, 0xe3, 0x8b, 0x69, 0x9e, 0x7b, 0x1d, 0xda, 0x2c, 0x0a, 0x2c, 0xab,
+  0xca, 0xaf, 0xfd, 0xf2, 0xe3, 0xf7, 0xdd, 0x34, 0xc3, 0x76, 0xd7, 0xd5,
+  0xdf, 0xe3, 0x9d, 0xbb, 0xe2, 0xc9, 0x02, 0x3d, 0xda, 0x57, 0xe8, 0xd9,
+  0x43, 0x64, 0xf7, 0x2c, 0xec, 0x4e, 0x7d, 0x8c, 0xc2, 0xee, 0x58, 0x60,
+  0x30, 0x9e, 0x07, 0xea, 0x2d, 0xa7, 0x09, 0x7a, 0xf1, 0xb5, 0x48, 0x70,
+  0x5d, 0xab, 0x6a, 0x6d, 0x61, 0xb7, 0xfe, 0xc0, 0x07, 0xce, 0x01, 0xf2,
+  0xfd, 0x62, 0xf9, 0xbf, 0xa0, 0x03, 0x07, 0x21, 0x1a, 0x8b, 0xc8, 0x07,
+  0x0c, 0x00, 0x01, 0x3d, 0x66, 0xa6, 0xa9, 0x18, 0x43, 0x15, 0x56, 0xf3,
+  0xe8, 0x06, 0xe8, 0x16, 0x43, 0x81, 0xfa, 0xf6, 0xa2, 0xf4, 0x68, 0x16,
+  0xb6, 0x76, 0x15, 0xf3, 0x34, 0xc4, 0xe1, 0x5e, 0x78, 0xc3, 0x10, 0x99,
+  0x3b, 0x0a, 0x17, 0x28, 0xd5, 0x20, 0xe3, 0xb3, 0xa5, 0xc6, 0x4d, 0x1a,
+  0x4d, 0x4f, 0x1b, 0x02, 0x98, 0xb0, 0x32, 0xc3, 0x65, 0x61, 0xcc, 0x3a,
+  0xcf, 0x90, 0x6f, 0x2c, 0x00, 0x34, 0xa5, 0xeb, 0xb4, 0xa3, 0xf0, 0x37,
+  0x49, 0x19, 0x20, 0x2e, 0xe7, 0x78, 0x06, 0x16, 0x10, 0x27, 0x35, 0x4a,
+  0xf3, 0x85, 0xf2, 0x77, 0x74, 0xb3, 0x6f, 0xaf, 0x2c, 0xca, 0xc8, 0x97,
+  0x18, 0x4a, 0x61, 0x5a, 0x9f, 0x51, 0x25, 0x94, 0xa9, 0xc5, 0x72, 0xbe,
+  0x1a, 0x83, 0x1e, 0x7c, 0xd9, 0x91, 0xb5, 0xa2, 0x47, 0x21, 0x86, 0x49,
+  0xd8, 0x27, 0x95, 0x10, 0x38, 0x8e, 0x18, 0x98, 0x82, 0xf6, 0x8c, 0x78,
+  0xd4, 0xb2, 0xc8, 0xee, 0xa8, 0x84, 0xbb, 0xf6, 0xd6, 0x9d, 0x65, 0x49,
+  0xf7, 0x9e, 0x11, 0x27, 0x83, 0x94, 0x14, 0x92, 0xb4, 0x80, 0x00, 0x00,
+  0x93, 0x51, 0x56, 0x8c, 0x0d, 0xad, 0xbb, 0x02, 0x6e, 0xe0, 0xc3, 0x82,
+  0x00, 0x50, 0xa4, 0x31, 0x50, 0x9e, 0x1c, 0xd8, 0x4d, 0xea, 0xb2, 0xd0,
+  0xbd, 0x64, 0xb0, 0x22, 0x69, 0xd0, 0x1f, 0x6e, 0x49, 0x2b, 0x54, 0xc7,
+  0x98, 0xdd, 0x6b, 0x4f, 0xaa, 0x62, 0x52, 0x89, 0xf3, 0xb1, 0xa0, 0x39,
+  0xc8, 0x45, 0x45, 0xbd, 0x72, 0xc5, 0x10, 0xbd, 0xad, 0xba, 0x63, 0xba,
+  0xb0, 0x51, 0x67, 0x99, 0xb1, 0x34, 0x77, 0xe4, 0xb6, 0x78, 0x1c, 0x35,
+  0x08, 0xfb, 0xfa, 0x01, 0x72, 0x61, 0x95, 0x38, 0x3c, 0x5b, 0xc0, 0x34,
+  0x36, 0xda, 0xfe, 0x4b, 0x88, 0xde, 0x99, 0x4a, 0x6d, 0x30, 0x0a, 0x8d,
+  0x65, 0x3f, 0x7e, 0xaa, 0x4f, 0x43, 0x0c, 0x18, 0xb0, 0x4c, 0x32, 0x84,
+  0x72, 0x73, 0xf6, 0x03, 0xdc, 0xf9, 0x08, 0xb2, 0x03, 0x22, 0xcc, 0xa1,
+  0x07, 0x63, 0xb3, 0x45, 0x85, 0x35, 0xf1, 0x3f, 0xb1, 0xa1, 0x50, 0x6b,
+  0x75, 0x0f, 0x0a, 0x1a, 0x88, 0x9f, 0x5b, 0x4d, 0xda, 0xe2, 0x22, 0x75,
+  0xce, 0x09, 0xdf, 0xaf, 0x40, 0xb7, 0xef, 0x47, 0x6a, 0x48, 0x43, 0x7e,
+  0xa7, 0x0a, 0xd1, 0x51, 0xe3, 0xa5, 0xbc, 0x8b, 0x1b, 0x9f, 0x82, 0x85,
+  0xd0, 0x41, 0x05, 0xb0, 0x83, 0xa2, 0x30, 0x73, 0x02, 0x44, 0x00, 0x8e,
+  0x2b, 0xf1, 0xbc, 0xca, 0x82, 0xd8, 0x76, 0xad, 0x11, 0x4f, 0x45, 0xf1,
+  0x7f, 0x8f, 0x43, 0xdc, 0x00, 0xe0, 0x21, 0x1a, 0x8b, 0xc0, 0x0f, 0x8f,
+  0x41, 0xcf, 0x43, 0x52, 0x64, 0x10, 0xc5, 0xaa, 0xe3, 0x16, 0x25, 0x15,
+  0x06, 0x6a, 0xc2, 0xcb, 0x3e, 0xb3, 0x05, 0xba, 0xc0, 0x07, 0xcc, 0xa8,
+  0x32, 0x3c, 0x0e, 0xfe, 0x36, 0xe3, 0xd8, 0xb9, 0x62, 0x4f, 0x41, 0xc2,
+  0x60, 0x97, 0x99, 0x91, 0xf4, 0x2e, 0x27, 0xa0, 0xcb, 0x42, 0xa8, 0xc9,
+  0xd3, 0x30, 0xd9, 0xd3, 0xcb, 0x33, 0x00, 0x53, 0x3c, 0x63, 0xc5, 0x21,
+  0x0b, 0xf8, 0x3b, 0x80, 0x56, 0x59, 0x06, 0x76, 0xaa, 0x45, 0x97, 0x08,
+  0xf6, 0x6d, 0xfc, 0x87, 0x6f, 0x6f, 0xa5, 0x1a, 0xac, 0x7a, 0x2c, 0x72,
+  0xdd, 0x54, 0x7a, 0x71, 0xd0, 0xf8, 0x78, 0xcf, 0x7d, 0xaa, 0x97, 0x9a,
+  0xc8, 0x05, 0xbc, 0x0d, 0x10, 0xe6, 0x1a, 0xef, 0x3e, 0xcf, 0xc5, 0xb3,
+  0xdc, 0x32, 0xbb, 0x63, 0xc0, 0x07, 0x41, 0x4f, 0xc0, 0xef, 0x38, 0x69,
+  0x8d, 0x58, 0x72, 0x6f, 0xc0, 0xca, 0x24, 0x03, 0xe0, 0xa0, 0x45, 0x92,
+  0xd4, 0x49, 0x28, 0xd8, 0x00, 0x16, 0x61, 0x94, 0x2c, 0xcd, 0x24, 0xff,
+  0x94, 0xfe, 0x39, 0xa5, 0x42, 0x23, 0xe7, 0x2d, 0x16, 0xb4, 0xff, 0x55,
+  0x77, 0xfe, 0xf7, 0xc1, 0xa6, 0x8e, 0x26, 0xf0, 0x85, 0xe8, 0x00, 0x05,
+  0xb9, 0xe4, 0x0e, 0x3e, 0x11, 0x80, 0x52, 0xe0, 0x4f, 0xdc, 0x10, 0x90,
+  0x31, 0x22, 0x04, 0x46, 0x42, 0x14, 0x9a, 0x73, 0x9a, 0x37, 0x74, 0x43,
+  0x77, 0xc5, 0x20, 0xe0, 0x59, 0x3a, 0x0d, 0x68, 0x15, 0x2d, 0xa7, 0xa4,
+  0x59, 0xec, 0x75, 0xaa, 0x73, 0x78, 0x17, 0xdd, 0x31, 0xd7, 0xc6, 0xe9,
+  0x09, 0xbd, 0xf4, 0x79, 0x62, 0x1f, 0x72, 0x4e, 0x6f, 0xbb, 0xa0, 0x53,
+  0xc5, 0x4c, 0x68, 0x3d, 0x6e, 0x7d, 0x57, 0x23, 0xc7, 0x32, 0xb4, 0x36,
+  0xec, 0x2f, 0x0a, 0xf1, 0xda, 0x73, 0x99, 0xbf, 0xcd, 0x19, 0x39, 0x8c,
+  0x4c, 0x20, 0xae, 0xf5, 0x40, 0x85, 0xda, 0x32, 0xb7, 0xf4, 0x68, 0x3e,
+  0x98, 0x94, 0x4c, 0x12, 0x1f, 0xa4, 0xf6, 0x04, 0x57, 0x47, 0x1b, 0xca,
+  0xfa, 0xa8, 0x8d, 0x98, 0x4c, 0x99, 0x92, 0xc9, 0x92, 0x10, 0x0b, 0x09,
+  0x0c, 0xab, 0xe9, 0x75, 0xd7, 0x94, 0x81, 0xac, 0x45, 0x87, 0xf0, 0xc4,
+  0xac, 0x75, 0xb4, 0xc5, 0x3b, 0x45, 0x8e, 0xdc, 0x94, 0xe5, 0xd2, 0x65,
+  0xc3, 0xe9, 0xee, 0x9c, 0x40, 0x25, 0xb5, 0x19, 0x12, 0x68, 0xd8, 0x9d,
+  0xa2, 0x45, 0x84, 0x22, 0x14, 0x8d, 0x47, 0x28, 0xe9, 0x7b, 0xaa, 0x6b,
+  0x5b, 0xc2, 0x34, 0x8c, 0xe0, 0x60, 0x0a, 0x8c, 0x77, 0x07, 0x21, 0x1a,
+  0x8f, 0xd6, 0x1f, 0xcf, 0xe7, 0xfb, 0x37, 0x66, 0xa5, 0x58, 0x68, 0x50,
+  0x74, 0x11, 0xb9, 0x4a, 0x73, 0x3a, 0xad, 0xdd, 0xa9, 0x0a, 0xd5, 0x4b,
+  0x55, 0xc2, 0x17, 0x83, 0x4e, 0xa0, 0x6a, 0xfc, 0xbc, 0xda, 0xe0, 0xfe,
+  0x97, 0xd5, 0x12, 0x68, 0x1c, 0x1b, 0xdf, 0x9d, 0x21, 0x18, 0x7d, 0xa5,
+  0x75, 0xc4, 0x6a, 0x2a, 0x0a, 0x78, 0x43, 0x0d, 0xd1, 0x92, 0x49, 0x00,
+  0xb1, 0x94, 0x6e, 0xa0, 0x4a, 0x6d, 0x84, 0x94, 0x9b, 0xfc, 0xd3, 0x53,
+  0xaf, 0x1c, 0xf4, 0xee, 0x32, 0xe5, 0x2c, 0x01, 0x41, 0xc5, 0x19, 0xbb,
+  0x80, 0xab, 0xdb, 0xb2, 0x5e, 0x73, 0x0b, 0x91, 0xb4, 0x88, 0xc6, 0xe1,
+  0x59, 0x75, 0x77, 0x9d, 0xb1, 0x74, 0x4e, 0xab, 0x64, 0x6a, 0xd1, 0x37,
+  0xad, 0x90, 0xc3, 0x8b, 0x28, 0x6c, 0x2a, 0x90, 0x9d, 0xbc, 0x42, 0x94,
+  0x20, 0xc0, 0xa4, 0xbc, 0x69, 0xd0, 0x9e, 0x95, 0xfd, 0x1a, 0x64, 0x29,
+  0xeb, 0xa4, 0xc6, 0x8b, 0xf1, 0x43, 0x10, 0x50, 0x11, 0x79, 0x07, 0xdf,
+  0xfb, 0xe7, 0x53, 0x7b, 0x58, 0x26, 0x73, 0x08, 0x63, 0xa7, 0x1e, 0x5e,
+  0xe5, 0x98, 0xd5, 0x97, 0xaf, 0xdb, 0xf6, 0x1c, 0xc0, 0x00, 0x05, 0x46,
+  0xdc, 0xf0, 0x4e, 0xfb, 0x7a, 0x85, 0x11, 0x09, 0x39, 0x77, 0x86, 0x07,
+  0x13, 0x8e, 0x9d, 0xad, 0xa9, 0x52, 0x35, 0x40, 0x0a, 0x00, 0x03, 0x34,
+  0x52, 0xc6, 0x4f, 0x0b, 0xa3, 0x72, 0xf2, 0xe1, 0x00, 0x4d, 0xdb, 0x98,
+  0xa0, 0x18, 0x19, 0x10, 0x46, 0x81, 0x11, 0x80, 0xc4, 0x60, 0x25, 0x53,
+  0x95, 0xa8, 0x68, 0xa6, 0x74, 0x8d, 0x21, 0x7a, 0x34, 0xd3, 0x41, 0x4d,
+  0x41, 0xe5, 0xa5, 0xa6, 0x19, 0x8d, 0xce, 0x50, 0x25, 0x3f, 0x4e, 0xbb,
+  0xc8, 0xdb, 0x2e, 0x0b, 0x4c, 0xae, 0x59, 0x35, 0x5a, 0x61, 0xa7, 0x67,
+  0x40, 0xfe, 0xed, 0xc4, 0x3d, 0xda, 0x3a, 0x0e, 0x1d, 0x25, 0xe2, 0x39,
+  0x34, 0x3b, 0x4b, 0x0d, 0xcc, 0x3e, 0x93, 0xa5, 0xfa, 0xfc, 0x3a, 0x51,
+  0x5c, 0x9b, 0x1e, 0xb5, 0xa9, 0x02, 0xd0, 0x42, 0xb2, 0xcc, 0x5e, 0x78,
+  0x41, 0x9e, 0x08, 0xc7, 0x0c, 0xcf, 0xe5, 0x43, 0xbd, 0xa9, 0xd5, 0x03,
+  0xa5, 0xb6, 0xd1, 0x94, 0x18, 0x30, 0x18, 0xcd, 0x9d, 0xfc, 0xf9, 0x3e,
+  0x16, 0xa6, 0x94, 0xd2, 0xda, 0x58, 0x20, 0x62, 0xe7, 0x3e, 0x8c, 0x60,
+  0x60, 0x28, 0x89, 0x13, 0x05, 0xeb, 0x25, 0xdb, 0x76, 0xc4, 0xba, 0x12,
+  0xf4, 0xf9, 0x3b, 0x5e, 0xba, 0x64, 0xb9, 0xc6, 0xcd, 0xb2, 0xd5, 0xe8,
+  0x97, 0x99, 0x12, 0x6f, 0x1f, 0xe8, 0x00, 0x04, 0xb7, 0x60, 0x0e, 0x21,
+  0x1a, 0x94, 0xcd, 0xc6, 0x8f, 0x03, 0x41, 0x99, 0x10, 0x62, 0x51, 0xce,
+  0xd6, 0xb8, 0x71, 0xc8, 0xb4, 0x5a, 0xd2, 0x2c, 0xbc, 0x16, 0xe0, 0x0d,
+  0xfb, 0xf0, 0xbb, 0xac, 0x88, 0x03, 0xde, 0xb5, 0xf7, 0xe1, 0xa0, 0x1b,
+  0xae, 0xf1, 0x5a, 0xed, 0xdd, 0xbe, 0x76, 0x9c, 0xe2, 0xe8, 0x64, 0xd9,
+  0x3c, 0xf5, 0xb0, 0xea, 0x7e, 0x7e, 0x4e, 0xb1, 0x7c, 0x3d, 0xd5, 0x3e,
+  0x02, 0x5e, 0x9d, 0xca, 0x5f, 0xa3, 0x5c, 0x83, 0x7d, 0xf3, 0x33, 0x03,
+  0x56, 0xf2, 0x9c, 0x0b, 0xdc, 0x71, 0x15, 0x7c, 0xdf, 0x06, 0xa3, 0xbe,
+  0x0d, 0x8e, 0x13, 0xa3, 0xb3, 0x2d, 0x35, 0xcd, 0x67, 0x6a, 0xec, 0x33,
+  0xfb, 0xef, 0x98, 0x50, 0x18, 0xfb, 0x04, 0xb1, 0x4c, 0x80, 0xc4, 0xdd,
+  0xa5, 0x7b, 0xab, 0x83, 0xb0, 0xc1, 0x40, 0x1b, 0xe9, 0x8f, 0xb0, 0x34,
+  0xea, 0x09, 0x06, 0x55, 0x4c, 0x90, 0xaf, 0xcc, 0x44, 0x88, 0x60, 0x44,
+  0xa0, 0xad, 0x98, 0x94, 0x9e, 0x99, 0x42, 0xd7, 0xe8, 0xbb, 0x8e, 0xba,
+  0x8a, 0xce, 0xe9, 0x81, 0x5a, 0xd8, 0xcd, 0xcd, 0x68, 0xad, 0x9b, 0x6c,
+  0x57, 0x5e, 0x86, 0xd1, 0x25, 0x3c, 0x36, 0xa0, 0x03, 0xd1, 0x14, 0x57,
+  0x97, 0x89, 0xd2, 0xa5, 0x72, 0xf8, 0x27, 0xd4, 0xbe, 0xe7, 0xe7, 0xeb,
+  0x57, 0x43, 0xf8, 0xbd, 0x1f, 0xb9, 0xab, 0x11, 0x30, 0x58, 0xe0, 0xa9,
+  0x6b, 0x56, 0xbd, 0x74, 0xfb, 0x19, 0xf5, 0x34, 0xf9, 0xcd, 0xbe, 0x9f,
+  0x9b, 0x03, 0x5a, 0x57, 0x9d, 0xa3, 0xa0, 0xb0, 0xb5, 0xc8, 0x78, 0xd8,
+  0x5d, 0xce, 0x43, 0x7e, 0xce, 0x38, 0x81, 0xb3, 0x73, 0xaa, 0xa8, 0xe1,
+  0x2c, 0x04, 0x85, 0x4d, 0x42, 0xf1, 0x82, 0xa1, 0x29, 0xed, 0x0a, 0x6f,
+  0x0d, 0x59, 0x8c, 0xd9, 0xd6, 0x00, 0x26, 0x69, 0x36, 0x48, 0x2a, 0x94,
+  0x06, 0x41, 0x01, 0x88, 0x80, 0xc2, 0x46, 0xe3, 0x6d, 0x63, 0x8a, 0x28,
+  0x07, 0x0e, 0xba, 0x74, 0x05, 0xbd, 0x3b, 0x3b, 0xce, 0x83, 0x6e, 0x9b,
+  0xfc, 0x55, 0x62, 0xb5, 0xe6, 0xfa, 0x8a, 0xb6, 0x1c, 0x74, 0xb4, 0x72,
+  0xc7, 0xd3, 0x56, 0xe2, 0x9d, 0x11, 0x76, 0x5d, 0xea, 0xc7, 0x2d, 0xbe,
+  0x2a, 0x06, 0xa6, 0x71, 0x54, 0xe0, 0x9f, 0x8d, 0xc4, 0x39, 0xb6, 0x94,
+  0x1d, 0xf0, 0x20, 0x70, 0xec, 0x63, 0x9d, 0x75, 0x40, 0x5c, 0x31, 0x4e,
+  0x64, 0xb2, 0xd5, 0xa2, 0x33, 0x83, 0x7a, 0x4e, 0xa1, 0x7d, 0x33, 0x15,
+  0xcb, 0xfd, 0xe3, 0xe1, 0xd5, 0xb0, 0x5e, 0xd4, 0xa3, 0xa1, 0x1e, 0x35,
+  0x01, 0xbe, 0x6a, 0x11, 0x21, 0xc3, 0x54, 0x8b, 0x0f, 0xdf, 0xba, 0xc5,
+  0x2d, 0x14, 0x13, 0x00, 0xe0, 0x21, 0x1a, 0x94, 0xdd, 0xca, 0x12, 0x83,
+  0x11, 0x11, 0x04, 0xc4, 0x6c, 0xdf, 0x18, 0xe9, 0x50, 0x15, 0x72, 0xa6,
+  0x9a, 0x3a, 0xe4, 0xa3, 0x50, 0x06, 0xaa, 0x98, 0x71, 0x7f, 0xae, 0x73,
+  0x27, 0x79, 0xf7, 0x56, 0xbd, 0xb4, 0x4c, 0x76, 0x0d, 0x6e, 0x0f, 0x94,
+  0x9e, 0x18, 0x37, 0x3b, 0xbb, 0x55, 0xb9, 0xfd, 0x36, 0xf3, 0x5d, 0x72,
+  0xe4, 0x08, 0x5b, 0x1a, 0x7b, 0x85, 0x90, 0x04, 0x08, 0xe3, 0x97, 0x5d,
+  0x1e, 0x1d, 0xa3, 0x63, 0x59, 0xe9, 0x62, 0x0e, 0xfc, 0xc2, 0x7c, 0x63,
+  0x96, 0x5f, 0x92, 0x5f, 0x0d, 0xec, 0xee, 0x36, 0xd9, 0xb8, 0xbe, 0xa8,
+  0x8b, 0xac, 0x35, 0x74, 0xa7, 0xfb, 0xff, 0xbe, 0x9f, 0x73, 0xbb, 0xe9,
+  0x6e, 0x6a, 0xf4, 0xcd, 0xb1, 0xe4, 0x8d, 0xd1, 0x22, 0x2b, 0xf0, 0x0e,
+  0xc3, 0x93, 0x37, 0x10, 0xb2, 0x7e, 0x35, 0x26, 0xdc, 0xd9, 0x71, 0xe6,
+  0x8c, 0xb0, 0xa6, 0x14, 0xc1, 0x1a, 0x2c, 0xb4, 0x36, 0xf4, 0xf5, 0xd4,
+  0x32, 0xf0, 0x61, 0x63, 0x4f, 0xa0, 0x7a, 0x72, 0x08, 0xc8, 0x1d, 0x7a,
+  0x65, 0xc7, 0xda, 0xcb, 0x4a, 0x3c, 0x82, 0x64, 0x18, 0x65, 0xb9, 0xc5,
+  0xad, 0x5f, 0xbe, 0xd8, 0xb4, 0x01, 0x59, 0xbb, 0x6e, 0xeb, 0xeb, 0x1f,
+  0x4c, 0x9c, 0xba, 0x11, 0x62, 0xff, 0x3a, 0x38, 0x1e, 0x5c, 0x9d, 0xd5,
+  0x8e, 0x71, 0x9b, 0x9e, 0x60, 0xf4, 0xb1, 0x5c, 0x9e, 0xee, 0x76, 0x57,
+  0x96, 0x28, 0xb8, 0x82, 0x62, 0x54, 0x00, 0xe6, 0x90, 0xff, 0x5e, 0x67,
+  0xd4, 0x8c, 0x75, 0x33, 0xab, 0xaa, 0x70, 0xc8, 0x0b, 0xdd, 0x09, 0x4f,
+  0x0d, 0x92, 0x0c, 0xe0, 0x20, 0xd6, 0x59, 0x70, 0x94, 0xec, 0x13, 0xd6,
+  0xf7, 0x23, 0x0c, 0x82, 0x02, 0x11, 0x00, 0xc4, 0x20, 0x71, 0x22, 0x75,
+  0x8c, 0x65, 0xc2, 0x50, 0x09, 0x77, 0x3e, 0x3a, 0xab, 0x05, 0xd1, 0xfa,
+  0x9b, 0x93, 0x48, 0x75, 0xf7, 0xf6, 0x98, 0xe7, 0x3b, 0x28, 0xa9, 0xdc,
+  0x2f, 0xf2, 0xd4, 0xb9, 0x61, 0xa1, 0xc3, 0x47, 0x5b, 0xc3, 0xe5, 0x46,
+  0xd7, 0x49, 0x64, 0xf9, 0xb6, 0x4b, 0x28, 0x66, 0x0e, 0xb4, 0x6e, 0xe6,
+  0xdf, 0xf8, 0x0c, 0x23, 0xb3, 0x15, 0x44, 0x59, 0xe9, 0xec, 0xbf, 0x7d,
+  0x2c, 0x7b, 0xc9, 0x9f, 0x26, 0x77, 0x1d, 0x33, 0x51, 0x54, 0x30, 0xe2,
+  0x4d, 0x42, 0x20, 0xb8, 0x52, 0x6c, 0x4b, 0x8f, 0xe8, 0xae, 0xa0, 0x12,
+  0x30, 0xa5, 0x12, 0x52, 0x01, 0x9c, 0x89, 0x23, 0x6b, 0x23, 0x11, 0x61,
+  0xc4, 0xfc, 0x73, 0xa8, 0x94, 0x00, 0x38, 0x21, 0x1a, 0x8d, 0x24, 0x0f,
+  0xff, 0x85, 0xff, 0x37, 0x6b, 0xa2, 0x58, 0x68, 0xb0, 0x46, 0x18, 0xb8,
+  0x6f, 0x2d, 0xc5, 0x24, 0xdc, 0x11, 0xc0, 0xa5, 0xb4, 0x75, 0x59, 0xb1,
+  0xd5, 0x81, 0x64, 0xd3, 0xff, 0x5d, 0xdd, 0x39, 0xa2, 0x86, 0x05, 0x23,
+  0x0c, 0x74, 0xc8, 0x4c, 0x78, 0x10, 0x21, 0x90, 0xc7, 0x46, 0x23, 0xa5,
+  0x5a, 0x18, 0x1d, 0x09, 0xd5, 0xb6, 0xa6, 0xd1, 0x36, 0x34, 0x28, 0x71,
+  0xeb, 0x1d, 0x5e, 0xd4, 0x32, 0xd6, 0xda, 0xd9, 0x3c, 0xf6, 0xc7, 0x87,
+  0xe4, 0x96, 0x4e, 0xca, 0x28, 0x0f, 0x1c, 0x73, 0x51, 0xeb, 0xf4, 0xeb,
+  0x36, 0x5b, 0x5c, 0xdf, 0x41, 0xac, 0x97, 0xcb, 0x3a, 0x6d, 0x6b, 0x63,
+  0x22, 0x15, 0x3f, 0xa3, 0x33, 0xd0, 0xdf, 0x2a, 0x95, 0x1d, 0x65, 0xb5,
+  0xef, 0x0e, 0x26, 0xad, 0xb6, 0xe8, 0x4d, 0xc7, 0xb8, 0x99, 0xa7, 0x10,
+  0x7c, 0x66, 0x18, 0xca, 0x43, 0x88, 0xf0, 0x64, 0x15, 0x85, 0x87, 0xf4,
+  0xeb, 0x88, 0x2a, 0xe2, 0xa6, 0x65, 0xc1, 0xd9, 0x93, 0xfb, 0x1a, 0x8f,
+  0x68, 0xc6, 0xe6, 0xae, 0xb1, 0x69, 0xd6, 0xd9, 0x8e, 0xd0, 0x28, 0x91,
+  0x22, 0x41, 0xa4, 0xe1, 0x57, 0x34, 0x55, 0x9e, 0x2f, 0x5c, 0xb0, 0xf9,
+  0x63, 0x8f, 0x6c, 0x61, 0x61, 0x18, 0x43, 0xd4, 0x4a, 0xa5, 0xfc, 0x22,
+  0x34, 0xfc, 0x73, 0x6c, 0xe7, 0xbb, 0xc9, 0x98, 0x39, 0x08, 0x27, 0x92,
+  0xa8, 0xcb, 0xb6, 0x0c, 0x7f, 0x38, 0xe0, 0x4a, 0x3a, 0x09, 0x89, 0x5a,
+  0xa0, 0x9a, 0xb5, 0x26, 0xaa, 0x12, 0xa1, 0x2a, 0x58, 0x21, 0xb6, 0xbe,
+  0x3b, 0x02, 0x6e, 0xdf, 0x03, 0x62, 0xa2, 0x44, 0x28, 0x11, 0x42, 0x63,
+  0x00, 0x20, 0x88, 0xe1, 0x4b, 0x5a, 0x4d, 0x0b, 0x2e, 0x5e, 0x05, 0x14,
+  0xda, 0x45, 0xfe, 0xba, 0x62, 0xc3, 0xf0, 0x72, 0xd0, 0x01, 0xf8, 0x08,
+  0xcb, 0x6e, 0xda, 0x82, 0x82, 0x66, 0xca, 0x90, 0x0f, 0xc6, 0xc7, 0x4d,
+  0xd4, 0x05, 0xd9, 0xd2, 0x14, 0xa0, 0x4b, 0x4e, 0x36, 0x27, 0x1d, 0xfe,
+  0x52, 0xd3, 0x5d, 0xa6, 0x4f, 0x18, 0xfb, 0xc3, 0x82, 0x7b, 0x8c, 0xbc,
+  0xee, 0x91, 0xd0, 0x9d, 0xd3, 0xbe, 0xbd, 0xe6, 0xb8, 0x8f, 0xd4, 0xa3,
+  0x8e, 0x7c, 0x43, 0x0f, 0x54, 0x01, 0x9f, 0xed, 0x42, 0x4f, 0x76, 0x70,
+  0xb3, 0xda, 0x72, 0x85, 0x0b, 0x21, 0x02, 0xf2, 0xfa, 0x74, 0x2f, 0x8e,
+  0x8d, 0x36, 0xf5, 0x28, 0x91, 0xa8, 0x24, 0x1e, 0xe7, 0xc4, 0xb6, 0x64,
+  0x41, 0x24, 0x7d, 0x7c, 0x73, 0x2c, 0x8d, 0x2a, 0x38, 0x1f, 0x1f, 0x59,
+  0xf0, 0x75, 0x58, 0x8d, 0x6e, 0x1c, 0x8f, 0x4e, 0x47, 0xaa, 0x78, 0xa4,
+  0x67, 0x03, 0xae, 0xc1, 0x8d, 0x4a, 0x51, 0xa4, 0xaf, 0x45, 0x24, 0xb5,
+  0x2b, 0x81, 0xf5, 0x43, 0xc0, 0x42, 0x34, 0xb2, 0x1a, 0x45, 0x74, 0x89,
+  0xa7, 0xdb, 0x80, 0x0e, 0x46, 0xe7, 0x60, 0xa5, 0x44, 0x03, 0x4c, 0xf6,
+  0x3e, 0xef, 0xcc, 0x00, 0x90, 0x5d, 0x44, 0xc5, 0x44, 0xf6, 0x83, 0xe7,
+  0x0b, 0xdf, 0x13, 0x3d, 0x80, 0x70, 0x21, 0x1a, 0x8f, 0xf0, 0x07, 0xcf,
+  0x1e, 0xff, 0x3f, 0x66, 0xa6, 0xb1, 0x86, 0x26, 0x56, 0x93, 0xaa, 0x55,
+  0x28, 0x04, 0x82, 0xba, 0xd5, 0xde, 0xd0, 0x97, 0xc0, 0x5b, 0x2a, 0x49,
+  0x24, 0xff, 0xc1, 0x3b, 0xb6, 0x0c, 0x5b, 0x1c, 0xc2, 0xa1, 0xb9, 0xa7,
+  0x34, 0xdb, 0xc7, 0x6e, 0x49, 0x79, 0xd4, 0x6c, 0x6c, 0x0a, 0xb7, 0xeb,
+  0x55, 0x62, 0x7a, 0xd1, 0x57, 0x42, 0x1a, 0x46, 0xaa, 0xf7, 0x81, 0x55,
+  0xcd, 0x14, 0xa9, 0x14, 0xcb, 0xfa, 0x65, 0x16, 0x65, 0xe6, 0x64, 0xce,
+  0x91, 0x77, 0x45, 0xec, 0x9b, 0xec, 0x17, 0x4b, 0xb8, 0x31, 0x49, 0x5a,
+  0x53, 0x8e, 0xab, 0xc9, 0x49, 0xd7, 0x1c, 0x93, 0xf8, 0x1f, 0x25, 0x12,
+  0x35, 0x7b, 0x34, 0x89, 0x5f, 0x9f, 0x27, 0x61, 0x0a, 0xdc, 0x2b, 0x00,
+  0x77, 0x02, 0x65, 0x62, 0xa5, 0xe8, 0xa3, 0xb7, 0x0d, 0xfc, 0xee, 0xa6,
+  0x79, 0x82, 0xc6, 0x3f, 0xa7, 0x3c, 0x56, 0xf0, 0xd6, 0x80, 0xc8, 0xdd,
+  0x71, 0x33, 0x23, 0x6b, 0x82, 0xd1, 0x05, 0xc9, 0x84, 0x80, 0x13, 0x85,
+  0xd4, 0xa8, 0x85, 0x85, 0x20, 0x6a, 0x25, 0x75, 0x3b, 0x1a, 0xdd, 0xe5,
+  0x4c, 0x90, 0x2a, 0x0b, 0x85, 0xad, 0xb0, 0x50, 0x2d, 0x29, 0xbc, 0x2b,
+  0x45, 0xaf, 0x7d, 0x3c, 0x00, 0x9c, 0xb8, 0x99, 0x18, 0x43, 0x31, 0x55,
+  0x95, 0x4b, 0x00, 0x44, 0xb1, 0x66, 0xbd, 0x92, 0xaa, 0xe4, 0x97, 0x50,
+  0x3d, 0x55, 0xae, 0x68, 0x6e, 0xda, 0x6b, 0xdd, 0xb5, 0xe7, 0xee, 0x7b,
+  0x03, 0x5d, 0x0a, 0x9a, 0x25, 0x92, 0xe7, 0x2e, 0xc6, 0xe4, 0xb8, 0x48,
+  0x2b, 0x8b, 0xc9, 0xe5, 0xaa, 0x12, 0x33, 0x2d, 0x21, 0x63, 0x42, 0x54,
+  0x77, 0x41, 0x7b, 0xd7, 0xa3, 0x28, 0x60, 0xe1, 0x9c, 0xa8, 0xbd, 0xc1,
+  0xdd, 0x29, 0xdc, 0x98, 0x54, 0x8e, 0x85, 0x6c, 0x47, 0x83, 0x37, 0x75,
+  0xeb, 0xef, 0xc3, 0xa1, 0xe3, 0xf0, 0xd0, 0x78, 0xee, 0x34, 0xb3, 0x63,
+  0x55, 0xb2, 0xe2, 0x00, 0x52, 0x70, 0x75, 0xd5, 0xff, 0xa1, 0x00, 0x23,
+  0x00, 0xd9, 0x7c, 0xbe, 0xca, 0xda, 0x93, 0x32, 0xa8, 0xd6, 0x2e, 0x88,
+  0x9a, 0xeb, 0x27, 0x40, 0xa0, 0x7b, 0x64, 0x2d, 0x12, 0x33, 0xb3, 0xd5,
+  0xed, 0xea, 0xc5, 0xe8, 0x7b, 0x1a, 0x4c, 0x02, 0x35, 0xa4, 0x80, 0xb5,
+  0xd0, 0x98, 0x10, 0x2a, 0xeb, 0x42, 0x8b, 0xb7, 0x2a, 0x52, 0x4d, 0x30,
+  0x0e, 0x21, 0x1a, 0x8f, 0xc0, 0x00, 0x06, 0x00, 0xff, 0x35, 0x6b, 0xa5,
+  0xb1, 0x06, 0x00, 0x46, 0x94, 0xda, 0x17, 0x97, 0xc5, 0xa3, 0x2e, 0xda,
+  0x04, 0x40, 0x1f, 0x74, 0xf4, 0x4e, 0x2e, 0xf8, 0x3a, 0x57, 0x52, 0x77,
+  0xf5, 0xa4, 0x6a, 0x9c, 0x52, 0xc9, 0xf8, 0x27, 0xe9, 0xa7, 0x96, 0x07,
+  0xfc, 0x42, 0xe7, 0x42, 0x73, 0x3f, 0x45, 0x69, 0x5f, 0xde, 0xea, 0xcd,
+  0xeb, 0xea, 0xa9, 0x7e, 0x76, 0xc1, 0x2f, 0x59, 0x5c, 0xfd, 0x9a, 0xd5,
+  0xb0, 0x5c, 0x27, 0xc1, 0x5c, 0x5b, 0x09, 0x3c, 0xb7, 0x6d, 0xda, 0x73,
+  0xfa, 0xc6, 0xc5, 0x65, 0xc4, 0x60, 0x78, 0xe6, 0x2a, 0x3e, 0x5d, 0xba,
+  0xb4, 0x54, 0x2b, 0x18, 0x18, 0xd7, 0x95, 0x22, 0xa0, 0x9a, 0x38, 0xd4,
+  0x32, 0xa4, 0x09, 0x36, 0xf3, 0x22, 0xe1, 0x03, 0xc2, 0x40, 0x84, 0x13,
+  0x47, 0x37, 0x65, 0x36, 0xaf, 0x75, 0x5d, 0xd8, 0x7b, 0x66, 0xfb, 0xcd,
+  0x8e, 0x3a, 0x3a, 0xe1, 0x8a, 0xb9, 0x30, 0x19, 0x04, 0x00, 0xd2, 0x98,
+  0x69, 0xa5, 0xcb, 0xc2, 0xf2, 0x6f, 0x8f, 0x20, 0xbb, 0x13, 0xed, 0xe5,
+  0x0a, 0x73, 0x90, 0x4c, 0x17, 0x52, 0x2d, 0x38, 0x83, 0x7e, 0xf8, 0xd3,
+  0x14, 0x71, 0x17, 0x84, 0x6d, 0x6b, 0xde, 0x02, 0x2f, 0x34, 0x37, 0x66,
+  0x93, 0x91, 0x0a, 0x27, 0x1e, 0x38, 0x62, 0x84, 0x6c, 0xa0, 0x52, 0xd7,
+  0xa4, 0xe2, 0x94, 0xce, 0x83, 0x69, 0xb6, 0x18, 0x02, 0x76, 0xe7, 0x43,
+  0x61, 0x10, 0x98, 0x48, 0x12, 0x30, 0x9d, 0x60, 0x00, 0x22, 0xe6, 0x4f,
+  0x2b, 0x43, 0x4a, 0x3a, 0xc2, 0xe0, 0x37, 0x10, 0x3f, 0xe4, 0x36, 0xb8,
+  0x44, 0x53, 0xb1, 0xf9, 0x53, 0x51, 0xd6, 0xa8, 0x25, 0x06, 0x70, 0xbd,
+  0x50, 0xec, 0xde, 0xfb, 0xaf, 0x80, 0xca, 0xc0, 0xf3, 0x9c, 0xd1, 0xc9,
+  0x33, 0x2d, 0x02, 0x52, 0x83, 0xc5, 0x7b, 0x5a, 0x67, 0x43, 0xf8, 0xff,
+  0x52, 0x36, 0xac, 0xd2, 0x64, 0xe1, 0x92, 0x38, 0x7a, 0xa2, 0xec, 0x5d,
+  0x8a, 0x3c, 0x08, 0x2e, 0x8e, 0x36, 0xec, 0x8e, 0x62, 0x51, 0x82, 0xe6,
+  0xce, 0x53, 0x88, 0xdb, 0x72, 0xd0, 0x3a, 0x7b, 0x8b, 0xde, 0xbf, 0x1f,
+  0x0a, 0x89, 0x1c, 0xc5, 0xab, 0xc8, 0xa5, 0x59, 0xbd, 0x1b, 0xb5, 0xfc,
+  0xa9, 0x99, 0x23, 0xf1, 0x17, 0x2d, 0xbe, 0xc4, 0xf5, 0x9c, 0x4d, 0xe3,
+  0x7b, 0x2c, 0x9b, 0x65, 0x8f, 0x5f, 0xe3, 0x13, 0x90, 0x08, 0xad, 0x38,
+  0xad, 0xd4, 0xde, 0x5b, 0xbd, 0xf9, 0x32, 0x7c, 0x13, 0xeb, 0xe6, 0xe7,
+  0xb6, 0x1a, 0x21, 0x69, 0xc6, 0x2f, 0x24, 0x6b, 0x08, 0x29, 0xd1, 0x4c,
+  0x34, 0xd1, 0x31, 0x88, 0x84, 0x3d, 0xa9, 0xf0, 0xe9, 0x59, 0xa1, 0x19,
+  0x97, 0x4e, 0x79, 0xcd, 0xeb, 0xcb, 0x9e, 0x27, 0x4b, 0x23, 0x32, 0x23,
+  0xa6, 0x6d, 0x06, 0x08, 0xb0, 0xe8, 0x53, 0x82, 0x70, 0xaa, 0x32, 0x39,
+  0x80, 0xef, 0x16, 0x82, 0xdc, 0xee, 0x7f, 0x70, 0x70, 0x4a, 0xd1, 0xcb,
+  0x4e, 0x94, 0x2a, 0x4b, 0x2a, 0x57, 0x05, 0x45, 0x46, 0x1c, 0x67, 0x02,
+  0x2f, 0xd3, 0x18, 0xf2, 0x92, 0x03, 0x07, 0x21, 0x1a, 0x8d, 0x00, 0x00,
+  0x0e, 0x01, 0xff, 0x37, 0x64, 0xa7, 0xb2, 0x48, 0x42, 0x44, 0x10, 0x98,
+  0x24, 0x83, 0x25, 0x58, 0xbb, 0xba, 0xb4, 0x34, 0xb8, 0x00, 0x58, 0x6c,
+  0xee, 0xdf, 0xfa, 0x8d, 0x10, 0x2f, 0x1b, 0xc4, 0x49, 0x80, 0xba, 0xef,
+  0xce, 0xdb, 0xf8, 0x7d, 0x3b, 0x1b, 0x6a, 0xca, 0xfd, 0x92, 0x6b, 0x5f,
+  0x25, 0xab, 0x62, 0xf0, 0x26, 0x14, 0x3c, 0x47, 0x95, 0x48, 0x36, 0x8a,
+  0x82, 0x75, 0x4c, 0x6f, 0x81, 0xe6, 0xbd, 0x23, 0x17, 0x33, 0x0f, 0x4c,
+  0xfb, 0x25, 0x5c, 0x26, 0x1e, 0x2b, 0xa7, 0x87, 0xfc, 0x94, 0xcd, 0x2e,
+  0x43, 0x63, 0x40, 0xd0, 0xf4, 0xaf, 0xfe, 0x0f, 0xe6, 0x4d, 0x8d, 0x66,
+  0x9e, 0xfc, 0x73, 0xae, 0xea, 0x3c, 0x64, 0xa2, 0xca, 0xa7, 0x51, 0xa6,
+  0xae, 0xab, 0x1f, 0x66, 0x61, 0x60, 0xdd, 0x9c, 0xbb, 0xdb, 0xb3, 0x0f,
+  0x8f, 0x67, 0x7d, 0x3c, 0x38, 0xa2, 0x67, 0x12, 0xef, 0xbe, 0x49, 0xf3,
+  0x80, 0x8c, 0xe1, 0x9d, 0x9d, 0x25, 0x40, 0x37, 0x9d, 0x61, 0x4a, 0x99,
+  0x27, 0xce, 0x0c, 0x80, 0x60, 0xf8, 0xfe, 0xdb, 0x1c, 0xaf, 0xa3, 0xfb,
+  0x34, 0xe8, 0x04, 0x0b, 0x29, 0xf5, 0x8a, 0x74, 0x43, 0x84, 0x62, 0x52,
+  0x39, 0xf8, 0x05, 0xa2, 0xd6, 0x61, 0xd7, 0x14, 0x87, 0xe8, 0xe5, 0x53,
+  0x46, 0x5e, 0x1d, 0x29, 0x1b, 0x5e, 0xa5, 0x44, 0x96, 0xed, 0xa7, 0x38,
+  0x21, 0x41, 0xb5, 0x41, 0x6b, 0xd8, 0x2a, 0x4d, 0x40, 0xbf, 0x9f, 0x89,
+  0x2d, 0x65, 0x6e, 0x13, 0xf6, 0xfa, 0x3b, 0x85, 0x0a, 0x2e, 0x71, 0x4c,
+  0x00, 0x64, 0xb2, 0xe5, 0x3f, 0x0b, 0xf0, 0x8e, 0x09, 0xc1, 0x60, 0x11,
+  0x29, 0xd5, 0x3a, 0x65, 0x4c, 0xe6, 0x2e, 0xa1, 0x26, 0x93, 0x0b, 0xb7,
+  0xc1, 0x3f, 0x86, 0x6f, 0xa8, 0xcc, 0x49, 0x80, 0xd1, 0x50, 0xaa, 0xec,
+  0x5e, 0x2d, 0x3d, 0x78, 0xc6, 0x4f, 0x3e, 0xcc, 0xc8, 0xa4, 0x00, 0xcf,
+  0xf9, 0x78, 0x77, 0xc0, 0x46, 0x8e, 0x47, 0xf6, 0x9e, 0xf9, 0x8d, 0x46,
+  0xb7, 0x87, 0xcb, 0x16, 0xcf, 0x35, 0xea, 0xd5, 0x7b, 0x07, 0x64, 0xae,
+  0x70, 0x18, 0xdd, 0x58, 0xbc, 0xf2, 0xf7, 0xa8, 0x49, 0x07, 0x26, 0x9c,
+  0xcb, 0x44, 0x5f, 0x15, 0x73, 0xf1, 0xb6, 0xcb, 0x05, 0xe9, 0xe6, 0xbe,
+  0x60, 0xdd, 0xce, 0xd9, 0x07, 0x65, 0xd1, 0xf4, 0xc9, 0x69, 0x2a, 0x42,
+  0x9b, 0xf0, 0xf4, 0x89, 0x14, 0x43, 0x56, 0xf6, 0xd9, 0x23, 0x46, 0xb2,
+  0xf3, 0x80, 0xa7, 0x2d, 0x81, 0x79, 0x92, 0x4c, 0xf7, 0x16, 0x32, 0xf1,
+  0xb6, 0x2d, 0x7b, 0x13, 0x9f, 0xda, 0xab, 0x5e, 0x41, 0x36, 0xb5, 0x57,
+  0x8c, 0x13, 0xff, 0xda, 0xe7, 0x7a, 0x4a, 0xd5, 0xac, 0xd0, 0x40, 0xab,
+  0x88, 0xb4, 0x11, 0x0e, 0x00, 0x01, 0x52, 0x45, 0x1f, 0xad, 0x82, 0x65,
+  0x29, 0x9b, 0xc9, 0xea, 0xe4, 0x9b, 0x9d, 0x4e, 0x74, 0x11, 0x44, 0x0e,
+  0x21, 0x1a, 0x8f, 0x80, 0x00, 0x00, 0x00, 0xff, 0x31, 0x68, 0xa2, 0xc1,
+  0xd0, 0xa3, 0x10, 0x09, 0x56, 0x6f, 0x4b, 0x25, 0x6a, 0x0d, 0x58, 0xcd,
+  0x5d, 0x53, 0x7c, 0x32, 0xc5, 0x00, 0x09, 0x34, 0x7b, 0xe6, 0xa3, 0x1f,
+  0xc4, 0x4a, 0xc1, 0xba, 0x16, 0xf1, 0xff, 0x2c, 0x75, 0x30, 0xf0, 0x5e,
+  0x68, 0xcf, 0x7a, 0xa2, 0x23, 0x69, 0x71, 0x59, 0x5b, 0xf7, 0xf4, 0x37,
+  0x06, 0x75, 0xc8, 0xa4, 0x2c, 0xcf, 0xcd, 0xe4, 0x59, 0xdc, 0xcd, 0x59,
+  0xae, 0x34, 0x7c, 0x2c, 0x36, 0xbb, 0x94, 0xc1, 0xdb, 0x70, 0xe6, 0xf3,
+  0x04, 0x9b, 0x09, 0x5e, 0x94, 0xc9, 0x2d, 0xd9, 0x23, 0x78, 0xf7, 0x9a,
+  0x49, 0xcd, 0xa2, 0x8d, 0xf5, 0xab, 0x5c, 0x27, 0x5f, 0x8c, 0xaf, 0xd3,
+  0x4f, 0x9a, 0x00, 0xca, 0xf5, 0x55, 0x79, 0x77, 0x89, 0x80, 0xa9, 0x45,
+  0xe9, 0x02, 0x05, 0xc1, 0x02, 0xb7, 0x51, 0x42, 0x10, 0x01, 0x2b, 0x7e,
+  0xa6, 0xa1, 0x42, 0xa9, 0x96, 0x8c, 0xa7, 0x32, 0x51, 0x5b, 0x40, 0x39,
+  0x00, 0x05, 0x95, 0xf3, 0x56, 0x7d, 0x6a, 0xc7, 0x81, 0xce, 0x5d, 0x80,
+  0x09, 0xd5, 0x20, 0x4d, 0xdd, 0xd0, 0x4c, 0x14, 0x20, 0xb1, 0x2b, 0x29,
+  0x97, 0x14, 0x9c, 0xf1, 0x6b, 0x0d, 0x38, 0xb4, 0x0b, 0x3a, 0x08, 0x0e,
+  0xc6, 0xfc, 0x16, 0x63, 0xf7, 0xa9, 0x9c, 0x8a, 0x7f, 0x31, 0xd1, 0xff,
+  0x65, 0xa9, 0x89, 0xac, 0x2d, 0xd5, 0x4c, 0x31, 0x1e, 0x91, 0xc7, 0xcb,
+  0xaa, 0xa4, 0x9a, 0xcc, 0x98, 0xef, 0x54, 0x93, 0x10, 0x70, 0x13, 0x70,
+  0x0d, 0x91, 0x77, 0x9b, 0xb8, 0xf1, 0xd7, 0x26, 0x7f, 0xf1, 0x97, 0xae,
+  0xdb, 0x57, 0xdf, 0x8d, 0xca, 0xa0, 0xe6, 0x6d, 0xd1, 0xb2, 0xb1, 0x5c,
+  0x5f, 0x2c, 0x3b, 0xb5, 0xbe, 0xb1, 0xd5, 0x94, 0x18, 0x31, 0x3d, 0xad,
+  0x4f, 0x36, 0x3b, 0x23, 0x17, 0xd0, 0xac, 0xe6, 0x28, 0xee, 0xe3, 0xc3,
+  0xa2, 0xb1, 0x4d, 0xb9, 0x37, 0xe4, 0x57, 0x34, 0x31, 0x56, 0x29, 0x89,
+  0xe7, 0xd8, 0x8b, 0x65, 0xb5, 0x70, 0xdb, 0x38, 0x46, 0x65, 0x59, 0xc2,
+  0x90, 0x8a, 0xbc, 0xc2, 0x8c, 0x35, 0x3e, 0x0e, 0x5a, 0x61, 0x1a, 0xdb,
+  0x30, 0xa2, 0x50, 0x77, 0x3b, 0x75, 0x2a, 0x1b, 0xaa, 0xf2, 0x31, 0xba,
+  0x83, 0x93, 0x8a, 0xba, 0x82, 0x4e, 0x6c, 0x57, 0x86, 0x96, 0xd9, 0x59,
+  0xb2, 0xc7, 0x45, 0xd1, 0xeb, 0x51, 0x39, 0xe6, 0xbd, 0xdc, 0x70, 0xd3,
+  0xc2, 0x17, 0xa5, 0x29, 0xcf, 0x19, 0xf1, 0xf1, 0x62, 0x8b, 0x25, 0x7f,
+  0xbc, 0x0b, 0x29, 0x78, 0xa1, 0xf6, 0xc5, 0xb2, 0xf7, 0x5f, 0xcb, 0x84,
+  0xb8, 0xdc, 0x1b, 0x73, 0x58, 0x1a, 0x33, 0x4c, 0xaa, 0x55, 0x2c, 0xae,
+  0x4a, 0x32, 0x25, 0x19, 0x83, 0x81, 0xa7, 0x2a, 0x40, 0xe0, 0x21, 0x1a,
+  0x8f, 0x80, 0x00, 0x00, 0x0f, 0xff, 0x3f, 0x6a, 0x84, 0xa0, 0x86, 0xa9,
+  0xb7, 0xc1, 0x15, 0x2a, 0x95, 0xa1, 0x5a, 0x38, 0x69, 0xab, 0xa3, 0x03,
+  0x80, 0x19, 0x6b, 0x72, 0x7e, 0x65, 0x7c, 0xb6, 0xe3, 0xe8, 0x9c, 0x66,
+  0xbc, 0xe1, 0x41, 0x73, 0xea, 0x42, 0xdc, 0x4f, 0xdc, 0x35, 0xfd, 0x73,
+  0xcf, 0x48, 0xeb, 0xfb, 0xb7, 0xe0, 0x22, 0x8b, 0x7f, 0x9b, 0x40, 0x89,
+  0x38, 0x09, 0x4f, 0x86, 0x1b, 0x02, 0x9f, 0x17, 0x88, 0x9b, 0x0d, 0xa5,
+  0xe0, 0x39, 0x2b, 0xc6, 0x22, 0x45, 0x62, 0x37, 0xe4, 0x43, 0x2d, 0xb8,
+  0x8d, 0xc0, 0x6f, 0x5f, 0x6e, 0xec, 0x7c, 0xbb, 0x94, 0x20, 0x8b, 0xc9,
+  0x9f, 0x94, 0x2c, 0x15, 0xaa, 0xb1, 0x02, 0x62, 0x27, 0x12, 0x79, 0xe4,
+  0x04, 0x00, 0x9d, 0x66, 0xcb, 0x7a, 0xfc, 0x5e, 0x99, 0xc4, 0x4c, 0x59,
+  0x18, 0xa8, 0x81, 0xd8, 0x5b, 0xaa, 0x80, 0x00, 0x55, 0x64, 0xf6, 0x01,
+  0x97, 0x21, 0x0f, 0x6a, 0xf9, 0x7e, 0x74, 0x50, 0xc8, 0xb2, 0xe0, 0x14,
+  0x16, 0xfa, 0x39, 0x14, 0x5e, 0x90, 0x1d, 0xad, 0x1c, 0x01, 0xad, 0xfb,
+  0x21, 0x71, 0xd1, 0x68, 0x8a, 0x07, 0xa6, 0x42, 0x3c, 0x24, 0x6d, 0x55,
+  0x2f, 0x7f, 0x72, 0xf1, 0xaa, 0xc8, 0x3e, 0xbf, 0x42, 0x80, 0x95, 0x73,
+  0x37, 0x3b, 0xa1, 0xc7, 0x06, 0xd7, 0x7c, 0xad, 0xeb, 0xf9, 0xdc, 0x7d,
+  0xf1, 0x41, 0x03, 0x47, 0xf7, 0xf7, 0x4f, 0x71, 0xf7, 0xe7, 0x72, 0x9e,
+  0x93, 0xe5, 0x8c, 0x8d, 0xb7, 0x37, 0x3d, 0xe3, 0xcf, 0x3c, 0xab, 0x33,
+  0x07, 0xa8, 0xf5, 0xee, 0x38, 0xce, 0x3b, 0xf9, 0x3c, 0xda, 0x73, 0xe1,
+  0xb1, 0x2a, 0x6a, 0x59, 0x7b, 0x0c, 0xa2, 0x40, 0x1a, 0xb5, 0xc5, 0xbd,
+  0xb2, 0x7f, 0x5d, 0x36, 0xe0, 0x9d, 0x8c, 0xae, 0x0a, 0x30, 0xdc, 0xb6,
+  0x17, 0x4e, 0xf1, 0x6f, 0xa2, 0x50, 0xaa, 0x23, 0xa8, 0xe0, 0x47, 0x27,
+  0x0d, 0xef, 0x49, 0x4f, 0xdf, 0xb4, 0xc9, 0xd1, 0x3a, 0xbe, 0x11, 0x42,
+  0xa5, 0x38, 0xad, 0xd6, 0xd0, 0x8f, 0xa0, 0x93, 0x89, 0x0e, 0xfd, 0x14,
+  0xd8, 0x86, 0x08, 0xf0, 0x81, 0xba, 0x95, 0x52, 0x6c, 0xcc, 0x8a, 0x0b,
+  0xda, 0x62, 0x10, 0x04, 0x50, 0x2b, 0xda, 0xe4, 0xce, 0x62, 0x12, 0xa4,
+  0x00, 0x83, 0x72, 0x81, 0x02, 0x96, 0xb2, 0xa9, 0x21, 0x10, 0x00, 0x38,
+  0x21, 0x1a, 0x8a, 0x00, 0x00, 0x00, 0x01, 0xff, 0x37, 0x65, 0xa4, 0xd8,
+  0xe8, 0x6c, 0x3a, 0x13, 0x08, 0x5e, 0x0b, 0xd5, 0x64, 0xaa, 0xd5, 0x54,
+  0xd1, 0x1a, 0x5c, 0x0b, 0x01, 0x0e, 0x02, 0x47, 0xef, 0x0f, 0x26, 0xc9,
+  0xa0, 0xc1, 0x81, 0x36, 0x65, 0x73, 0x52, 0xd8, 0xac, 0x42, 0x5f, 0x8a,
+  0xe6, 0x3b, 0x57, 0xea, 0xef, 0x38, 0x5b, 0x1d, 0x62, 0x33, 0x45, 0x26,
+  0x95, 0xa3, 0xa5, 0x99, 0x76, 0x4f, 0xf7, 0x7f, 0x9b, 0xe6, 0x55, 0xca,
+  0x29, 0xbe, 0x0a, 0xe1, 0x8c, 0x31, 0xa0, 0x12, 0x34, 0x58, 0x56, 0x17,
+  0xa4, 0xf5, 0x67, 0x66, 0x69, 0x0c, 0x55, 0x15, 0x9f, 0x98, 0x52, 0xe3,
+  0x6b, 0xfc, 0x3d, 0x1d, 0x86, 0xd1, 0x86, 0xc2, 0xfd, 0xf6, 0xf3, 0x20,
+  0xa4, 0x8a, 0x1b, 0x25, 0xf8, 0x2f, 0x74, 0xad, 0xdb, 0xae, 0xe8, 0x83,
+  0x5b, 0x1e, 0x79, 0xdd, 0x5a, 0x3e, 0x34, 0x21, 0x9c, 0xfb, 0x72, 0xa0,
+  0x1f, 0x2c, 0x05, 0xd7, 0xec, 0xf4, 0xea, 0xc8, 0x60, 0x90, 0xc6, 0x9c,
+  0xc4, 0xb9, 0x51, 0x3d, 0x79, 0xd3, 0x6d, 0xb4, 0x26, 0x79, 0xd8, 0x45,
+  0x08, 0x82, 0x15, 0xb7, 0x39, 0x72, 0x4c, 0x18, 0x93, 0xbc, 0x52, 0x12,
+  0x5a, 0x05, 0x2d, 0x2b, 0xca, 0xe1, 0x22, 0x84, 0xaf, 0x6b, 0x25, 0x71,
+  0x9a, 0x57, 0x5d, 0xc7, 0xd7, 0x78, 0xff, 0x45, 0x48, 0xd1, 0x28, 0xda,
+  0x69, 0x98, 0x07, 0x52, 0xa0, 0x00, 0x8f, 0xe5, 0x7b, 0xed, 0x6e, 0x67,
+  0x00, 0x9b, 0xb8, 0xd1, 0x58, 0xa2, 0xf5, 0x46, 0xfc, 0x2e, 0xd6, 0xaa,
+  0xeb, 0x34, 0x17, 0x77, 0x22, 0x1a, 0xa3, 0xa2, 0xcb, 0x06, 0xec, 0xf1,
+  0x12, 0xb0, 0x6e, 0x66, 0xce, 0xd1, 0xa7, 0xa4, 0xd2, 0x4c, 0x34, 0xb7,
+  0x32, 0x6a, 0x7d, 0x47, 0xd6, 0x5a, 0x97, 0x08, 0x20, 0x30, 0xf4, 0xd7,
+  0x9b, 0x4a, 0x91, 0x37, 0x07, 0x12, 0xe6, 0x0e, 0x62, 0xf2, 0xbe, 0xb2,
+  0xab, 0x3e, 0x6e, 0x07, 0xc7, 0x9f, 0x19, 0xeb, 0xc9, 0x7c, 0x8f, 0x52,
+  0xc8, 0x9c, 0xc3, 0x99, 0x9f, 0x73, 0x16, 0xa1, 0x2a, 0x9a, 0xf8, 0x5a,
+  0x47, 0xc3, 0x20, 0x17, 0xbb, 0x27, 0x6a, 0x4f, 0xe4, 0xfc, 0xac, 0x4d,
+  0xaf, 0xaa, 0xbf, 0xf2, 0xc4, 0xd2, 0x2a, 0xbc, 0x6b, 0x7e, 0x9f, 0x4d,
+  0x96, 0xe0, 0x0d, 0xdc, 0xb1, 0xcf, 0xb0, 0x78, 0x3a, 0xe3, 0x56, 0x8e,
+  0x91, 0x13, 0xd3, 0xf6, 0x59, 0x61, 0x00, 0xf8, 0x4b, 0xa4, 0x72, 0xcb,
+  0x26, 0xdb, 0x66, 0x74, 0x65, 0xd5, 0xa2, 0x71, 0xb1, 0x44, 0x65, 0x47,
+  0x06, 0xc9, 0x73, 0x1b, 0xa2, 0x96, 0x03, 0xa4, 0x60, 0xa0, 0x88, 0xde,
+  0x38, 0x75, 0xf6, 0xf6, 0xe5, 0xd6, 0xda, 0xe1, 0x5b, 0xda, 0x97, 0x10,
+  0x4f, 0xa6, 0x6c, 0x31, 0xdf, 0x2c, 0x1b, 0x97, 0x50, 0xb1, 0x78, 0xcd,
+  0xba, 0xfd, 0x10, 0xa3, 0x92, 0x43, 0x1a, 0x66, 0xa3, 0x21, 0x11, 0x10,
+  0x2a, 0x8a, 0x94, 0xd0, 0x2d, 0xd3, 0x12, 0xeb, 0x80, 0x9c, 0x77, 0x38,
+  0xc1, 0x30, 0x0e, 0x21, 0x1a, 0x8e, 0x80, 0x04, 0x0f, 0x01, 0xbf, 0x33,
+  0x67, 0xa3, 0xd8, 0x60, 0xa8, 0x36, 0x18, 0xc0, 0x11, 0xe2, 0x5c, 0xc6,
+  0xa5, 0x62, 0xe2, 0xd1, 0x6b, 0xd6, 0xa1, 0x85, 0xc0, 0x1c, 0x18, 0x88,
+  0x91, 0xa4, 0x3e, 0x3b, 0x9b, 0xb9, 0xd7, 0x21, 0x07, 0xbc, 0x34, 0x47,
+  0x8e, 0xf6, 0x56, 0x9d, 0x84, 0x6c, 0xfc, 0x1b, 0x16, 0x05, 0x71, 0xaa,
+  0x12, 0x53, 0x3d, 0x5b, 0xc4, 0xa4, 0x9b, 0xbb, 0xb9, 0xd8, 0x7f, 0xd0,
+  0x6c, 0x8d, 0x8b, 0x84, 0xdf, 0xf3, 0xe7, 0x5b, 0x68, 0x33, 0x4f, 0x41,
+  0xaa, 0xca, 0xbf, 0x6f, 0xbc, 0x95, 0x1c, 0x37, 0xa2, 0xd4, 0xd0, 0xce,
+  0x25, 0x57, 0x43, 0xb9, 0x4f, 0x53, 0xc5, 0x93, 0x04, 0xe2, 0xba, 0x39,
+  0x68, 0xd1, 0xfe, 0x0a, 0xaa, 0xb3, 0xa8, 0xd9, 0x30, 0xbd, 0x9a, 0x67,
+  0x0b, 0x6c, 0x29, 0xef, 0x08, 0x4d, 0x51, 0x82, 0x93, 0x32, 0xce, 0x82,
+  0x00, 0xa8, 0x07, 0x83, 0x77, 0x6a, 0xc1, 0x23, 0x50, 0x0b, 0x45, 0x25,
+  0x60, 0x1e, 0x68, 0x01, 0x75, 0xa4, 0x4b, 0x33, 0xad, 0x1e, 0x9f, 0xd0,
+  0x01, 0x6e, 0xb1, 0xbc, 0x27, 0x44, 0x5b, 0xae, 0x08, 0xdf, 0x32, 0x4a,
+  0xd2, 0x3c, 0xb0, 0x01, 0x38, 0xee, 0x13, 0xa6, 0x99, 0x2d, 0x1d, 0x83,
+  0x73, 0x13, 0x74, 0x6a, 0xdd, 0xa8, 0x26, 0xed, 0xd4, 0x84, 0x08, 0x0c,
+  0x54, 0x41, 0x12, 0x99, 0x8d, 0x89, 0x16, 0xa9, 0x15, 0xc4, 0x8e, 0x85,
+  0xb8, 0x97, 0x0b, 0x4a, 0x0d, 0xc8, 0xc5, 0xd9, 0x1b, 0xb3, 0x2e, 0x34,
+  0x8b, 0xf3, 0x67, 0xc7, 0xd6, 0x83, 0xe1, 0xdb, 0x9a, 0xb7, 0x27, 0xd4,
+  0x74, 0x63, 0xe3, 0x75, 0xf6, 0x54, 0xca, 0x3e, 0x65, 0xa7, 0xdd, 0x98,
+  0x6d, 0xb5, 0x8a, 0x61, 0xaf, 0xeb, 0x6b, 0x9d, 0xa5, 0xd0, 0xf3, 0xfe,
+  0xd1, 0x8c, 0xf7, 0xe7, 0xd9, 0xfd, 0x32, 0xcb, 0xf6, 0x6b, 0x6e, 0xd6,
+  0x61, 0xed, 0xb6, 0x01, 0x69, 0x1d, 0xd1, 0xf2, 0x1c, 0xc6, 0xca, 0xaf,
+  0x0d, 0x1d, 0xc6, 0xae, 0x78, 0xf8, 0xdc, 0x3f, 0x29, 0xc0, 0xf9, 0x16,
+  0x70, 0x5a, 0xdc, 0x3f, 0x63, 0xac, 0xc0, 0xd9, 0x97, 0x57, 0xf3, 0x8c,
+  0x4c, 0x16, 0x71, 0x42, 0xb5, 0x57, 0xc3, 0x70, 0x89, 0x52, 0xe4, 0x11,
+  0xf5, 0x5e, 0xff, 0x85, 0x3f, 0x7d, 0xeb, 0xc7, 0x26, 0xc9, 0x95, 0x12,
+  0x2b, 0x4e, 0x33, 0x26, 0x02, 0x7d, 0x48, 0xbb, 0x64, 0x7f, 0x1e, 0xd6,
+  0x14, 0xe9, 0x40, 0x94, 0x92, 0x4a, 0x45, 0xed, 0x24, 0x37, 0x76, 0xb5,
+  0xfe, 0xc8, 0xb9, 0x91, 0x11, 0xd3, 0x68, 0x74, 0x6c, 0x73, 0x88, 0x46,
+  0x4a, 0x50, 0x8a, 0xf3, 0x82, 0xc0, 0xe0, 0x21, 0x1a, 0x8e, 0x00, 0x9e,
+  0x0f, 0x1f, 0xff, 0x33, 0x65, 0xa7, 0x31, 0x86, 0x20, 0x55, 0xa9, 0xce,
+  0x32, 0xd9, 0xd1, 0x68, 0x4b, 0xf3, 0x70, 0x09, 0x6b, 0x2d, 0x94, 0x38,
+  0x02, 0x47, 0x2e, 0x64, 0x9d, 0x01, 0xf5, 0x6b, 0x1c, 0x76, 0x31, 0x48,
+  0x30, 0xf9, 0x7f, 0x1e, 0x9b, 0x00, 0x0a, 0x49, 0xb4, 0xf8, 0x6a, 0x07,
+  0xda, 0xa5, 0x6e, 0x0e, 0xf1, 0x9b, 0xd5, 0x97, 0xee, 0x86, 0xe2, 0x96,
+  0x35, 0x86, 0x21, 0xc0, 0x6e, 0x78, 0x4f, 0x0d, 0x21, 0x6a, 0x74, 0xce,
+  0x79, 0xc0, 0xde, 0x68, 0x8b, 0xaa, 0xea, 0xf1, 0xe2, 0x94, 0x18, 0xa8,
+  0x3b, 0x65, 0x58, 0x10, 0xcb, 0xf8, 0x7e, 0x2a, 0x13, 0xc5, 0xf5, 0xa4,
+  0x66, 0xa3, 0x3c, 0xe6, 0xa2, 0x04, 0x84, 0x04, 0xa8, 0x48, 0x57, 0xb8,
+  0x64, 0xa7, 0x26, 0x56, 0xe3, 0x22, 0xdc, 0x00, 0xa5, 0x00, 0x7f, 0x7a,
+  0xdc, 0x46, 0x51, 0x85, 0xec, 0x56, 0x65, 0x4d, 0xa7, 0xd6, 0xff, 0x87,
+  0xef, 0xa0, 0xb0, 0x84, 0x04, 0xd5, 0x26, 0x46, 0x69, 0xb8, 0x9f, 0xdc,
+  0xcc, 0x23, 0x7a, 0x41, 0x2d, 0x28, 0x53, 0x37, 0xc9, 0x9e, 0x8a, 0x2d,
+  0x24, 0xa0, 0x69, 0x2c, 0x28, 0x44, 0xca, 0x0a, 0x02, 0x2c, 0x88, 0x65,
+  0xdb, 0x44, 0xe4, 0xb0, 0x52, 0x5b, 0xa9, 0x0c, 0x10, 0x22, 0x08, 0x5a,
+  0xf6, 0x3c, 0x50, 0x5e, 0x81, 0x34, 0x35, 0xe6, 0xda, 0x85, 0x90, 0x80,
+  0x60, 0x31, 0x4d, 0xf5, 0x5f, 0xe2, 0x1d, 0xee, 0x0e, 0x32, 0xc3, 0xbe,
+  0xa7, 0x78, 0xfa, 0x64, 0xcc, 0x16, 0x54, 0x9b, 0x8f, 0xa9, 0xf3, 0x4d,
+  0xb3, 0x14, 0x58, 0x32, 0x1c, 0xc9, 0x29, 0xf3, 0xdc, 0x95, 0x03, 0x92,
+  0xb4, 0x3c, 0x5d, 0xbd, 0x11, 0xfb, 0x2b, 0x62, 0xa1, 0x66, 0xbc, 0xb8,
+  0x71, 0x02, 0xe0, 0x62, 0x83, 0x89, 0xc8, 0xd1, 0x16, 0x55, 0x0f, 0xb8,
+  0x7c, 0x04, 0x6c, 0xd7, 0xae, 0x02, 0x3e, 0xb2, 0x93, 0xaf, 0x2f, 0xcb,
+  0x4c, 0x36, 0x85, 0x32, 0xf1, 0x0c, 0xac, 0xb0, 0x5a, 0xd5, 0x5e, 0x87,
+  0xe0, 0xe5, 0x29, 0x56, 0xc5, 0xab, 0xc2, 0x43, 0xf5, 0x81, 0x3c, 0x07,
+  0x88, 0x45, 0x05, 0xb8, 0x18, 0x67, 0xf0, 0xfb, 0xfe, 0xbe, 0x60, 0x8a,
+  0x35, 0x44, 0x51, 0xbc, 0x5d, 0x5a, 0x54, 0x98, 0x98, 0x39, 0x4e, 0x96,
+  0x5d, 0x24, 0xe7, 0x23, 0x15, 0x4a, 0xc2, 0x6a, 0x24, 0x5b, 0x74, 0x80,
+  0x80, 0x22, 0x23, 0x14, 0x97, 0x79, 0xbf, 0x50, 0x07, 0x21, 0x1a, 0x8f,
+  0xc0, 0x3e, 0x3f, 0xfe, 0xff, 0x3b, 0x68, 0xa3, 0x58, 0xe0, 0xec, 0x24,
+  0x10, 0xb8, 0xdf, 0x15, 0x2e, 0x77, 0xc2, 0x29, 0x4b, 0x2e, 0x4a, 0x59,
+  0x1c, 0x23, 0x0e, 0x0b, 0x2d, 0x94, 0xbc, 0x00, 0x97, 0x1c, 0xe2, 0x7f,
+  0x48, 0x1f, 0x23, 0x98, 0xe4, 0x8f, 0x5b, 0x72, 0x5b, 0x72, 0x03, 0x7b,
+  0x47, 0x2d, 0x53, 0xb4, 0xdf, 0x96, 0x90, 0xba, 0xe5, 0x01, 0x62, 0xd3,
+  0x5a, 0x97, 0x95, 0xae, 0xd3, 0x2a, 0x4b, 0x75, 0x3b, 0x39, 0xa4, 0x32,
+  0xf5, 0xbc, 0xe6, 0xe7, 0xca, 0x4b, 0x56, 0xe0, 0x3b, 0x77, 0x52, 0xb8,
+  0xe6, 0x64, 0xa9, 0x78, 0xde, 0x86, 0x87, 0x4a, 0xc2, 0x7d, 0x8f, 0x22,
+  0x37, 0xbd, 0xb9, 0x77, 0xec, 0xd7, 0x6f, 0x65, 0xd4, 0xec, 0xd8, 0x50,
+  0x92, 0x28, 0x15, 0x35, 0x93, 0x6d, 0xf9, 0xf5, 0xd7, 0x90, 0xb4, 0x28,
+  0xc6, 0x25, 0xc3, 0x3a, 0xd9, 0x21, 0xeb, 0x69, 0xf7, 0xed, 0x76, 0x95,
+  0xb6, 0xd3, 0xdf, 0xc1, 0x4e, 0xb2, 0xd3, 0x60, 0x51, 0x5d, 0x00, 0x57,
+  0x55, 0x97, 0x36, 0x5a, 0xd6, 0x27, 0x22, 0xa1, 0x51, 0x83, 0xe1, 0xc9,
+  0x02, 0x0c, 0x06, 0x93, 0xc9, 0x1d, 0xe2, 0xf5, 0x90, 0x02, 0x44, 0x00,
+  0x8d, 0xa5, 0xf4, 0x9d, 0x33, 0x64, 0xc9, 0xbe, 0x22, 0xc1, 0x5b, 0xf9,
+  0x4c, 0x31, 0x77, 0xdb, 0x18, 0xcd, 0x2b, 0x8a, 0xa0, 0x05, 0x3b, 0x2a,
+  0x17, 0x2a, 0x05, 0xe5, 0xbe, 0x51, 0xab, 0x9f, 0x49, 0x74, 0x6a, 0xb8,
+  0x4e, 0x5a, 0xa8, 0x6c, 0x5a, 0x1a, 0x04, 0x0c, 0x23, 0x01, 0xa0, 0x40,
+  0x62, 0x42, 0x9b, 0x52, 0xd7, 0x4a, 0x35, 0x75, 0x6b, 0xfc, 0x22, 0xec,
+  0x5b, 0x29, 0x78, 0x01, 0x2e, 0x39, 0x12, 0x27, 0x8a, 0x76, 0x47, 0x3f,
+  0xac, 0x91, 0xdc, 0x70, 0xea, 0x33, 0xca, 0x26, 0x60, 0xe6, 0xee, 0x8a,
+  0x76, 0xc9, 0xa1, 0xa8, 0x83, 0xde, 0x5c, 0xc3, 0x71, 0xdb, 0x52, 0x6d,
+  0x2f, 0x9a, 0x8f, 0x0c, 0x96, 0x93, 0x59, 0xd4, 0x31, 0x1e, 0xa1, 0x79,
+  0x73, 0x14, 0xcb, 0x95, 0xc4, 0xaa, 0xf7, 0x94, 0xd3, 0x52, 0x7d, 0xfe,
+  0x8f, 0x50, 0xf2, 0x8e, 0x39, 0x8c, 0xac, 0x40, 0x40, 0x92, 0xef, 0x72,
+  0xe8, 0x19, 0x72, 0x36, 0xb5, 0x8c, 0x6e, 0x30, 0x3f, 0x79, 0xef, 0x47,
+  0xb5, 0xe5, 0xbf, 0x57, 0xf8, 0x94, 0x80, 0x11, 0x12, 0x9d, 0xa2, 0xe4,
+  0xbf, 0x84, 0xa3, 0xeb, 0x68, 0x3b, 0x4f, 0xae, 0x58, 0x73, 0xf5, 0x63,
+  0x0c, 0x60, 0x11, 0x94, 0x60, 0x1c
+};
+
+guint seg_1_m4f_len = 49554;
+guint seg_1_moof_size = 1120;
+guint seg_1_sample_0_offset = 1128;
+
+static const guint seg_1_sample_sizes[] = {
+  371, 372, 477, 530, 489, 462, 441, 421, 420, 410, 402, 398, 381, 381, 386,
+  386, 369, 370, 362, 346, 357, 355, 376, 336, 341, 358, 350, 362, 333, 415,
+  386, 364, 344, 386, 358, 365, 404, 342, 361, 366, 361, 350, 390, 348, 366,
+  359, 357, 360, 349, 356, 365, 393, 353, 385, 381, 348, 345, 414, 372, 369,
+  401, 391, 333, 339, 423, 343, 445, 425, 422, 415, 406, 389, 395, 375, 356,
+  442, 432, 391, 385, 339, 277, 293, 316, 327, 309, 389, 359, 427, 326, 420,
+  407, 316, 362, 419, 349, 387, 326, 328, 367, 344, 425, 329, 379, 403, 314,
+  397, 368, 389, 380, 373, 342, 343, 368, 436, 359, 352, 361, 366, 350, 419,
+  331, 426, 401, 382, 326, 411, 364, 338, 345
+};
+
+/* in timescale */
+GstClockTime seg_1_sample_duration = 1024;
+guint32 seg_1_timescale = 44100;
diff --git a/tests/check/elements/qtmux.c b/tests/check/elements/qtmux.c
index df9f5c5..a029c52 100644
--- a/tests/check/elements/qtmux.c
+++ b/tests/check/elements/qtmux.c
@@ -577,6 +577,7 @@
   fail_unless (gst_pad_push_event (mysrcpad, gst_event_new_eos ()) == TRUE);
 
   cleanup_qtmux (qtmux, "video_%u");
+  gst_check_drop_buffers ();
 }
 
 GST_END_TEST;
@@ -671,10 +672,8 @@
 {
   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
 
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&sink_template));
-  gst_element_class_add_pad_template (element_class,
-      gst_static_pad_template_get (&src_template));
+  gst_element_class_add_static_pad_template (element_class, &sink_template);
+  gst_element_class_add_static_pad_template (element_class, &src_template);
 
   gst_element_class_set_metadata (element_class, "MPEG1 Audio Encoder",
       "Codec/Encoder/Audio", "Pretends to encode mp3", "Foo Bar <foo@bar.com>");
@@ -881,6 +880,7 @@
   gst_element_set_state (qtmux, GST_STATE_NULL);
   gst_element_set_state (filesink, GST_STATE_NULL);
 
+  gst_check_drop_buffers ();
   gst_pad_set_active (mysrcpad, FALSE);
   teardown_src_pad (mysrcpad);
   gst_object_unref (filesink);
diff --git a/tests/check/elements/rtp-payloading.c b/tests/check/elements/rtp-payloading.c
index 3af1d6c..c59f9be 100644
--- a/tests/check/elements/rtp-payloading.c
+++ b/tests/check/elements/rtp-payloading.c
@@ -18,6 +18,7 @@
  * Boston, MA 02110-1301, USA.
  */
 #include <gst/check/gstcheck.h>
+#include <gst/check/gstharness.h>
 #include <stdlib.h>
 #include <unistd.h>
 
@@ -59,6 +60,7 @@
    * Count the size of the payload in the buffer list.
    */
   len = gst_buffer_list_length (list);
+  GST_LOG ("list length %u", len);
 
   /* Loop through all groups */
   for (i = 0; i < len; i++) {
@@ -68,12 +70,14 @@
 
     paybuf = gst_buffer_list_get (list, i);
     /* only count real data which is expected in last memory block */
+    GST_LOG ("n_memory %d", gst_buffer_n_memory (paybuf));
     fail_unless (gst_buffer_n_memory (paybuf) > 1);
     mem = gst_buffer_get_memory_range (paybuf, gst_buffer_n_memory (paybuf) - 1,
         1);
     size = gst_memory_get_sizes (mem, NULL, NULL);
     gst_memory_unref (mem);
     chain_list_bytes_received += size;
+    GST_LOG ("size %d, total %u", size, chain_list_bytes_received);
   }
   gst_buffer_list_unref (list);
 
@@ -295,7 +299,6 @@
   bus = gst_pipeline_get_bus (GST_PIPELINE (p->pipeline));
 
   gst_bus_add_watch (bus, rtp_bus_callback, (gpointer) mainloop);
-  gst_object_unref (bus);
 
   /* Set pipeline to PLAYING. */
   gst_element_set_state (p->pipeline, GST_STATE_PLAYING);
@@ -350,6 +353,9 @@
   /* Release mainloop. */
   g_main_loop_unref (mainloop);
 
+  gst_bus_remove_watch (bus);
+  gst_object_unref (bus);
+
   fail_if (p->custom_event);
 }
 
@@ -751,6 +757,161 @@
 
 GST_END_TEST;
 
+static const guint8 rtp_h265_frame_data[] = {
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+static int rtp_h265_frame_data_size = 20;
+
+static int rtp_h265_frame_count = 1;
+
+GST_START_TEST (rtp_h265)
+{
+  rtp_pipeline_test (rtp_h265_frame_data, rtp_h265_frame_data_size,
+      rtp_h265_frame_count,
+      "video/x-h265,stream-format=(string)byte-stream,alignment=(string)nal",
+      "rtph265pay", "rtph265depay", 0, 0, FALSE);
+
+  /* config-interval property used to be of uint type, was changed to int,
+   * make sure old GValue stuff still works */
+  {
+    GValue val = G_VALUE_INIT;
+    GstElement *rtph265pay;
+    GParamSpec *pspec;
+
+
+    rtph265pay = gst_element_factory_make ("rtph265pay", NULL);
+    pspec = g_object_class_find_property (G_OBJECT_GET_CLASS (rtph265pay),
+        "config-interval");
+    fail_unless (pspec->value_type == G_TYPE_INT);
+    g_value_init (&val, G_TYPE_UINT);
+    g_value_set_uint (&val, 10);
+    g_object_set_property (G_OBJECT (rtph265pay), "config-interval", &val);
+    g_value_set_uint (&val, 0);
+    g_object_get_property (G_OBJECT (rtph265pay), "config-interval", &val);
+    fail_unless_equals_int (10, g_value_get_uint (&val));
+    g_object_set (G_OBJECT (rtph265pay), "config-interval", -1, NULL);
+    g_object_get_property (G_OBJECT (rtph265pay), "config-interval", &val);
+    fail_unless (g_value_get_uint (&val) == G_MAXUINT);
+    g_value_unset (&val);
+    gst_object_unref (rtph265pay);
+  }
+}
+
+GST_END_TEST;
+static const guint8 rtp_h265_list_lt_mtu_frame_data[] = {
+  /* not packetized, next NALU starts with 0x00000001 */
+  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10,
+  0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x10
+};
+
+static int rtp_h265_list_lt_mtu_frame_data_size = 16;
+
+static int rtp_h265_list_lt_mtu_frame_count = 2;
+
+/* 3 bytes start code prefixed with one zero byte, NALU header is in payload */
+static int rtp_h265_list_lt_mtu_bytes_sent = 2 * (16 - 3 - 1);
+
+static int rtp_h265_list_lt_mtu_mtu_size = 1024;
+
+GST_START_TEST (rtp_h265_list_lt_mtu)
+{
+  rtp_pipeline_test (rtp_h265_list_lt_mtu_frame_data,
+      rtp_h265_list_lt_mtu_frame_data_size, rtp_h265_list_lt_mtu_frame_count,
+      "video/x-h265,stream-format=(string)byte-stream,alignment=(string)nal",
+      "rtph265pay", "rtph265depay", rtp_h265_list_lt_mtu_bytes_sent,
+      rtp_h265_list_lt_mtu_mtu_size, TRUE);
+}
+
+GST_END_TEST;
+static const guint8 rtp_h265_list_lt_mtu_frame_data_hvc1[] = {
+  /* packetized data */
+  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+};
+
+/* length size is 3 bytes */
+static int rtp_h265_list_lt_mtu_bytes_sent_hvc1 = 2 * (16 - 2 * 3);
+
+
+GST_START_TEST (rtp_h265_list_lt_mtu_hvc1)
+{
+  rtp_pipeline_test (rtp_h265_list_lt_mtu_frame_data_hvc1,
+      rtp_h265_list_lt_mtu_frame_data_size, rtp_h265_list_lt_mtu_frame_count,
+      "video/x-h265,stream-format=(string)hvc1,alignment=(string)au,"
+      "codec_data=(buffer)0101c000000080000000000099f000fcfdf8f800000203a000010"
+      "01840010c01ffff01c000000300800000030000030099ac0900a10001003042010101c00"
+      "0000300800000030000030099a00a080f1fe36bbb5377725d602dc040404100000300010"
+      "00003000a0800a2000100074401c172b02240",
+      "rtph265pay", "rtph265depay", rtp_h265_list_lt_mtu_bytes_sent_hvc1,
+      rtp_h265_list_lt_mtu_mtu_size, TRUE);
+}
+
+GST_END_TEST;
+static const guint8 rtp_h265_list_gt_mtu_frame_data[] = {
+  /* not packetized, next NAL starts with 0x000001 */
+  0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x10
+};
+
+static const int rtp_h265_list_gt_mtu_frame_data_size = 62;
+
+static const int rtp_h265_list_gt_mtu_frame_count = 1;
+
+/* start code is 3 bytes, NALU header is 2 bytes */
+static int rtp_h265_list_gt_mtu_bytes_sent = 1 * (62 - 3 - 2);
+
+static int rtp_h265_list_gt_mtu_mtu_size = 28;
+
+GST_START_TEST (rtp_h265_list_gt_mtu)
+{
+  rtp_pipeline_test (rtp_h265_list_gt_mtu_frame_data,
+      rtp_h265_list_gt_mtu_frame_data_size, rtp_h265_list_gt_mtu_frame_count,
+      "video/x-h265,stream-format=(string)byte-stream,alignment=(string)nal",
+      "rtph265pay", "rtph265depay", rtp_h265_list_gt_mtu_bytes_sent,
+      rtp_h265_list_gt_mtu_mtu_size, TRUE);
+}
+
+GST_END_TEST;
+static const guint8 rtp_h265_list_gt_mtu_frame_data_hvc1[] = {
+  /* packetized data */
+  0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
+};
+
+/* length size is 3 bytes, NALU header is 2 bytes */
+static int rtp_h265_list_gt_mtu_bytes_sent_hvc1 = 1 * (62 - 2 * 3 - 2 * 2);
+
+GST_START_TEST (rtp_h265_list_gt_mtu_hvc1)
+{
+  rtp_pipeline_test (rtp_h265_list_gt_mtu_frame_data_hvc1,
+      rtp_h265_list_gt_mtu_frame_data_size, rtp_h265_list_gt_mtu_frame_count,
+      "video/x-h265,stream-format=(string)hvc1,alignment=(string)au,"
+      "codec_data=(buffer)0101c000000080000000000099f000fcfdf8f800000203a000010"
+      "01840010c01ffff01c000000300800000030000030099ac0900a10001003042010101c00"
+      "0000300800000030000030099a00a080f1fe36bbb5377725d602dc040404100000300010"
+      "00003000a0800a2000100074401c172b02240",
+      "rtph265pay", "rtph265depay", rtp_h265_list_gt_mtu_bytes_sent_hvc1,
+      rtp_h265_list_gt_mtu_mtu_size, TRUE);
+}
+
+GST_END_TEST;
+
 /* KLV data from Day_Flight.mpg */
 static const guint8 rtp_KLV_frame_data[] = {
   0x06, 0x0e, 0x2b, 0x34, 0x02, 0x0b, 0x01, 0x01,
@@ -1049,6 +1210,73 @@
 
 GST_END_TEST;
 
+static void
+rtp_jpeg_do_packet_loss (gdouble prob, gint num_expected)
+{
+  GstHarness *h;
+  gboolean eos = FALSE;
+  gchar *s;
+  guint i, buffer_count;
+
+  s = g_strdup_printf ("videotestsrc pattern=ball num-buffers=100 ! "
+      "jpegenc quality=50 ! rtpjpegpay ! identity drop-probability=%g ! "
+      "rtpjpegdepay", prob);
+  GST_INFO ("running pipeline %s", s);
+  h = gst_harness_new_parse (s);
+  g_free (s);
+
+  gst_harness_play (h);
+
+  do {
+    GstEvent *event;
+
+    event = gst_harness_pull_event (h);
+    eos = (GST_EVENT_TYPE (event) == GST_EVENT_EOS);
+    gst_event_unref (event);
+  } while (!eos);
+
+  buffer_count = gst_harness_buffers_received (h);
+  GST_INFO ("Got %u buffers", buffer_count);
+
+  if (num_expected >= 0) {
+    fail_unless_equals_int (num_expected, buffer_count);
+  }
+
+  for (i = 0; i < buffer_count; ++i) {
+    GstBuffer *buf;
+    GstMapInfo map;
+    guint16 soi, eoi;
+
+    buf = gst_harness_pull (h);
+    fail_unless (buf != NULL);
+
+    fail_unless (gst_buffer_map (buf, &map, GST_MAP_READ));
+    GST_MEMDUMP ("jpeg frame", map.data, map.size);
+    fail_unless (map.size > 4);
+    soi = GST_READ_UINT16_BE (map.data);
+    fail_unless (soi == 0xffd8, "expected JPEG frame start FFD8 not %02X", soi);
+    eoi = GST_READ_UINT16_BE (map.data + map.size - 2);
+    fail_unless (eoi == 0xffd9, "expected JPEG frame end FFD9 not %02X", eoi);
+    gst_buffer_unmap (buf, &map);
+    gst_buffer_unref (buf);
+  }
+
+  gst_harness_teardown (h);
+}
+
+GST_START_TEST (rtp_jpeg_packet_loss)
+{
+  gdouble probabilities[] = { 0.0, 0.001, 0.01, 0.1, 0.2, 0.5, 1.0 };
+  gint num_expected[] = { 100, -1, -1, -1, -1, -1, 0 };
+
+  GST_INFO ("Start iteration %d", __i__);
+  fail_unless (__i__ < G_N_ELEMENTS (probabilities));
+  rtp_jpeg_do_packet_loss (probabilities[__i__], num_expected[__i__]);
+  GST_INFO ("Done with iteration %d", __i__);
+}
+
+GST_END_TEST;
+
 static const guint8 rtp_g729_frame_data[] =
     { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
@@ -1109,6 +1337,7 @@
 static Suite *
 rtp_payloading_suite (void)
 {
+  GstRegistry *registry = gst_registry_get ();
   Suite *s = suite_create ("rtp_data_test");
 
   TCase *tc_chain = tcase_create ("linear");
@@ -1131,6 +1360,11 @@
   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_h265);
+  tcase_add_test (tc_chain, rtp_h265_list_lt_mtu);
+  tcase_add_test (tc_chain, rtp_h265_list_lt_mtu_hvc1);
+  tcase_add_test (tc_chain, rtp_h265_list_gt_mtu);
+  tcase_add_test (tc_chain, rtp_h265_list_gt_mtu_hvc1);
   tcase_add_test (tc_chain, rtp_klv);
   tcase_add_test (tc_chain, rtp_klv_fragmented);
   tcase_add_test (tc_chain, rtp_L16);
@@ -1149,6 +1383,9 @@
   tcase_add_test (tc_chain, rtp_jpeg_list_width_greater_than_2040);
   tcase_add_test (tc_chain, rtp_jpeg_list_height_greater_than_2040);
   tcase_add_test (tc_chain, rtp_jpeg_list_width_and_height_greater_than_2040);
+  if (gst_registry_check_feature_version (registry, "jpegenc", 1, 0, 0)
+      && gst_registry_check_feature_version (registry, "videotestsrc", 1, 0, 0))
+    tcase_add_loop_test (tc_chain, rtp_jpeg_packet_loss, 0, 7);
   tcase_add_test (tc_chain, rtp_g729);
   tcase_add_test (tc_chain, rtp_gst_custom_event);
   return s;
diff --git a/tests/check/elements/rtpbin.c b/tests/check/elements/rtpbin.c
index 372faed..67bbfdd 100644
--- a/tests/check/elements/rtpbin.c
+++ b/tests/check/elements/rtpbin.c
@@ -111,6 +111,7 @@
   GCond cond;
   GstPad *sinkpad;
   GList *pads;
+  GstCaps *caps;
 } CleanupData;
 
 static void
@@ -121,6 +122,7 @@
   g_mutex_init (&data->lock);
   g_cond_init (&data->cond);
   data->pads = NULL;
+  data->caps = NULL;
 }
 
 static void
@@ -130,6 +132,8 @@
   g_list_free (data->pads);
   g_mutex_clear (&data->lock);
   g_cond_clear (&data->cond);
+  if (data->caps)
+    gst_caps_unref (data->caps);
 }
 
 static guint8 rtp_packet[] = { 0x80, 0x60, 0x94, 0xbc, 0x8f, 0x37, 0x4e, 0xb8,
@@ -142,20 +146,19 @@
 chain_rtp_packet (GstPad * pad, CleanupData * data)
 {
   GstFlowReturn res;
-  static GstCaps *caps = NULL;
   GstSegment segment;
   GstBuffer *buffer;
   GstMapInfo map;
 
-  if (caps == NULL) {
-    caps = gst_caps_from_string ("application/x-rtp,"
+  if (data->caps == NULL) {
+    data->caps = gst_caps_from_string ("application/x-rtp,"
         "media=(string)audio, clock-rate=(int)44100, "
         "encoding-name=(string)L16, encoding-params=(string)1, channels=(int)1");
     data->seqnum = 0;
   }
 
   gst_pad_send_event (pad, gst_event_new_stream_start (GST_OBJECT_NAME (pad)));
-  gst_pad_send_event (pad, gst_event_new_caps (caps));
+  gst_pad_send_event (pad, gst_event_new_caps (data->caps));
   gst_segment_init (&segment, GST_FORMAT_TIME);
   gst_pad_send_event (pad, gst_event_new_segment (&segment));
 
diff --git a/tests/check/elements/rtph261.c b/tests/check/elements/rtph261.c
new file mode 100644
index 0000000..7c34d37
--- /dev/null
+++ b/tests/check/elements/rtph261.c
@@ -0,0 +1,142 @@
+#include <gst/check/check.h>
+#include <gst/check/gstharness.h>
+#include <gst/rtp/gstrtpbuffer.h>
+
+#define H261_RTP_CAPS_STR                                               \
+  "application/x-rtp,media=video,encoding-name=H261,clock-rate=90000,payload=31"
+
+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
+
+static guint8 *
+create_h261_payload (gint sbit, gint ebit, gint psc, gsize size)
+{
+  GstRtpH261PayHeader header;
+  const gint header_len = 4;
+  guint8 *data = g_malloc0 (size);
+
+  memset (&header, 0x00, sizeof (header));
+
+  header.sbit = sbit;
+  header.ebit = ebit;
+
+  memset (data, 0xff, size);
+  memcpy (data, &header, header_len);
+
+  if (psc) {
+    guint32 word = 0x000100ff >> sbit;
+    data[header_len + 0] = (word >> 24) & 0xff;
+    data[header_len + 1] = (word >> 16) & 0xff;
+    data[header_len + 2] = (word >> 8) & 0xff;
+    data[header_len + 3] = (word >> 0) & 0xff;
+  }
+
+  return data;
+}
+
+static GstBuffer *
+create_rtp_copy_payload (const guint8 * data, gsize size, guint ts, guint16 seq,
+    gboolean marker, guint csrcs)
+{
+  GstBuffer *buf = gst_rtp_buffer_new_allocate (size, 0, csrcs);
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+
+  gst_rtp_buffer_map (buf, GST_MAP_WRITE, &rtp);
+
+  gst_rtp_buffer_set_seq (&rtp, seq);
+  gst_rtp_buffer_set_marker (&rtp, marker);
+  memcpy (gst_rtp_buffer_get_payload (&rtp), data, size);
+
+  GST_BUFFER_PTS (buf) = (ts) * (GST_SECOND / 30);
+  GST_BUFFER_DURATION (buf) = (GST_SECOND / 30);
+
+  gst_rtp_buffer_unmap (&rtp);
+
+  return buf;
+}
+
+GST_START_TEST (test_h263depay_empty_payload)
+{
+  GstHarness *h = gst_harness_new ("rtph261depay");
+  gint sbit = 4;
+  gint ebit = 4;
+  gsize size;
+  guint8 *payload;
+  guint seq = 0;
+
+  gst_harness_set_src_caps_str (h, H261_RTP_CAPS_STR);
+
+  /* First send a proper packet with picture start code */
+  size = 100;
+  payload = create_h261_payload (sbit, ebit, TRUE, size);
+  gst_harness_push (h, create_rtp_copy_payload (payload, size, 0, seq++, FALSE,
+          0));
+  g_free (payload);
+
+  /* Not a complete frame */
+  fail_unless_equals_int (gst_harness_buffers_received (h), 0);
+
+  /* Second buffer has invalid empty payload */
+  size = GST_RTP_H261_PAYLOAD_HEADER_LEN;
+  payload = create_h261_payload (sbit, ebit, FALSE, size);
+  gst_harness_push (h, create_rtp_copy_payload (payload, size, 0, seq++, TRUE,
+          0));
+  g_free (payload);
+
+  /* Invalid payload should be dropped */
+  fail_unless_equals_int (gst_harness_buffers_received (h), 0);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+static Suite *
+rtph261_suite (void)
+{
+  Suite *s = suite_create ("rtph261");
+  TCase *tc_chain;
+
+  suite_add_tcase (s, (tc_chain = tcase_create ("h261depay")));
+  tcase_add_test (tc_chain, test_h263depay_empty_payload);
+
+  return s;
+}
+
+GST_CHECK_MAIN (rtph261);
diff --git a/tests/check/elements/rtph263.c b/tests/check/elements/rtph263.c
index 90f4d5c..ffa3376 100644
--- a/tests/check/elements/rtph263.c
+++ b/tests/check/elements/rtph263.c
@@ -27,6 +27,25 @@
   "application/x-rtp,media=video,encoding-name=H263,clock-rate=90000,"  \
   "payload=" G_STRINGIFY(p)
 
+#define H263P_RTP_CAPS_STR(p)                                           \
+  "application/x-rtp,media=video,encoding-name=H263-1998,clock-rate=90000," \
+  "payload="G_STRINGIFY(p)
+
+static gboolean
+have_element (const gchar * element_name)
+{
+  GstElement *element;
+  gboolean ret;
+
+  element = gst_element_factory_make (element_name, NULL);
+  ret = element != NULL;
+
+  if (element)
+    gst_object_unref (element);
+
+  return ret;
+}
+
 static GstBuffer *
 create_rtp_buffer (guint8 * data, gsize size, guint ts, gint seqnum)
 {
@@ -102,6 +121,169 @@
 
 GST_END_TEST;
 
+GST_START_TEST (test_h263pay_mode_b_snow)
+{
+  /* Payloading one large frame (like snow) is more likely to use mode b and
+   * trigger issues in valgrind seen previously like double free, invalid read
+   * etc. */
+  GstHarness *h;
+  guint frames = 1;
+  guint i;
+
+  if (!have_element ("avenc_h263"))
+    return;
+
+  h = gst_harness_new_parse
+      ("avenc_h263 rtp-payload-size=1 ! rtph263pay mtu=1350 ");
+  gst_harness_add_src_parse (h,
+      "videotestsrc pattern=snow is-live=1 ! "
+      "capsfilter caps=\"video/x-raw,format=I420,width=176,height=144\"", TRUE);
+
+  for (i = 0; i < frames; i++)
+    gst_harness_push_from_src (h);
+  fail_unless (gst_harness_buffers_received (h) >= frames);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+/* gst_rtp_buffer_get_payload() may return a copy of the payload. This test
+ * makes sure that the rtph263pdepay also produces the correct output in this
+ * case. */
+GST_START_TEST (test_h263pdepay_fragmented_memory_non_writable_buffer)
+{
+  GstHarness *h;
+  GstBuffer *header_buf, *payload_buf, *buf;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  guint8 header[] = {
+    0x04, 0x00
+  };
+  guint8 payload[] = {
+    0x80, 0x02, 0x1c, 0xb8, 0x01, 0x00, 0x11, 0xe0, 0x44, 0xc4
+  };
+  guint8 frame[] = {
+    0x00, 0x00, 0x80, 0x02, 0x1c, 0xb8, 0x01, 0x00, 0x11, 0xe0, 0x44, 0xc4
+  };
+
+  h = gst_harness_new ("rtph263pdepay");
+  gst_harness_set_src_caps_str (h, "application/x-rtp, media=video, "
+      "clock-rate=90000, encoding-name=H263-1998");
+
+  /* Packet with M=1, P=1 */
+  header_buf = gst_rtp_buffer_new_allocate (sizeof (header), 0, 0);
+  gst_rtp_buffer_map (header_buf, GST_MAP_WRITE, &rtp);
+  gst_rtp_buffer_set_marker (&rtp, TRUE);
+  memcpy (gst_rtp_buffer_get_payload (&rtp), header, sizeof (header));
+  gst_rtp_buffer_unmap (&rtp);
+
+  payload_buf = gst_buffer_new_allocate (NULL, sizeof (payload), NULL);
+  gst_buffer_fill (payload_buf, 0, payload, sizeof (payload));
+  buf = gst_buffer_append (header_buf, payload_buf);
+
+  gst_harness_push (h, gst_buffer_ref (buf));
+  gst_buffer_unref (buf);
+
+  buf = gst_harness_pull (h);
+  fail_unless (gst_buffer_memcmp (buf, 0, frame, sizeof (frame)) == 0);
+  gst_buffer_unref (buf);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+/* gst_rtp_buffer_get_payload() may return a copy of the payload. This test
+ * makes sure that the rtph263pdepay also produces the correct output in this
+ * case. */
+GST_START_TEST
+    (test_h263pdepay_fragmented_memory_non_writable_buffer_split_frame) {
+  GstHarness *h;
+  GstBuffer *header_buf, *payload_buf, *buf;
+  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
+  guint8 header[] = {
+    0x04, 0x00
+  };
+  guint8 payload[] = {
+    0x80, 0x02, 0x1c, 0xb8, 0x01, 0x00, 0x11, 0xe0, 0x44, 0xc4
+  };
+  guint8 frame[] = {
+    0x00, 0x00, 0x80, 0x02, 0x1c, 0xb8, 0x01, 0x00, 0x11, 0xe0, 0x44, 0xc4
+  };
+
+  h = gst_harness_new ("rtph263pdepay");
+  gst_harness_set_src_caps_str (h, "application/x-rtp, media=video, "
+      "clock-rate=90000, encoding-name=H263-1998");
+
+  /* First packet, M=0, P=1 */
+  header_buf = gst_rtp_buffer_new_allocate (sizeof (header), 0, 0);
+  gst_rtp_buffer_map (header_buf, GST_MAP_WRITE, &rtp);
+  gst_rtp_buffer_set_marker (&rtp, FALSE);
+  gst_rtp_buffer_set_seq (&rtp, 0);
+  memcpy (gst_rtp_buffer_get_payload (&rtp), header, sizeof (header));
+  gst_rtp_buffer_unmap (&rtp);
+
+  payload_buf = gst_buffer_new_allocate (NULL, sizeof (payload), NULL);
+  gst_buffer_fill (payload_buf, 0, payload, sizeof (payload));
+  buf = gst_buffer_append (header_buf, payload_buf);
+
+  gst_harness_push (h, gst_buffer_ref (buf));
+  gst_buffer_unref (buf);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 0);
+
+  /* Second packet, M=1, P=1 */
+  header_buf = gst_rtp_buffer_new_allocate (sizeof (header), 0, 0);
+  gst_rtp_buffer_map (header_buf, GST_MAP_WRITE, &rtp);
+  gst_rtp_buffer_set_marker (&rtp, TRUE);
+  gst_rtp_buffer_set_seq (&rtp, 1);
+  memcpy (gst_rtp_buffer_get_payload (&rtp), header, sizeof (header));
+  gst_rtp_buffer_unmap (&rtp);
+
+  payload_buf = gst_buffer_new_allocate (NULL, sizeof (payload), NULL);
+  gst_buffer_memset (payload_buf, 0, 0, 10);
+  buf = gst_buffer_append (header_buf, payload_buf);
+
+  gst_harness_push (h, gst_buffer_ref (buf));
+  gst_buffer_unref (buf);
+  fail_unless_equals_int (gst_harness_buffers_received (h), 1);
+
+  buf = gst_harness_pull (h);
+  fail_unless (gst_buffer_memcmp (buf, 0, frame, sizeof (frame)) == 0);
+  gst_buffer_unref (buf);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_h263pdepay_dont_push_empty_frame)
+{
+  GstHarness *h = gst_harness_new ("rtph263pdepay");
+
+  /* Packet that only contains header information and an extra picture header
+   * (PLEN > 0). Partly handcrafted packet. Originally this packet did not
+   * have P=1 (hence it was not start of a picture). With both P=1 and M=1 we
+   * only need one packet to reproduce the issue where trying to push an empty
+   * frame when PLEN is set */
+  guint8 packet[] = {
+    0x80, 0xe8, 0xbc, 0xaa, 0x14, 0x12, 0x16, 0x5c, 0xb8, 0x4e, 0x39, 0x04,
+    0x25, 0x00, 0x54, 0x39, 0xd0, 0x12, 0x06, 0x9e, 0xb5, 0x0a, 0xf5, 0xe8,
+    0x32, 0xeb, 0xd0, 0x6b, 0xd6, 0xa2, 0xfa, 0xd4, 0x3d, 0xd7, 0xa0, 0x2b,
+    0x24, 0x97, 0xc3, 0xbf, 0xc0, 0xbb, 0xd7, 0xa0,
+  };
+
+  gst_harness_set_src_caps_str (h, H263P_RTP_CAPS_STR (100));
+
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          create_rtp_buffer (packet, sizeof (packet), 0, 0)));
+
+  fail_unless_equals_int (gst_harness_buffers_received (h), 0);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtph263_suite (void)
 {
@@ -113,6 +295,16 @@
   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);
 
+  suite_add_tcase (s, (tc_chain = tcase_create ("h263pay")));
+  tcase_add_test (tc_chain, test_h263pay_mode_b_snow);
+
+  suite_add_tcase (s, (tc_chain = tcase_create ("h263pdepay")));
+  tcase_add_test (tc_chain,
+      test_h263pdepay_fragmented_memory_non_writable_buffer);
+  tcase_add_test (tc_chain,
+      test_h263pdepay_fragmented_memory_non_writable_buffer_split_frame);
+  tcase_add_test (tc_chain, test_h263pdepay_dont_push_empty_frame);
+
   return s;
 }
 
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c
index 3b519e0..1a9d0e6 100644
--- a/tests/check/elements/rtpjitterbuffer.c
+++ b/tests/check/elements/rtpjitterbuffer.c
@@ -5,7 +5,7 @@
  * Copyright (C) 2012 Cisco Systems, Inc
  *               Authors: Kelley Rogers <kelro@cisco.com>
  *               Havard Graff <hgraff@cisco.com>
- * Copyright (C) 2013-2015 Pexip AS
+ * Copyright (C) 2013-2016 Pexip AS
  *               Stian Selnes <stian@pexip>
  *               Havard Graff <havard@pexip>
  *
@@ -447,6 +447,15 @@
       TRUE, seq_num, seq_num * PCMU_RTP_TS_DURATION);
 }
 
+static GstBuffer *
+generate_test_buffer_rtx (GstClockTime dts, guint seq_num)
+{
+  GstBuffer *buffer = generate_test_buffer_full (dts, TRUE, seq_num,
+      seq_num * PCMU_RTP_TS_DURATION);
+  GST_BUFFER_FLAG_SET (buffer, GST_RTP_BUFFER_FLAG_RETRANSMISSION);
+  return buffer;
+}
+
 static gint
 get_rtp_seq_num (GstBuffer * buf)
 {
@@ -520,6 +529,29 @@
   gst_event_unref (event);
 }
 
+static gboolean
+verify_jb_stats (GstElement * jb, GstStructure * expected)
+{
+  gboolean ret;
+  GstStructure *actual;
+  g_object_get (jb, "stats", &actual, NULL);
+
+  ret = gst_structure_is_subset (actual, expected);
+
+  if (!ret) {
+    gchar *e_str = gst_structure_to_string (expected);
+    gchar *a_str = gst_structure_to_string (actual);
+    fail_unless (ret, "%s is not a subset of %s", e_str, a_str);
+    g_free (e_str);
+    g_free (a_str);
+  }
+
+  gst_structure_free (expected);
+  gst_structure_free (actual);
+
+  return ret;
+}
+
 GST_START_TEST (test_only_one_lost_event_on_large_gaps)
 {
   GstHarness *h = gst_harness_new ("rtpjitterbuffer");
@@ -532,7 +564,13 @@
 
   gst_harness_set_src_caps (h, generate_caps ());
   testclock = gst_harness_get_testclock (h);
-  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms, NULL);
+  /* Need to set max-misorder-time and max-dropout-time to 0 so the
+   * jitterbuffer does not base them on packet rate calculations.
+   * If it does, out gap is big enough to be considered a new stream and
+   * we wait for a few consecutive packets just to be sure
+   */
+  g_object_set (h->element, "do-lost", TRUE, "latency", jb_latency_ms,
+      "max-misorder-time", 0, "max-dropout-time", 0, NULL);
 
   /* push the first buffer in */
   fail_unless_equals_int (GST_FLOW_OK,
@@ -598,6 +636,10 @@
   fail_unless_equals_uint64 (10 * GST_SECOND, GST_BUFFER_PTS (out_buf));
   gst_buffer_unref (out_buf);
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-lost", G_TYPE_UINT64, (guint64) 499, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
@@ -682,6 +724,11 @@
   fail_unless_equals_int (5, get_rtp_seq_num (out_buf));
   gst_buffer_unref (out_buf);
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 5,
+              "num-lost", G_TYPE_UINT64, (guint64) 1, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
@@ -743,12 +790,76 @@
   fail_unless_equals_int (5, get_rtp_seq_num (out_buf));
   gst_buffer_unref (out_buf);
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 4,
+              "num-lost", G_TYPE_UINT64, (guint64) 2, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+
+GST_START_TEST (test_num_late_when_considered_lost_arrives)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  gboolean do_lost = __i__ != 0;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-lost", do_lost, "latency", 100, NULL);
+
+  /* push the first buffer through */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (0)));
+  /* sync on the first packet */
+  gst_harness_crank_single_clock_wait (h);
+
+  /* gap of 1 */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (2)));
+
+  /* crank to output lost-event */
+  gst_harness_crank_single_clock_wait (h);
+
+  if (do_lost) {
+    /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+    for (gint i = 0; i < 3; i++)
+      gst_event_unref (gst_harness_pull_event (h));
+
+    /* we should now receive packet-lost-events for buffer 1 */
+    verify_lost_event (gst_harness_pull_event (h),
+        1, 1 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
+  }
+
+  /* pull out buffers to ensure determinism */
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* we have one lost packet in the stats */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 2,
+              "num-lost", G_TYPE_UINT64, (guint64) 1,
+              "num-late", G_TYPE_UINT64, (guint64) 0, NULL)));
+
+  /* buffer 1 now arrives (too late) */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (1)));
+
+  /* and this increments num-late */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 2,
+              "num-lost", G_TYPE_UINT64, (guint64) 1,
+              "num-late", G_TYPE_UINT64, (guint64) 1, NULL)));
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_all_packets_are_timestamped_zero)
 {
   GstHarness *h = gst_harness_new ("rtpjitterbuffer");
@@ -803,12 +914,138 @@
   fail_unless_equals_int (5, get_rtp_seq_num (out_buf));
   gst_buffer_unref (out_buf);
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 4,
+              "num-lost", G_TYPE_UINT64, (guint64) 2, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (test_reorder_of_non_equidistant_packets)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5;
+  GstClockID pending_id;
+  GstClockTime time;
+  gint seq, frame;
+  gint num_init_frames = 1;
+  const GstClockTime frame_dur = PCMU_BUF_DURATION;
+  const guint32 frame_rtp_ts_dur = PCMU_RTP_TS_DURATION;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", latency_ms, NULL);
+
+  for (frame = 0, seq = 0; frame < num_init_frames; frame++, seq += 2) {
+    /* Push a couple of packets with identical timestamp, typical for a video
+     * stream where one frame generates multiple packets. */
+    gst_harness_set_time (h, frame * frame_dur);
+    gst_harness_push (h, generate_test_buffer_full (frame * frame_dur, FALSE,
+            seq, frame * frame_rtp_ts_dur));
+    gst_harness_push (h, generate_test_buffer_full (frame * frame_dur, TRUE,
+            seq + 1, frame * frame_rtp_ts_dur));
+
+    if (frame == 0)
+      /* deadline for buffer 0 expires */
+      gst_harness_crank_single_clock_wait (h);
+
+    gst_buffer_unref (gst_harness_pull (h));
+    gst_buffer_unref (gst_harness_pull (h));
+  }
+
+  /* Finally push the last frame reordered */
+  gst_harness_set_time (h, frame * frame_dur);
+  gst_harness_push (h, generate_test_buffer_full (frame * frame_dur, TRUE,
+          seq + 1, frame * frame_rtp_ts_dur));
+
+  /* Check the scheduled lost timer. The expected arrival of this packet
+   * should be assumed to be the same as the last packet received since we
+   * don't know wether the missing packet belonged to this or previous
+   * frame. */
+  gst_test_clock_wait_for_next_pending_id (testclock, &pending_id);
+  time = gst_clock_id_get_time (pending_id);
+  fail_unless_equals_int64 (time, frame * frame_dur + latency_ms * GST_MSECOND);
+  gst_clock_id_unref (pending_id);
+
+  /* And then missing packet arrives just in time */
+  gst_harness_set_time (h, time - 1);
+  gst_harness_push (h, generate_test_buffer_full (time - 1, FALSE, seq,
+          frame * frame_rtp_ts_dur));
+
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_loss_equidistant_spacing_with_parameter_packets)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  GstEvent *event;
+  gint latency_ms = 5;
+  gint seq, frame;
+  gint num_init_frames = 10;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  testclock = gst_harness_get_testclock (h);
+  g_object_set (h->element, "do-lost", TRUE, "latency", latency_ms, NULL);
+
+  /* drop stream-start, caps, segment */
+  for (int i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  for (frame = 0, seq = 0; frame < num_init_frames; frame++, seq++) {
+    gst_harness_set_time (h, frame * PCMU_BUF_DURATION);
+    gst_harness_push (h, generate_test_buffer_full (frame * PCMU_BUF_DURATION,
+            TRUE, seq, frame * PCMU_RTP_TS_DURATION));
+
+    if (frame == 0)
+      /* deadline for buffer 0 expires */
+      gst_harness_crank_single_clock_wait (h);
+
+    gst_buffer_unref (gst_harness_pull (h));
+  }
+
+  /* Push three packets with same rtptime, simulating parameter packets +
+   * frame. This should not disable equidistant mode as it is common for
+   * certain audio codecs. */
+  for (gint i = 0; i < 3; i++) {
+    gst_harness_set_time (h, frame * PCMU_BUF_DURATION);
+    gst_harness_push (h, generate_test_buffer_full (frame * PCMU_BUF_DURATION,
+            i == 2, seq++, frame * PCMU_RTP_TS_DURATION));
+    gst_buffer_unref (gst_harness_pull (h));
+  }
+  frame++;
+
+  /* Finally push the last packet introducing a gap */
+  gst_harness_set_time (h, frame * PCMU_BUF_DURATION);
+  gst_harness_push (h, generate_test_buffer_full (frame * PCMU_BUF_DURATION,
+          TRUE, seq + 1, frame * PCMU_RTP_TS_DURATION));
+
+  /* Check that the lost event has been generated assuming equidistant
+   * spacing. */
+  event = gst_harness_pull_event (h);
+  verify_lost_event (event, seq,
+      frame * PCMU_BUF_DURATION - PCMU_BUF_DURATION / 2, PCMU_BUF_DURATION / 2);
+
+  gst_buffer_unref (gst_harness_pull (h));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+
 static void
 gst_test_clock_set_time_and_process (GstTestClock * testclock,
     GstClockTime time)
@@ -893,128 +1130,201 @@
 {
   GstHarness *h = gst_harness_new ("rtpjitterbuffer");
   GstTestClock *testclock;
-  GstBuffer *out_buf;
-  GstEvent *out_event;
-  gint jb_latency_ms = 200;
-  const GstClockTime rtx_retry_timeout = 40 * GST_MSECOND;
-  GstStructure *rtx_stats;
-  const GValue *rtx_stat;
-  gint i;
+  gint latency_ms = 200;
+  gint rtx_delay_ms;
+  GstClockTime last_rtx_request, now;
 
-  gst_harness_set_src_caps (h, generate_caps ());
   testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      NULL);
 
-  g_object_set (h->element, "do-lost", TRUE, NULL);
-  g_object_set (h->element, "do-retransmission", TRUE, NULL);
-  g_object_set (h->element, "latency", jb_latency_ms, NULL);
-  g_object_set (h->element, "rtx-retry-period", 120, NULL);
+  for (gint i = 0; i <= latency_ms / PCMU_BUF_MS; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
 
-  /* push the first buffer in */
-  fail_unless_equals_int (GST_FLOW_OK,
-      gst_harness_push (h, generate_test_buffer (0)));
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
 
-  gst_harness_set_time (h, 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 */
-  fail_unless_equals_int (GST_FLOW_OK,
-      gst_harness_push (h, generate_test_buffer (1)));
-
-  /* push buffer 4, 2 and 3 are missing now, we should get
-   * retransmission events for 3 at 100ms*/
-  fail_unless_equals_int (GST_FLOW_OK,
-      gst_harness_push (h, generate_test_buffer (4)));
-
-  /* wait for first retransmission request */
-  gst_test_clock_set_time_and_process (testclock, 50 * GST_MSECOND);
+  for (gint i = 0; i <= latency_ms / PCMU_BUF_MS; i++)
+    gst_buffer_unref (gst_harness_pull (h));
 
   /* drop reconfigure event */
   gst_event_unref (gst_harness_pull_upstream_event (h));
-  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
-  for (int i = 0; i < 3; i++)
-    gst_event_unref (gst_harness_pull_event (h));
 
-  /* First event for 2 */
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 2, rtx_retry_timeout, 10, PCMU_BUF_DURATION);
+  /*
+     The expected sequence of buffers is this:
+     ____   ____   ____   ____
+     ... | 10 | | 11 | | 12 | | 13 |
+     ––––   ––––   ––––   ––––
+     200ms  220ms  240ms  260ms
 
-  /* wait for second retransmission request */
-  gst_test_clock_set_time_and_process (testclock, 60 * GST_MSECOND);
+     But instead we get this:
+     ____    _ _    _ _   ____
+     ... | 10 |  |   |  |   | | 13 |
+     ––––    - -    - -   ––––
+     200ms                260ms
 
-  /* Second event for 3 */
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 0, PCMU_BUF_DURATION);
+     Now it is important to note that the next thing that happens is that
+     the RTX timeout for packet 11 will happen at time 230ms, so we crank
+     the timer thread to advance the time to this: */
+  gst_harness_crank_single_clock_wait (h);
+  rtx_delay_ms = PCMU_BUF_MS / 2;
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      11, 11 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request,
+      11 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+  gst_harness_wait_for_clock_id_waits (h, 1, 60);
 
-  /* now we wait for the next timeout for 2 */
-  gst_test_clock_set_time_and_process (testclock, 90 * GST_MSECOND);
-
-  /* First event for 2 */
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 2, rtx_retry_timeout, 50, PCMU_BUF_DURATION);
-
-  /* now we wait for the next timeout for 3 */
-  gst_test_clock_set_time_and_process (testclock, 100 * GST_MSECOND);
-
-  /* Second event for 3 */
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 3, 60 * GST_MSECOND, 40, PCMU_BUF_DURATION);
-
-  /* make buffer 3 */
+  /* The next scheduled RTX for packet 11 is now at 230 + 40 = 270ms,
+     so the next thing that happens is that buffer 13 arrives in perfect time: */
+  now = 13 * PCMU_BUF_DURATION;
+  gst_harness_set_time (h, now);
   fail_unless_equals_int (GST_FLOW_OK,
-      gst_harness_push (h, generate_test_buffer (3)));
+      gst_harness_push (h,
+          generate_test_buffer_full (now, TRUE, 13,
+              13 * PCMU_RTP_TS_DURATION)));
 
-  /* make more buffers */
-  for (i = 5; i < 15; i++) {
+  /*
+
+     This will estimate the dts on the two missing packets to:
+     ____   ____
+     ... | 11 | | 12 | ...
+     ––––   ––––
+     220ms  240ms
+
+     And given their regular interspacing of 20ms, it will schedule two RTX
+     timers for them like so:
+
+     ____   ____
+     ... | 11 | | 12 | ...
+     ––––   ––––
+     230ms  250ms
+
+     There are however two problems, packet 11 we have already sent one RTX for
+     and its timeout is currently at 270ms, so we should not tamper with that,
+     and as for packet 12, 250ms has already expired, so we now expect to see
+     an rtx-event being sent for packet 12 immediately: */
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      12, 12 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+
+  /* and another crank will see the second RTX event being sent for packet 11 */
+  gst_harness_crank_single_clock_wait (h);
+  rtx_delay_ms += 40;
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      11, 11 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request,
+      11 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (text_rtx_two_missing_early)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 30;
+  GstClockTime last_rtx_request, now;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      NULL);
+
+  for (gint i = 0; i <= latency_ms / PCMU_BUF_MS; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
     fail_unless_equals_int (GST_FLOW_OK,
         gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
   }
 
-  gst_test_clock_set_time_and_process (testclock, 130 * GST_MSECOND);
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
 
-  /* now we only get requests for 2 */
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 2, rtx_retry_timeout, 90, PCMU_BUF_DURATION);
+  for (gint i = 0; i <= latency_ms / PCMU_BUF_MS; i++)
+    gst_buffer_unref (gst_harness_pull (h));
 
-  /* this is when buffer 0 deadline expires */
-  gst_test_clock_set_time_and_process (testclock, 200 * GST_MSECOND);
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
 
-  for (i = 0; i < 2; i++) {
-    GST_DEBUG ("popping %d", i);
-    out_buf = gst_harness_pull (h);
-    fail_unless_equals_int (i, get_rtp_seq_num (out_buf));
-    gst_buffer_unref (out_buf);
-  }
+  /*
+     The expected sequence of buffers is this:
+     ___   ___   ___   ___   ___
+     | 0 | | 1 | | 2 | | 3 | | 4 |
+     –––   –––   –––   –––   –––
+     0ms  20ms  40ms  60ms  80ms
 
-  /* this is when 2 is lost */
-  gst_test_clock_set_time_and_process (testclock, 240 * GST_MSECOND);
+     But instead we get this:
+     ___   ___   _ _   _ _   ___
+     | 0 | | 1 | |   | |   | | 4 |
+     –––   –––   – –   – –   –––
+     0ms  20ms              41ms
 
-  /* we should now receive a packet-lost-event for buffer 2 */
-  out_event = gst_harness_pull_event (h);
-  verify_lost_event (out_event, 2, 40 * GST_MSECOND, PCMU_BUF_DURATION);
+   */
 
-  /* verify that buffers made it through! */
-  for (i = 3; i < 15; i++) {
-    GST_DEBUG ("popping %d", i);
-    out_buf = gst_harness_pull (h);
-    fail_unless_equals_int (i, get_rtp_seq_num (out_buf));
-    gst_buffer_unref (out_buf);
-  }
-  /* should still have only seen 1 packet lost events,
-     so no events in the queue */
-  fail_unless_equals_int (0, gst_harness_events_in_queue (h));
+  now = 41 * GST_MSECOND;
+  gst_harness_set_time (h, now);
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h,
+          generate_test_buffer_full (now, TRUE, 4, 4 * PCMU_RTP_TS_DURATION)));
 
-  g_object_get (h->element, "stats", &rtx_stats, NULL);
+  /*
 
-  rtx_stat = gst_structure_get_value (rtx_stats, "rtx-count");
-  fail_unless_equals_uint64 (5, g_value_get_uint64 (rtx_stat));
+     With the now calculated packet-spacing of (41-20) / 3 = 7,
+     giving us these expected times:
+     ___   ___   ___   ___   ___
+     | 0 | | 1 | | 2 | | 3 | | 4 |
+     –––   –––   –––   –––   –––
+     0ms  20ms  27ms  34ms  41ms
 
-  rtx_stat = gst_structure_get_value (rtx_stats, "rtx-success-count");
-  fail_unless_equals_uint64 (1, g_value_get_uint64 (rtx_stat));
+     For RTX, the inital RTX-timeouts for the missing buffers are
+     the expected arrival time + half the packet-spacing time, like this:
+     ___   ___
+     | 2 | | 3 |
+     –––   –––
+     50ms  70ms
 
-  rtx_stat = gst_structure_get_value (rtx_stats, "rtx-rtt");
-  fail_unless_equals_uint64 (0, g_value_get_uint64 (rtx_stat));
-  gst_structure_free (rtx_stats);
+     But since we have re-calculated the estimated arrival-time
+     of these buffers, we have to adjust the RTX timeout as well,
+     and we use the original delay (packet-spacing / 2) = 10ms,
+     and add it on:
+     ___   ___
+     | 2 | | 3 |
+     –––   –––
+     37ms  44ms
+
+     Also note that the first RTX request is now scheduled for a
+     time that is prior to NOW (37ms < 41ms), so it will be sent straight
+     away without us needing to "crank" the timer-thread
+
+   */
+
+  /* The RTX request for packet 2 has timestamp 27ms and delay 10ms */
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      2, 27 * GST_MSECOND, 10, PCMU_BUF_DURATION);
+  /* and is sent immediately after packet 4 arrives (41ms) */
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, now);
+
+  /* crank the timer thread */
+  gst_harness_crank_single_clock_wait (h);
+
+  /* The RTX request for packet 3 has timestamp 34ms and delay 10ms */
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      3, 34 * GST_MSECOND, 10, PCMU_BUF_DURATION);
+  /* and is sent at 44ms */
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, 44 * GST_MSECOND);
 
   gst_object_unref (testclock);
   gst_harness_teardown (h);
@@ -1067,12 +1377,12 @@
 
   /* we should now receive retransmission requests for 2 -> 5 */
   out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 2, 20 * GST_MSECOND, 30, PCMU_BUF_DURATION);
+  verify_rtx_event (out_event, 2, 20 * GST_MSECOND, 17, PCMU_BUF_DURATION);
 
   for (i = 3; i < 5; i++) {
     GST_DEBUG ("popping %d", i);
     out_event = gst_harness_pull_upstream_event (h);
-    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
+    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 17, PCMU_BUF_DURATION);
   }
   fail_unless_equals_int (0, gst_harness_upstream_events_in_queue (h));
 
@@ -1083,7 +1393,7 @@
 
   /* we should now receive retransmission requests for 5 */
   out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 5, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
+  verify_rtx_event (out_event, 5, 20 * GST_MSECOND, 17, PCMU_BUF_DURATION);
 
   /* wait for timeout for rtx 6 -> 7 */
   gst_test_clock_set_time_and_process (testclock, 60 * GST_MSECOND);
@@ -1091,7 +1401,7 @@
   for (i = 6; i < 8; i++) {
     GST_DEBUG ("popping %d", i);
     out_event = gst_harness_pull_upstream_event (h);
-    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 0, PCMU_BUF_DURATION);
+    verify_rtx_event (out_event, i, 20 * GST_MSECOND, 17, PCMU_BUF_DURATION);
   }
 
   /* churn through 7 sync_times until the new buffer gets pushed out */
@@ -1107,9 +1417,6 @@
     gst_buffer_unref (out_buf);
   }
 
-  /* churn through 1 sync_time until the next buffer gets pushed out */
-  gst_harness_crank_single_clock_wait (h);
-
   for (i = 2; i < 8; i++) {
     GST_DEBUG ("popping lost event %d", i);
     out_event = gst_harness_pull_event (h);
@@ -1126,15 +1433,635 @@
     gst_buffer_unref (out_buf);
   }
 
-  GST_DEBUG ("waiting for 240ms");
-  gst_test_clock_set_time_and_process (testclock, 240 * GST_MSECOND);
-
   GST_DEBUG ("popping lost event 10");
   out_event = gst_harness_pull_event (h);
   verify_lost_event (out_event, 10, 40 * GST_MSECOND, PCMU_BUF_DURATION);
 
   fail_unless_equals_int (0, gst_harness_events_in_queue (h));
-  fail_unless_equals_int (20, gst_harness_upstream_events_in_queue (h));
+  fail_unless_equals_int (15, gst_harness_upstream_events_in_queue (h));
+
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-lost", G_TYPE_UINT64, (guint64) 7,
+              "rtx-count", G_TYPE_UINT64, (guint64) 21,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) 0, NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_buffer_arrives_just_in_time)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5 * PCMU_BUF_MS;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  GstBuffer *buffer;
+  GstClockTime now, last_rtx_request;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      "rtx-max-retries", 1, NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+
+  /* Crank clock to send retransmission events requesting seqnum 6 which has
+   * not arrived yet. */
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, 130 * GST_MSECOND);
+
+  /* seqnum 6 arrives just before it times out and is considered lost */
+  now = 200 * GST_MSECOND;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+  buffer = gst_harness_pull (h);
+  fail_unless_equals_int (6, get_rtp_seq_num (buffer));
+  gst_buffer_unref (buffer);
+
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 1,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) (now - last_rtx_request),
+              NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_buffer_arrives_too_late)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5 * PCMU_BUF_MS;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  GstClockTime now, last_rtx_request;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      "do-lost", TRUE, "rtx-max-retries", 1, NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (gint i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* Crank clock to send retransmission events requesting seqnum 6 which has
+   * not arrived yet. */
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, 130 * GST_MSECOND);
+
+  /* seqnum 6 is considered lost */
+  gst_harness_crank_single_clock_wait (h);
+  verify_lost_event (gst_harness_pull_event (h), 6,
+      6 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
+
+  /* seqnum 6 arrives too late */
+  now = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers,
+              "num-lost", G_TYPE_UINT64, (guint64) 1,
+              "num-late", G_TYPE_UINT64, (guint64) 1,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) (now - last_rtx_request),
+              NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_original_buffer_does_not_update_rtx_stats)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5 * PCMU_BUF_MS;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  GstBuffer *buffer;
+  GstClockTime now, last_rtx_request;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      "rtx-max-retries", 1, NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+
+  /* Crank clock to send retransmission events requesting seqnum 6 which has
+   * not arrived yet. */
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, 130 * GST_MSECOND);
+
+  /* ORIGINAL seqnum 6 arrives just before it times out and is considered
+   * lost. */
+  now = 200 * GST_MSECOND;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_full (now, TRUE, 6, 6 * PCMU_RTP_TS_DURATION)));
+  buffer = gst_harness_pull (h);
+  fail_unless_equals_int (6, get_rtp_seq_num (buffer));
+  gst_buffer_unref (buffer);
+
+  /* The original buffer does not count in the RTX stats. */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 1,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 0.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) 0, NULL)));
+
+  /* Now the retransmitted packet arrives and stats should be updated. Note
+   * that the buffer arrives in time and should not be considered late, but
+   * a duplicate. */
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 1,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 1,
+              "rtx-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) (now - last_rtx_request),
+              NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_duplicate_packet_updates_rtx_stats)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5 * PCMU_BUF_MS;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  GstClockTime now, rtx_request_6, rtx_request_7;
+  gint rtx_delay_ms;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* Drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+
+  /* Push packet 8 so that 6 and 7 is missing */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (8)));
+
+  /* Wait for NACKs on 6 and 7 */
+  gst_harness_crank_single_clock_wait (h);
+  rtx_delay_ms = 10;
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  rtx_request_6 = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (rtx_request_6,
+      6 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      7, 7 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  rtx_request_7 = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (rtx_request_7,
+      7 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+
+  /* Original packet 7 arrives */
+  now = 150 * GST_MSECOND;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_full (now, TRUE, 7, 7 * PCMU_RTP_TS_DURATION)));
+
+  /* We're still waiting for packet 6, so 7 should not be pushed */
+  gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  fail_unless_equals_int (gst_harness_buffers_in_queue (h), 0);
+
+  /* The original buffer does not count in the RTX stats. */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 2,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 0.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) 0, NULL)));
+
+  /* Push RTX packet 7. Should be dropped as duplicate but update RTX stats. */
+  now = 160 * GST_MSECOND;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 7)));
+  gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  fail_unless_equals_int (gst_harness_buffers_in_queue (h), 0);
+
+  /* Check RTX stats with updated num-duplicates and rtx-rtt fields */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 1,
+              "rtx-count", G_TYPE_UINT64, (guint64) 2,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) (now - rtx_request_7),
+              NULL)));
+
+  /* RTX packet 6 arrives, both 6, 7 and 8 is ready to be pulled */
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+
+  for (gint i = 6; i <= 8; i++) {
+    GstBuffer *buf = gst_harness_pull (h);
+    fail_unless_equals_int (i, get_rtp_seq_num (buf));
+    gst_buffer_unref (buf);
+  }
+
+  /* RTX stats is updated with success count increased. */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 3,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 1,
+              "rtx-count", G_TYPE_UINT64, (guint64) 2,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64)
+              /* Use the rtx-rtt formula. Can be subject to change though. */
+              ((now - rtx_request_6) + 47 * (now - rtx_request_7)) / 48,
+              NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_buffer_arrives_after_lost_updates_rtx_stats)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 5 * PCMU_BUF_MS;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  GstClockTime now, last_rtx_request;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      "do-lost", TRUE, "rtx-max-retries", 1, NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (gint i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* Crank clock to send retransmission events requesting seqnum 6 which has
+   * not arrived yet. */
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+
+  last_rtx_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (last_rtx_request, 130 * GST_MSECOND);
+
+  /* seqnum 6 is considered lost */
+  gst_harness_crank_single_clock_wait (h);
+  verify_lost_event (gst_harness_pull_event (h), 6,
+      6 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
+
+  /* seqnum 6 arrives too late */
+  now = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers,
+              "num-lost", G_TYPE_UINT64, (guint64) 1,
+              "num-late", G_TYPE_UINT64, (guint64) 1,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-per-packet", G_TYPE_DOUBLE, 1.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) (now - last_rtx_request),
+              NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_rtt_larger_than_retry_timeout)
+{
+  /* When RTT is larger than retry period we will send two or more requests
+   * before receiving any retransmission packets */
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  GstTestClock *testclock;
+  gint latency_ms = 100;
+  gint num_init_buffers = latency_ms / PCMU_BUF_MS + 1;
+  gint rtx_retry_timeout_ms = 20;
+  gint rtx_delay_ms = 10;
+  gint rtt = rtx_retry_timeout_ms * GST_MSECOND + 1;
+  GstClockTime now, first_request, second_request;
+
+  testclock = gst_harness_get_testclock (h);
+  gst_harness_set_src_caps (h, generate_caps ());
+  g_object_set (h->element, "do-retransmission", TRUE, "latency", latency_ms,
+      "rtx-retry-timeout", rtx_retry_timeout_ms, NULL);
+
+  /* Push/pull buffers and advance time past buffer 0's timeout (in order to
+   * simplify the test) */
+  for (gint i = 0; i < num_init_buffers; i++) {
+    gst_test_clock_set_time (testclock, i * PCMU_BUF_DURATION);
+    fail_unless_equals_int (GST_FLOW_OK,
+        gst_harness_push (h, generate_test_buffer (i)));
+    gst_harness_wait_for_clock_id_waits (h, 1, 60);
+  }
+
+  gst_harness_crank_single_clock_wait (h);
+  fail_unless_equals_int64 (latency_ms * GST_MSECOND,
+      gst_clock_get_time (GST_CLOCK (testclock)));
+
+  for (gint i = 0; i < num_init_buffers; i++)
+    gst_buffer_unref (gst_harness_pull (h));
+
+  /* Drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+
+  /* Wait for first NACK on 6 */
+  gst_harness_crank_single_clock_wait (h);
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  first_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (first_request,
+      6 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+
+  /* Packet 7 arrives in time (so that we avoid its EXPECTED timers to
+   * interfer with our test) */
+  gst_test_clock_set_time (testclock, 7 * PCMU_BUF_DURATION);
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (7)));
+
+  /* Simulating RTT > rtx-retry-timeout, we send a new NACK before receiving
+   * the RTX packet. Wait for second NACK on 6 */
+  gst_harness_crank_single_clock_wait (h);
+  rtx_delay_ms += rtx_retry_timeout_ms;
+  verify_rtx_event (gst_harness_pull_upstream_event (h),
+      6, 6 * PCMU_BUF_DURATION, rtx_delay_ms, PCMU_BUF_DURATION);
+  second_request = gst_clock_get_time (GST_CLOCK (testclock));
+  fail_unless_equals_int64 (second_request,
+      6 * PCMU_BUF_DURATION + rtx_delay_ms * GST_MSECOND);
+
+  /* The first retransmitted packet arrives */
+  now = first_request + rtt;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+
+  /* Pull packet 6 and 7 */
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* Stats should be updated. Note that RTT is not updated since we cannot be
+   * sure whether the RTX packet is in response to the first or second NACK. */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 2,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 0,
+              "rtx-count", G_TYPE_UINT64, (guint64) 2,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-per-packet", G_TYPE_DOUBLE, 2.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) 0, NULL)));
+
+  /* Packet 8 arrives in time */
+  gst_test_clock_set_time (testclock, 8 * PCMU_BUF_DURATION);
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (8)));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  /* Now the second retransmitted packet arrives */
+  now = second_request + rtt;
+  gst_test_clock_set_time (testclock, now);
+  fail_unless_equals_int (GST_FLOW_OK, gst_harness_push (h,
+          generate_test_buffer_rtx (now, 6)));
+
+  /* The stats is updated with the correct RTT. */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) num_init_buffers + 3,
+              "num-lost", G_TYPE_UINT64, (guint64) 0,
+              "num-late", G_TYPE_UINT64, (guint64) 0,
+              "num-duplicates", G_TYPE_UINT64, (guint64) 1,
+              "rtx-count", G_TYPE_UINT64, (guint64) 2,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 1,
+              "rtx-per-packet", G_TYPE_DOUBLE, 2.0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) rtt, NULL)));
+
+  gst_object_unref (testclock);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtx_no_request_if_time_past_retry_period)
+{
+  GstHarness *h = gst_harness_new ("rtpjitterbuffer");
+  const gint latency_ms = 200;
+  const gint retry_period_ms = 120;
+  GstTestClock *testclock;
+  GstClockID pending_id, processed_id;
+  GstClockTime time;
+  GstEvent *event;
+  gint i;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  testclock = gst_harness_get_testclock (h);
+
+  g_object_set (h->element, "do-lost", TRUE, NULL);
+  g_object_set (h->element, "do-retransmission", TRUE, NULL);
+  g_object_set (h->element, "latency", latency_ms, NULL);
+  g_object_set (h->element, "rtx-retry-period", retry_period_ms, NULL);
+
+  /* push the first couple of buffers */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (0)));
+
+  gst_harness_set_time (h, 1 * PCMU_BUF_DURATION);
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_push (h, generate_test_buffer (1)));
+
+  /* drop reconfigure event */
+  gst_event_unref (gst_harness_pull_upstream_event (h));
+  /* drop GstEventStreamStart & GstEventCaps & GstEventSegment */
+  for (i = 0; i < 3; i++)
+    gst_event_unref (gst_harness_pull_event (h));
+
+  /* Wait for the first EXPECTED timer to be scheduled */
+  gst_test_clock_wait_for_next_pending_id (testclock, &pending_id);
+  time = gst_clock_id_get_time (pending_id);
+  fail_unless_equals_int64 (time, 2 * PCMU_BUF_DURATION + 10 * GST_MSECOND);
+
+  /* Let the first EXPECTED timer time out and be sent. However, set the 'now'
+   * time to be past the retry-period simulating that the jitterbuffer has too
+   * much to do and is not able to process all timers in real-time. In this
+   * case the jitterbuffer should not schedule a new EXPECTED timer as that
+   * would just make matters worse (more unnecessary processing of a request
+   * that is already too late to be valuable). In practice this typically
+   * happens for high loss networks with low RTT. */
+  gst_test_clock_set_time (testclock,
+      2 * PCMU_BUF_DURATION + retry_period_ms * GST_MSECOND + 1);
+  processed_id = gst_test_clock_process_next_clock_id (testclock);
+  fail_unless (pending_id == processed_id);
+  gst_clock_id_unref (pending_id);
+  gst_clock_id_unref (processed_id);
+
+  /* Verify the event. It could be argued that this request is already too
+   * late and unnecessary. However, in order to keep things simple (for now)
+   * we just keep the already scehduled EXPECTED timer, but refrain from
+   * scheduled another EXPECTED timer */
+  event = gst_harness_pull_upstream_event (h);
+  verify_rtx_event (event, 2, 2 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+
+  /* "crank" to reach the DEADLINE for packet 0 */
+  gst_harness_crank_single_clock_wait (h);
+  gst_buffer_unref (gst_harness_pull (h));
+  gst_buffer_unref (gst_harness_pull (h));
+
+  fail_unless_equals_int (0, gst_harness_upstream_events_in_queue (h));
+  fail_unless_equals_int (0, gst_harness_events_in_queue (h));
+
+  /* "crank" to time out the LOST event */
+  gst_harness_crank_single_clock_wait (h);
+  event = gst_harness_pull_event (h);
+  verify_lost_event (event, 2, 2 * PCMU_BUF_DURATION, PCMU_BUF_DURATION);
 
   gst_object_unref (testclock);
   gst_harness_teardown (h);
@@ -1148,8 +2075,6 @@
   GstTestClock *testclock;
   const gint jb_latency_ms = 200;
 
-  guint32 timestamp_ms = 0;
-  guint32 rtp_ts = 0;
   gint i;
   GstEvent *out_event;
   GstBuffer *out_buf;
@@ -1166,10 +2091,7 @@
   fail_unless_equals_int (GST_FLOW_OK,
       gst_harness_push (h, generate_test_buffer (0)));
 
-  timestamp_ms += 20;
-  rtp_ts += PCMU_RTP_TS_DURATION;
-  gst_harness_set_time (h, timestamp_ms * GST_MSECOND);
-
+  gst_harness_set_time (h, 1 * PCMU_BUF_DURATION);
   fail_unless_equals_int (GST_FLOW_OK,
       gst_harness_push (h, generate_test_buffer (1)));
 
@@ -1204,12 +2126,23 @@
   fail_unless_equals_int (GST_FLOW_OK,
       gst_harness_push (h, generate_test_buffer (16)));
 
-  /* FIXME: something is up with the timestamp here!!?! */
+  /* Manually check the first rtx event */
   out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 6, 119999994, 0, PCMU_BUF_DURATION);
-  /* lost more rtx with weird timestamps... */
-  for (i = 0; i < 13; i++) {
-    gst_event_unref (gst_harness_pull_upstream_event (h));
+  verify_rtx_event (out_event, 6, 6 * PCMU_BUF_DURATION, 10, PCMU_BUF_DURATION);
+  /* Go throught the rest of rtx events. A bit more relaxed since order is
+   * partly an implentation detail. */
+  for (i = 0; i < 12; i++) {
+    const GstStructure *s;
+    guint seqnum, retry;
+
+    fail_unless (out_event = gst_harness_pull_upstream_event (h));
+    fail_unless (s = gst_event_get_structure (out_event));
+    fail_unless (gst_structure_get_uint (s, "seqnum", &seqnum));
+    fail_unless (gst_structure_get_uint (s, "retry", &retry));
+    fail_unless (seqnum >= 6 && seqnum <= 12);
+
+    verify_rtx_event (out_event, seqnum, seqnum * PCMU_BUF_DURATION,
+        10 + retry * 40, PCMU_BUF_DURATION);
   }
 
   fail_unless_equals_int (0, gst_harness_upstream_events_in_queue (h));
@@ -1221,23 +2154,20 @@
         gst_harness_push (h, generate_test_buffer (i)));
   }
 
-  /* FIXME: wtf is going on with timestamps and durations here??!? */
   gst_harness_crank_single_clock_wait (h);
   out_event = gst_harness_pull_event (h);
-  verify_lost_event (out_event, 3, 41428571, 78571423);
-
-  /* FIXME: and these rtx... */
-  gst_harness_crank_single_clock_wait (h);
-  out_event = gst_harness_pull_upstream_event (h);
-  verify_rtx_event (out_event, 7, 141428565, 120, PCMU_BUF_DURATION);
+  verify_lost_event (out_event, 3, 3 * PCMU_BUF_DURATION,
+      3 * PCMU_BUF_DURATION);
 
   gst_harness_crank_single_clock_wait (h);
   out_event = gst_harness_pull_event (h);
-  verify_lost_event (out_event, 6, 119999994, 21428571);
+  verify_lost_event (out_event, 6, 6 * PCMU_BUF_DURATION,
+      1 * PCMU_BUF_DURATION);
 
   gst_harness_crank_single_clock_wait (h);
   out_event = gst_harness_pull_event (h);
-  verify_lost_event (out_event, 7, 141428565, 21428571);
+  verify_lost_event (out_event, 7, 7 * PCMU_BUF_DURATION,
+      1 * PCMU_BUF_DURATION);
 
   /* 8 */
   for (i = 8; i <= 16; i++) {
@@ -1268,6 +2198,14 @@
   fail_unless_equals_int (0, gst_harness_events_in_queue (h));
   fail_unless_equals_int (0, gst_harness_buffers_in_queue (h));
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 11,
+              "num-lost", G_TYPE_UINT64, (guint64) 7,
+              "rtx-count", G_TYPE_UINT64, (guint64) 19,
+              "rtx-success-count", G_TYPE_UINT64, (guint64) 0,
+              "rtx-rtt", G_TYPE_UINT64, (guint64) 0, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
@@ -1354,6 +2292,10 @@
     verify_lost_event (out_event, i, i * dur, dur);
   }
 
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-lost", G_TYPE_UINT64, (guint64) 4, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
@@ -1482,12 +2424,53 @@
   fail_unless_equals_int ((4 + seq_offset) & 0xffff, get_rtp_seq_num (buffer));
   gst_buffer_unref (buffer);
 
+  /* we have lost 3, and one of them arrived eventually, but too late */
+  fail_unless (verify_jb_stats (h->element,
+          gst_structure_new ("application/x-rtp-jitterbuffer-stats",
+              "num-pushed", G_TYPE_UINT64, (guint64) 2,
+              "num-lost", G_TYPE_UINT64, (guint64) 3,
+              "num-late", G_TYPE_UINT64, (guint64) 1, NULL)));
+
   gst_object_unref (testclock);
   gst_harness_teardown (h);
 }
 
 GST_END_TEST;
 
+GST_START_TEST (test_performance)
+{
+  GstHarness *h =
+      gst_harness_new_parse
+      ("rtpjitterbuffer do-lost=1 do-retransmission=1 latency=1000");
+  GTimer *timer = g_timer_new ();
+  const gdouble test_duration = 2.0;
+  guint buffers_pushed = 0;
+  guint buffers_received;
+
+  gst_harness_set_src_caps (h, generate_caps ());
+  gst_harness_use_systemclock (h);
+
+  while (g_timer_elapsed (timer, NULL) < test_duration) {
+    /* Simulate 1ms packets */
+    guint n = buffers_pushed * 2;       // every packet also produces a gap
+    guint16 seqnum = n & 0xffff;
+    guint32 rtp_ts = n * 8;
+    GstClockTime dts = n * GST_MSECOND;
+    gst_harness_push (h, generate_test_buffer_full (dts, TRUE, seqnum, rtp_ts));
+    buffers_pushed++;
+    g_usleep (G_USEC_PER_SEC / 10000);
+  }
+  g_timer_destroy (timer);
+
+  buffers_received = gst_harness_buffers_received (h);
+  GST_INFO ("Pushed %d, received %d (%.1f%%)", buffers_pushed, buffers_received,
+      100.0 * buffers_received / buffers_pushed);
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
 static Suite *
 rtpjitterbuffer_suite (void)
 {
@@ -1500,13 +2483,30 @@
   tcase_add_test (tc_chain, test_push_unordered);
   tcase_add_test (tc_chain, test_basetime);
   tcase_add_test (tc_chain, test_clear_pt_map);
+
   tcase_add_test (tc_chain, test_only_one_lost_event_on_large_gaps);
   tcase_add_test (tc_chain, test_two_lost_one_arrives_in_time);
   tcase_add_test (tc_chain, test_late_packets_still_makes_lost_events);
   tcase_add_test (tc_chain, test_all_packets_are_timestamped_zero);
+  tcase_add_loop_test (tc_chain, test_num_late_when_considered_lost_arrives, 0,
+      2);
+  tcase_add_test (tc_chain, test_reorder_of_non_equidistant_packets);
+  tcase_add_test (tc_chain,
+      test_loss_equidistant_spacing_with_parameter_packets);
+
   tcase_add_test (tc_chain, test_rtx_expected_next);
   tcase_add_test (tc_chain, test_rtx_two_missing);
+  tcase_add_test (tc_chain, text_rtx_two_missing_early);
   tcase_add_test (tc_chain, test_rtx_packet_delay);
+  tcase_add_test (tc_chain, test_rtx_buffer_arrives_just_in_time);
+  tcase_add_test (tc_chain, test_rtx_buffer_arrives_too_late);
+  tcase_add_test (tc_chain, test_rtx_original_buffer_does_not_update_rtx_stats);
+  tcase_add_test (tc_chain, test_rtx_duplicate_packet_updates_rtx_stats);
+  tcase_add_test (tc_chain,
+      test_rtx_buffer_arrives_after_lost_updates_rtx_stats);
+  tcase_add_test (tc_chain, test_rtx_rtt_larger_than_retry_timeout);
+  tcase_add_test (tc_chain, test_rtx_no_request_if_time_past_retry_period);
+
   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);
@@ -1516,6 +2516,8 @@
       test_considered_lost_packet_in_large_gap_arrives, 0,
       G_N_ELEMENTS (test_considered_lost_packet_in_large_gap_arrives_input));
 
+  tcase_add_test (tc_chain, test_performance);
+
   return s;
 }
 
diff --git a/tests/check/elements/rtprtx.c b/tests/check/elements/rtprtx.c
index 841f426..aaa1ac4 100644
--- a/tests/check/elements/rtprtx.c
+++ b/tests/check/elements/rtprtx.c
@@ -18,1248 +18,40 @@
  * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
  * Boston, MA 02110-1301, USA.
  */
-
 #include <gst/check/gstcheck.h>
-#include <gst/check/gstconsistencychecker.h>
-
+#include <gst/check/gstharness.h>
 #include <gst/rtp/gstrtpbuffer.h>
 
-/* For ease of programming we use globals to keep refs for our floating
- * src and sink pads we create; otherwise we always have to do get_pad,
- * get_peer, and then remove references in every test function */
-static GstPad *srcpad, *sinkpad;
-/* we also have a list of src buffers */
-static GList *inbuffers = NULL;
+#define verify_buf(buf, is_rtx, expected_ssrc, expted_pt, expected_seqnum)       \
+  G_STMT_START {                                                                 \
+    GstRTPBuffer _rtp = GST_RTP_BUFFER_INIT;                                     \
+    fail_unless (gst_rtp_buffer_map (buf, GST_MAP_READ, &_rtp));                 \
+    fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&_rtp), expected_ssrc);     \
+    fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&_rtp), expted_pt); \
+    if (!(is_rtx)) {                                                             \
+      fail_unless_equals_int (gst_rtp_buffer_get_seq (&_rtp), expected_seqnum);  \
+    } else {                                                                     \
+      fail_unless_equals_int (GST_READ_UINT16_BE (gst_rtp_buffer_get_payload     \
+              (&_rtp)), expected_seqnum);                                        \
+    }                                                                            \
+    gst_rtp_buffer_unmap (&_rtp);                                                \
+  } G_STMT_END
 
-#define RTP_CAPS_STRING    \
-    "application/x-rtp, "               \
-    "media = (string)audio, "           \
-    "payload = (int) 0, "               \
-    "clock-rate = (int) 8000, "         \
-    "ssrc = (uint) 42, "                \
-    "encoding-name = (string)PCMU"
+#define pull_and_verify(h, is_rtx, expected_ssrc, expted_pt, expected_seqnum) \
+  G_STMT_START {                                                              \
+    GstBuffer *_buf = gst_harness_pull (h);                                   \
+    verify_buf (_buf, is_rtx, expected_ssrc, expted_pt, expected_seqnum);     \
+    gst_buffer_unref (_buf);                                                  \
+  } G_STMT_END
 
-#define RTP_FRAME_SIZE 20
-
-static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
-    GST_PAD_SINK,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("application/x-rtp")
-    );
-static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
-    GST_PAD_SRC,
-    GST_PAD_ALWAYS,
-    GST_STATIC_CAPS ("application/x-rtp")
-    );
-
-static void
-setup_rtprtx (GstElement * rtprtxsend, GstElement * rtprtxreceive,
-    gint num_buffers)
-{
-  GstBuffer *buffer;
-  GstPad *sendsrcpad;
-  GstPad *receivesinkpad;
-  gboolean ret = FALSE;
-
-  /* a 20 sample audio block (2,5 ms) generated with
-   * gst-launch audiotestsrc wave=silence blocksize=40 num-buffers=3 !
-   *    "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 */
-    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
-  };
-  GstClockTime ts = G_GUINT64_CONSTANT (0);
-  GstClockTime tso = gst_util_uint64_scale (RTP_FRAME_SIZE, GST_SECOND, 8000);
-  gint i;
-
-  srcpad = gst_check_setup_src_pad (rtprtxsend, &srctemplate);
-  sendsrcpad = gst_element_get_static_pad (rtprtxsend, "src");
-  ret = gst_pad_set_active (srcpad, TRUE);
-  fail_if (ret == FALSE);
-
-  sinkpad = gst_check_setup_sink_pad (rtprtxreceive, &sinktemplate);
-  receivesinkpad = gst_element_get_static_pad (rtprtxreceive, "sink");
-  ret = gst_pad_set_active (sinkpad, TRUE);
-  fail_if (ret == FALSE);
-
-  fail_if (gst_pad_link (sendsrcpad, receivesinkpad) != GST_PAD_LINK_OK);
-
-  ret = gst_pad_set_active (sendsrcpad, TRUE);
-  fail_if (ret == FALSE);
-  ret = gst_pad_set_active (receivesinkpad, TRUE);
-  fail_if (ret == FALSE);
-
-  gst_object_unref (sendsrcpad);
-  gst_object_unref (receivesinkpad);
-
-  for (i = 0; i < num_buffers; i++) {
-    buffer = gst_buffer_new_and_alloc (sizeof (in));
-    gst_buffer_fill (buffer, 0, in, sizeof (in));
-    GST_BUFFER_DTS (buffer) = ts;
-    GST_BUFFER_PTS (buffer) = ts;
-    GST_BUFFER_DURATION (buffer) = tso;
-    GST_DEBUG ("created buffer: %p", buffer);
-
-    /*if (!i)
-       GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); */
-
-    inbuffers = g_list_append (inbuffers, buffer);
-
-    /* hackish way to update the rtp header */
-    in[1] = 0x00;
-    in[3]++;                    /* seqnumber */
-    in[7] += RTP_FRAME_SIZE;    /* inc. timestamp with framesize */
-    ts += tso;
-  }
-}
-
-static GstStateChangeReturn
-start_rtprtx (GstElement * element)
-{
-  GstStateChangeReturn ret;
-
-  ret = gst_element_set_state (element, GST_STATE_PLAYING);
-  ck_assert_int_ne (ret, GST_STATE_CHANGE_FAILURE);
-
-  ret = gst_element_get_state (element, NULL, NULL, GST_CLOCK_TIME_NONE);
-  ck_assert_int_ne (ret, GST_STATE_CHANGE_FAILURE);
-
-  return ret;
-}
-
-static void
-cleanup_rtprtx (GstElement * rtprtxsend, GstElement * rtprtxreceive)
-{
-  GST_DEBUG ("cleanup_rtprtx");
-
-  g_list_free (inbuffers);
-  inbuffers = NULL;
-
-  gst_pad_set_active (srcpad, FALSE);
-  gst_check_teardown_src_pad (rtprtxsend);
-  gst_check_teardown_element (rtprtxsend);
-
-  gst_pad_set_active (sinkpad, FALSE);
-  gst_check_teardown_sink_pad (rtprtxreceive);
-  gst_check_teardown_element (rtprtxreceive);
-}
-
-static void
-check_rtprtx_results (GstElement * rtprtxsend, GstElement * rtprtxreceive,
-    gint num_buffers)
-{
-  guint nbrtxrequests = 0;
-  guint nbrtxpackets = 0;
-
-  g_object_get (G_OBJECT (rtprtxsend), "num-rtx-requests", &nbrtxrequests,
-      NULL);
-  fail_unless_equals_int (nbrtxrequests, 3);
-
-  g_object_get (G_OBJECT (rtprtxsend), "num-rtx-packets", &nbrtxpackets, NULL);
-  fail_unless_equals_int (nbrtxpackets, 3);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-requests", &nbrtxrequests,
-      NULL);
-  fail_unless_equals_int (nbrtxrequests, 3);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets", &nbrtxpackets,
-      NULL);
-  fail_unless_equals_int (nbrtxpackets, 3);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets",
-      &nbrtxpackets, NULL);
-  fail_unless_equals_int (nbrtxpackets, 3);
-}
-
-
-GST_START_TEST (test_push_forward_seq)
-{
-  GstElement *rtprtxsend;
-  GstElement *rtprtxreceive;
-  const guint num_buffers = 4;
-  GList *node;
-  gint i = 0;
-  GstCaps *caps = NULL;
-  GstStructure *pt_map;
-
-  rtprtxsend = gst_check_setup_element ("rtprtxsend");
-  rtprtxreceive = gst_check_setup_element ("rtprtxreceive");
-  setup_rtprtx (rtprtxsend, rtprtxreceive, num_buffers);
-  GST_DEBUG ("setup_rtprtx");
-
-  fail_unless (start_rtprtx (rtprtxsend)
-      == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
-
-  fail_unless (start_rtprtx (rtprtxreceive)
-      == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
-
-  caps = gst_caps_from_string (RTP_CAPS_STRING);
-  gst_check_setup_events (srcpad, rtprtxsend, caps, GST_FORMAT_TIME);
-  gst_caps_unref (caps);
-
-  pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      "0", G_TYPE_UINT, 97, NULL);
-  g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL);
-  g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL);
-  gst_structure_free (pt_map);
-
-  /* push buffers: 0,1,2, */
-  for (node = inbuffers; node; node = g_list_next (node)) {
-    GstEvent *event = NULL;
-    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-    GstBuffer *buffer = (GstBuffer *) node->data;
-    GList *last_out_buffer;
-    guint64 end_time;
-    gboolean res;
-
-    gst_buffer_ref (buffer);
-    fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK);
-
-    if (i < 3) {
-      gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-      event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-          gst_structure_new ("GstRTPRetransmissionRequest",
-              "seqnum", G_TYPE_UINT, (guint) gst_rtp_buffer_get_seq (&rtp),
-              "ssrc", G_TYPE_UINT, (guint) gst_rtp_buffer_get_ssrc (&rtp),
-              "payload-type", G_TYPE_UINT,
-              (guint) gst_rtp_buffer_get_payload_type (&rtp), NULL));
-      gst_rtp_buffer_unmap (&rtp);
-
-      /* synchronize with the chain() function of the "sinkpad"
-       * to make sure that rtxsend has pushed the rtx buffer out
-       * before continuing */
-      last_out_buffer = g_list_last (buffers);
-      g_mutex_lock (&check_mutex);
-      fail_unless (gst_pad_push_event (sinkpad, event));
-      end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND;
-      do
-        res = g_cond_wait_until (&check_cond, &check_mutex, end_time);
-      while (res == TRUE && last_out_buffer == g_list_last (buffers));
-      g_mutex_unlock (&check_mutex);
-    }
-    gst_buffer_unref (buffer);
-    ++i;
-  }
-
-  /* check the buffer list */
-  check_rtprtx_results (rtprtxsend, rtprtxreceive, num_buffers);
-
-  /* cleanup */
-  cleanup_rtprtx (rtprtxsend, rtprtxreceive);
-}
-
-GST_END_TEST;
-
-static void
-message_received (GstBus * bus, GstMessage * message, gboolean * eos)
-{
-  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
-      GST_MESSAGE_SRC (message), message);
-
-  switch (message->type) {
-    case GST_MESSAGE_EOS:
-      *eos = TRUE;
-      break;
-    case GST_MESSAGE_WARNING:{
-      GError *gerror;
-      gchar *debug;
-
-      gst_message_parse_warning (message, &gerror, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-      g_error_free (gerror);
-      g_free (debug);
-      break;
-    }
-    case GST_MESSAGE_ERROR:{
-      GError *gerror;
-      gchar *debug;
-
-      gst_message_parse_error (message, &gerror, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-      fail ("Error: %s / %s", gerror->message, debug);
-      g_error_free (gerror);
-      g_free (debug);
-      break;
-    }
-    default:
-      break;
-  }
-}
-
-typedef struct
-{
-  guint count;
-  guint nb_packets;
-  guint drop_every_n_packets;
-} RTXSendData;
-
-typedef struct
-{
-  guint nb_packets;
-  guint seqnum_offset;
-  guint seqnum_prev;
-} RTXReceiveData;
-
-static GstPadProbeReturn
-do_buffer_list_as_buffers_probe (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data, GstPadProbeCallback callback)
-{
-  /* Iterate the buffer list, removing any items that we're
-   * told to drop and creating a new bufferlist. If all buffers
-   * are dropped, return DROP.
-   */
-  guint i, len;
-  GstBufferList *list;
-  GstBufferList *outlist;
-  GstPadProbeInfo buf_info = *info;
-
-  GST_INFO_OBJECT (pad, "probing each buffer in list individually");
-
-  list = gst_pad_probe_info_get_buffer_list (info);
-
-  g_return_val_if_fail (list != NULL, GST_PAD_PROBE_REMOVE);
-
-  len = gst_buffer_list_length (list);
-  outlist = gst_buffer_list_new_sized (len);
-
-  buf_info.type = GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH;
-  for (i = 0; i < len; i++) {
-    GstBuffer *buffer = gst_buffer_list_get (list, i);
-    GstPadProbeReturn ret;
-    buf_info.data = buffer;
-    ret = callback (pad, &buf_info, user_data);
-    /* If the buffer wasn't dropped, add it to the output list */
-    if (ret != GST_PAD_PROBE_DROP)
-      gst_buffer_list_insert (outlist, -1, gst_buffer_ref (buffer));
-  }
-
-  len = gst_buffer_list_length (outlist);
-  if (len == 0) {
-    /* Everything was discarded, drop our outlist */
-    gst_buffer_list_unref (outlist);
-    return GST_PAD_PROBE_DROP;
-  }
-
-  /* Replace the original buffer list with the modified one */
-  gst_buffer_list_unref (list);
-  info->data = outlist;
-  return GST_PAD_PROBE_OK;
-}
-
-static GstPadProbeReturn
-rtprtxsend_srcpad_probe (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
-
-  GST_LOG_OBJECT (pad, "here");
-  if (info->type == (GST_PAD_PROBE_TYPE_BUFFER_LIST | GST_PAD_PROBE_TYPE_PUSH))
-    return do_buffer_list_as_buffers_probe (pad, info, user_data,
-        rtprtxsend_srcpad_probe);
-
-  if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) {
-    GstBuffer *buffer = GST_BUFFER (info->data);
-    RTXSendData *rtxdata = (RTXSendData *) user_data;
-    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-    guint payload_type = 0;
-
-    gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-    payload_type = gst_rtp_buffer_get_payload_type (&rtp);
-
-    /* main stream packets */
-    if (payload_type == 96) {
-      /* count packets of the main stream */
-      ++rtxdata->nb_packets;
-      /* drop some packets */
-      if (rtxdata->count < rtxdata->drop_every_n_packets) {
-        ++rtxdata->count;
-      } else {
-        /* drop a packet every 'rtxdata->count' packets */
-        rtxdata->count = 1;
-        ret = GST_PAD_PROBE_DROP;
-      }
-    } else {
-      /* retransmission packets */
-    }
-
-    gst_rtp_buffer_unmap (&rtp);
-  }
-
-  return ret;
-}
-
-static GstPadProbeReturn
-rtprtxreceive_srcpad_probe (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) {
-    GstBuffer *buffer = GST_BUFFER (info->data);
-    RTXReceiveData *rtxdata = (RTXReceiveData *) user_data;
-    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-    guint seqnum = 0;
-    guint i = 0;
-
-    gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-    seqnum = gst_rtp_buffer_get_seq (&rtp);
-
-    /* check if there is a dropped packet */
-    if (seqnum > rtxdata->seqnum_prev + rtxdata->seqnum_offset) {
-      GstPad *peerpad = gst_pad_get_peer (pad);
-
-      /* ask retransmission of missing packet */
-      for (i = rtxdata->seqnum_prev + rtxdata->seqnum_offset; i < seqnum;
-          i += rtxdata->seqnum_offset) {
-        GstEvent *event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-            gst_structure_new ("GstRTPRetransmissionRequest",
-                "seqnum", G_TYPE_UINT, i,
-                "ssrc", G_TYPE_UINT, gst_rtp_buffer_get_ssrc (&rtp),
-                "payload-type", G_TYPE_UINT,
-                gst_rtp_buffer_get_payload_type (&rtp),
-                NULL));
-        gst_pad_push_event (peerpad, event);
-      }
-      gst_object_unref (peerpad);
-
-      rtxdata->seqnum_prev = seqnum;
-    } else if (seqnum == rtxdata->seqnum_prev + rtxdata->seqnum_offset) {
-      /* also update previous seqnum in this case */
-      rtxdata->seqnum_prev = seqnum;
-    }
-
-    gst_rtp_buffer_unmap (&rtp);
-
-    ++rtxdata->nb_packets;
-  }
-
-  return GST_PAD_PROBE_OK;
-}
-
-static void
-start_test_drop_and_check_results (GstElement * bin, GstElement * rtppayloader,
-    GstElement * rtprtxsend, GstElement * rtprtxreceive,
-    RTXSendData * send_rtxdata, RTXReceiveData * receive_rtxdata,
-    guint drop_every_n_packets, gboolean * eos)
-{
-  GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE;
-  guint nbrtxrequests = 0;
-  guint nbrtxpackets = 0;
-  guint nb_expected_requests = 0;
-  GstStructure *pt_map;
-
-  GST_INFO ("starting test");
-
-  pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      "96", G_TYPE_UINT, 99, NULL);
-  g_object_set (rtppayloader, "pt", 96, NULL);
-  g_object_set (rtppayloader, "seqnum-offset", 1, NULL);
-  g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL);
-  g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL);
-  gst_structure_free (pt_map);
-
-  send_rtxdata->count = 1;
-  send_rtxdata->nb_packets = 0;
-  send_rtxdata->drop_every_n_packets = drop_every_n_packets;
-
-  receive_rtxdata->nb_packets = 0;
-  receive_rtxdata->seqnum_offset = 0;
-  receive_rtxdata->seqnum_prev = 0;
-
-  *eos = FALSE;
-
-  /* retrieve offset before going to paused */
-  g_object_get (G_OBJECT (rtppayloader), "seqnum-offset",
-      &receive_rtxdata->seqnum_offset, NULL);
-
-  /* prepare playing */
-  state_res = gst_element_set_state (bin, GST_STATE_PAUSED);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-
-  /* wait for completion */
-  state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-
-  /* retrieve seqnum_prev here to make sure it has been reseted */
-  g_object_get (G_OBJECT (rtppayloader), "seqnum",
-      &receive_rtxdata->seqnum_prev, NULL);
-
-  /* run pipeline */
-  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-
-  GST_INFO ("running main loop");
-  while (!*eos)
-    g_main_context_iteration (NULL, TRUE);
-
-  /* check results */
-
-  if (send_rtxdata->nb_packets % drop_every_n_packets == 0) {
-    /* special case because the last buffer will be dropped
-     * so the receiver cannot know if it has been dropped (no next packet)
-     */
-    nb_expected_requests = send_rtxdata->nb_packets / drop_every_n_packets - 1;
-    fail_unless_equals_int (send_rtxdata->nb_packets,
-        receive_rtxdata->nb_packets + 1);
-  } else {
-    nb_expected_requests = send_rtxdata->nb_packets / drop_every_n_packets;
-    fail_unless_equals_int (send_rtxdata->nb_packets,
-        receive_rtxdata->nb_packets);
-  }
-
-  g_object_get (G_OBJECT (rtprtxsend), "num-rtx-requests", &nbrtxrequests,
-      NULL);
-  fail_unless_equals_int (nbrtxrequests, nb_expected_requests);
-
-  g_object_get (G_OBJECT (rtprtxsend), "num-rtx-packets", &nbrtxpackets, NULL);
-  fail_unless_equals_int (nbrtxpackets, nb_expected_requests);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-requests", &nbrtxrequests,
-      NULL);
-  fail_unless_equals_int (nbrtxrequests, nb_expected_requests);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets", &nbrtxpackets,
-      NULL);
-  fail_unless_equals_int (nbrtxpackets, nb_expected_requests);
-
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets",
-      &nbrtxpackets, NULL);
-  fail_unless_equals_int (nbrtxpackets, nb_expected_requests);
-
-  state_res = gst_element_set_state (bin, GST_STATE_NULL);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-}
-
-/* This test build the pipeline videotestsrc ! rtpvrawpay ! rtprtxsend ! rtprtxreceive ! fakesink
- * and drop some buffer between rtprtxsend and rtprtxreceive
- * Then it checks that every dropped packet has been re-sent and it checks that
- * not too much requests has been sent.
- */
-GST_START_TEST (test_drop_one_sender)
-{
-  GstElement *bin, *src, *rtppayloader, *rtprtxsend, *rtprtxreceive, *sink;
-  GstBus *bus;
-  gboolean res;
-  GstPad *srcpad, *sinkpad;
-  GstStreamConsistency *chk_1, *chk_2, *chk_3;
-  gint num_buffers = 20;
-  guint drop_every_n_packets = 0;
-  RTXSendData send_rtxdata;
-  RTXReceiveData receive_rtxdata;
-  gboolean eos = FALSE;
-
-  GST_INFO ("preparing test");
-
-  /* build pipeline */
-  bin = gst_pipeline_new ("pipeline");
-  bus = gst_element_get_bus (bin);
-  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
-
-  src = gst_element_factory_make ("videotestsrc", "src");
-  g_object_set (src, "num-buffers", num_buffers, NULL);
-  rtppayloader = gst_element_factory_make ("rtpvrawpay", "rtppayloader");
-  rtprtxsend = gst_element_factory_make ("rtprtxsend", "rtprtxsend");
-  rtprtxreceive = gst_element_factory_make ("rtprtxreceive", "rtprtxreceive");
-  sink = gst_element_factory_make ("fakesink", "sink");
-  gst_bin_add_many (GST_BIN (bin), src, rtppayloader, rtprtxsend, rtprtxreceive,
-      sink, NULL);
-
-  res = gst_element_link (src, rtppayloader);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtppayloader, rtprtxsend);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtprtxsend, rtprtxreceive);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtprtxreceive, sink);
-  fail_unless (res == TRUE, NULL);
-
-  /* create consistency checkers for the pads */
-
-  srcpad = gst_element_get_static_pad (rtppayloader, "src");
-  chk_1 = gst_consistency_checker_new (srcpad);
-  gst_object_unref (srcpad);
-
-  srcpad = gst_element_get_static_pad (rtprtxsend, "src");
-  gst_pad_add_probe (srcpad,
-      (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_BUFFER_LIST |
-          GST_PAD_PROBE_TYPE_PUSH),
-      (GstPadProbeCallback) rtprtxsend_srcpad_probe, &send_rtxdata, NULL);
-  sinkpad = gst_pad_get_peer (srcpad);
-  fail_if (sinkpad == NULL);
-  chk_2 = gst_consistency_checker_new (sinkpad);
-  gst_object_unref (sinkpad);
-  gst_object_unref (srcpad);
-
-  srcpad = gst_element_get_static_pad (rtprtxreceive, "src");
-  gst_pad_add_probe (srcpad,
-      (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH),
-      (GstPadProbeCallback) rtprtxreceive_srcpad_probe, &receive_rtxdata, NULL);
-  sinkpad = gst_pad_get_peer (srcpad);
-  fail_if (sinkpad == NULL);
-  chk_3 = gst_consistency_checker_new (sinkpad);
-  gst_object_unref (sinkpad);
-  gst_object_unref (srcpad);
-
-  g_signal_connect (bus, "message::error", (GCallback) message_received, NULL);
-  g_signal_connect (bus, "message::warning", (GCallback) message_received,
-      NULL);
-  g_signal_connect (bus, "message::eos", (GCallback) message_received, &eos);
-
-  for (drop_every_n_packets = 2; drop_every_n_packets < 10;
-      drop_every_n_packets++) {
-    start_test_drop_and_check_results (bin, rtppayloader, rtprtxsend,
-        rtprtxreceive, &send_rtxdata, &receive_rtxdata, drop_every_n_packets,
-        &eos);
-  }
-
-  /* cleanup */
-  gst_consistency_checker_free (chk_1);
-  gst_consistency_checker_free (chk_2);
-  gst_consistency_checker_free (chk_3);
-  gst_bus_remove_signal_watch (bus);
-  gst_object_unref (bus);
-  gst_object_unref (bin);
-}
-
-GST_END_TEST;
-
-static void
-message_received_multiple (GstBus * bus, GstMessage * message, gpointer data)
-{
-  GST_INFO ("bus message from \"%" GST_PTR_FORMAT "\": %" GST_PTR_FORMAT,
-      GST_MESSAGE_SRC (message), message);
-
-  switch (message->type) {
-    case GST_MESSAGE_WARNING:{
-      GError *gerror;
-      gchar *debug;
-
-      gst_message_parse_warning (message, &gerror, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-      g_error_free (gerror);
-      g_free (debug);
-      break;
-    }
-    case GST_MESSAGE_ERROR:{
-      GError *gerror;
-      gchar *debug;
-
-      gst_message_parse_error (message, &gerror, &debug);
-      gst_object_default_error (GST_MESSAGE_SRC (message), gerror, debug);
-      fail ("Error: %s / %s", gerror->message, debug);
-      g_error_free (gerror);
-      g_free (debug);
-      break;
-    }
-    default:
-      break;
-  }
-}
-
-typedef struct
-{
-  guint count;
-  guint nb_packets;
-  guint drop_every_n_packets;
-  guint payload_type_master;
-  guint total_packets;
-} RTXSendMultipleData;
-
-/* drop some packets */
-static GstPadProbeReturn
-rtprtxsend_srcpad_probe_multiple (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  GstPadProbeReturn ret = GST_PAD_PROBE_OK;
-
-  if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) {
-    GstBuffer *buffer = GST_BUFFER (info->data);
-    RTXSendMultipleData *rtxdata = (RTXSendMultipleData *) user_data;
-    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-    guint payload_type = 0;
-
-    gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-    payload_type = gst_rtp_buffer_get_payload_type (&rtp);
-
-    /* main stream packets */
-    if (payload_type == rtxdata->payload_type_master) {
-      /* count packets of the main stream */
-      ++rtxdata->nb_packets;
-      /* drop some packets */
-      /* but make sure we never drop the last one, otherwise there
-       * will be nothing to trigger a retransmission.
-       */
-      if (rtxdata->count < rtxdata->drop_every_n_packets ||
-          rtxdata->nb_packets == rtxdata->total_packets) {
-        ++rtxdata->count;
-      } else {
-        /* drop a packet every 'rtxdata->count' packets */
-        rtxdata->count = 1;
-        ret = GST_PAD_PROBE_DROP;
-      }
-    } else {
-      /* retransmission packets */
-    }
-
-    gst_rtp_buffer_unmap (&rtp);
-  }
-
-  return ret;
-}
-
-/* make sure every sources has sent all their buffers */
-static GstPadProbeReturn
-source_srcpad_probe_multiple_drop_eos (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
-
-  if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)
-    return GST_PAD_PROBE_DROP;
-  else
-    return GST_PAD_PROBE_OK;
-}
-
-typedef struct
-{
-  GHashTable *ssrc_to_nb_packets_map;
-  GHashTable *ssrc_to_seqnum_offset_map;
-  guint seqnum_offset;
-
-  gint to_send;
-  volatile gint dropped_requests;
-  volatile gint received;
-  gboolean request_passed;
-} RTXReceiveMultipleData;
-
-/* add one branch videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel. */
-static RTXSendMultipleData *
-add_sender (GstElement * bin, const gchar * src_name,
-    const gchar * payloader_name, guint payload_type_master,
-    guint payload_type_aux, RTXReceiveMultipleData * rtxdata)
-{
-  GstElement *src = NULL;
-  GstCaps *caps;
-  GstElement *rtppayloader = NULL;
-  GstElement *rtprtxsend = NULL;
-  GstElement *queue = NULL;
-  GstElement *funnel = NULL;
-  GstPad *srcpad = NULL;
-  gboolean res = FALSE;
-  RTXSendMultipleData *send_rtxdata = g_slice_new0 (RTXSendMultipleData);
-  gchar *pt_master;
-  GstStructure *pt_map;
-
-  send_rtxdata->count = 1;
-  send_rtxdata->nb_packets = 0;
-  send_rtxdata->drop_every_n_packets = 0;
-  send_rtxdata->payload_type_master = payload_type_master;
-  send_rtxdata->total_packets = 25;
-  rtxdata->to_send += send_rtxdata->total_packets;
-
-  src = gst_element_factory_make (src_name, NULL);
-  rtppayloader = gst_element_factory_make (payloader_name, NULL);
-  rtprtxsend = gst_element_factory_make ("rtprtxsend", NULL);
-  queue = gst_element_factory_make ("queue", NULL);
-  funnel = gst_bin_get_by_name (GST_BIN (bin), "funnel");
-
-  pt_master = g_strdup_printf ("%" G_GUINT32_FORMAT, payload_type_master);
-  pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      pt_master, G_TYPE_UINT, payload_type_aux, NULL);
-  g_free (pt_master);
-
-  g_object_set (src, "num-buffers", send_rtxdata->total_packets, NULL);
-  g_object_set (src, "is-live", TRUE, NULL);
-  g_object_set (rtppayloader, "pt", payload_type_master, NULL);
-  g_object_set (rtppayloader, "seqnum-offset", 1, NULL);
-  g_object_set (rtprtxsend, "payload-type-map", pt_map, NULL);
-  /* we want that every drop packet be resent fast */
-  g_object_set (queue, "max-size-buffers", 1, NULL);
-  g_object_set (queue, "flush-on-eos", FALSE, NULL);
-
-  gst_structure_free (pt_map);
-
-  gst_bin_add_many (GST_BIN (bin), src, rtppayloader, rtprtxsend, queue, NULL);
-
-  /* Make sure we have one buffer per frame, makes it easier to count! */
-  caps =
-      gst_caps_from_string ("video/x-raw, width=20, height=10, framerate=30/1");
-  res = gst_element_link_filtered (src, rtppayloader, caps);
-  gst_caps_unref (caps);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtppayloader, rtprtxsend);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtprtxsend, queue);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (queue, funnel);
-  fail_unless (res == TRUE, NULL);
-  gst_object_unref (funnel);
-
-  /* to drop some packets */
-  srcpad = gst_element_get_static_pad (rtprtxsend, "src");
-  gst_pad_add_probe (srcpad,
-      (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH),
-      (GstPadProbeCallback) rtprtxsend_srcpad_probe_multiple, send_rtxdata,
-      NULL);
-  gst_object_unref (srcpad);
-
-  /* to make sure every sources has sent all their buffers */
-  srcpad = gst_element_get_static_pad (src, "src");
-  gst_pad_add_probe (srcpad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
-      (GstPadProbeCallback) source_srcpad_probe_multiple_drop_eos, NULL, NULL);
-  gst_object_unref (srcpad);
-
-  return send_rtxdata;
-}
-
-static GstPadProbeReturn
-rtprtxreceive_sinkpad_probe_check_drop (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);
-  RTXReceiveMultipleData *rtxdata = (RTXReceiveMultipleData *) user_data;
-
-  if (GST_EVENT_TYPE (event) == GST_EVENT_CUSTOM_UPSTREAM &&
-      gst_event_get_structure (event) != NULL &&
-      gst_structure_has_name (gst_event_get_structure (event),
-          "GstRTPRetransmissionRequest"))
-    rtxdata->request_passed = TRUE;
-
-  return GST_PAD_PROBE_OK;
-}
-
-static gboolean
-check_finished (RTXReceiveMultipleData * rtxdata)
-{
-  return (g_atomic_int_get (&rtxdata->received) >= (rtxdata->to_send -
-          g_atomic_int_get (&rtxdata->dropped_requests)));
-}
-
-static GstPadProbeReturn
-rtprtxreceive_srcpad_probe_multiple (GstPad * pad, GstPadProbeInfo * info,
-    gpointer user_data)
-{
-  if (info->type == (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH)) {
-    GstBuffer *buffer = GST_BUFFER (info->data);
-    RTXReceiveMultipleData *rtxdata = (RTXReceiveMultipleData *) user_data;
-    GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-    guint ssrc = 0;
-    guint seqnum = 0;
-    gpointer seqnum_prev = 0;
-    guint nb_packets = 0;
-
-    gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-    ssrc = gst_rtp_buffer_get_ssrc (&rtp);
-    seqnum = gst_rtp_buffer_get_seq (&rtp);
-
-    g_atomic_int_inc (&rtxdata->received);
-    if (check_finished (rtxdata))
-      g_main_context_wakeup (NULL);
-
-    if (!g_hash_table_lookup_extended (rtxdata->ssrc_to_seqnum_offset_map,
-            GUINT_TO_POINTER (ssrc), NULL, &seqnum_prev)) {
-      /*In our test we take care to never drop the first buffer */
-      g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map,
-          GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum));
-      g_hash_table_insert (rtxdata->ssrc_to_nb_packets_map,
-          GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (1));
-      gst_rtp_buffer_unmap (&rtp);
-      return GST_PAD_PROBE_OK;
-    }
-
-
-    /* check if there is a dropped packet
-     * (in our test every packet arrived in increasing order) */
-    if (seqnum > GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset) {
-      GstPad *peerpad = gst_pad_get_peer (pad);
-      guint i = 0;
-
-      /* ask retransmission of missing packets */
-      for (i = GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset;
-          i < seqnum; i += rtxdata->seqnum_offset) {
-        GstEvent *event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
-            gst_structure_new ("GstRTPRetransmissionRequest",
-                "seqnum", G_TYPE_UINT, i,
-                "ssrc", G_TYPE_UINT, gst_rtp_buffer_get_ssrc (&rtp),
-                "payload-type", G_TYPE_UINT,
-                gst_rtp_buffer_get_payload_type (&rtp),
-                NULL));
-        rtxdata->request_passed = FALSE;
-        gst_pad_push_event (peerpad, event);
-        if (!rtxdata->request_passed) {
-          g_atomic_int_inc (&rtxdata->dropped_requests);
-          if (check_finished (rtxdata))
-            g_main_context_wakeup (NULL);
-        }
-      }
-      gst_object_unref (peerpad);
-
-      g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map,
-          GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum));
-    } else if (seqnum ==
-        GPOINTER_TO_UINT (seqnum_prev) + rtxdata->seqnum_offset) {
-      /* also update previous seqnum in this case */
-      g_hash_table_insert (rtxdata->ssrc_to_seqnum_offset_map,
-          GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (seqnum));
-    } else {
-      /* receive retransmited packet */
-    }
-
-    gst_rtp_buffer_unmap (&rtp);
-
-    nb_packets =
-        GPOINTER_TO_UINT (g_hash_table_lookup (rtxdata->ssrc_to_nb_packets_map,
-            GUINT_TO_POINTER (ssrc)));
-    g_hash_table_insert (rtxdata->ssrc_to_nb_packets_map,
-        GUINT_TO_POINTER (ssrc), GUINT_TO_POINTER (++nb_packets));
-  }
-
-  return GST_PAD_PROBE_OK;
-}
-
-static void
-reset_rtx_send_data (RTXSendMultipleData * send_rtxdata, gpointer data)
-{
-  send_rtxdata->count = 1;
-  send_rtxdata->nb_packets = 0;
-  send_rtxdata->drop_every_n_packets = *(guint *) data;
-}
-
-/* compute number of all packets sent by all sender */
-static void
-compute_total_packets_sent (RTXSendMultipleData * send_rtxdata, gpointer data)
-{
-  guint *sum = (guint *) data;
-  *sum += send_rtxdata->nb_packets;
-}
-
-/* compute number of all packets received by rtprtxreceive::src pad */
-static void
-compute_total_packets_received (gpointer key, gpointer value, gpointer data)
-{
-  guint *sum = (guint *) data;
-  *sum += GPOINTER_TO_UINT (value);
-}
-
-static void
-start_test_drop_multiple_and_check_results (GstElement * bin,
-    GList * send_rtxdata_list, RTXReceiveMultipleData * receive_rtxdata,
-    guint drop_every_n_packets)
-{
-  GstStateChangeReturn state_res = GST_STATE_CHANGE_FAILURE;
-  GstElement *rtprtxreceive =
-      gst_bin_get_by_name (GST_BIN (bin), "rtprtxreceive");
-  guint sum_all_packets_sent = 0;
-  guint sum_rtx_packets_sent = 0;
-  guint sum_all_packets_received = 0;
-  guint sum_rtx_packets_received = 0;
-  guint sum_rtx_assoc_packets_received = 0;
-  guint sum_rtx_dropped_packets_received = 0;
-  gdouble error_sent_recv = 0;
-  GstIterator *itr_elements = NULL;
-  gboolean done = FALSE;
-  GValue item = { 0 };
-  GstElement *element = NULL;
-  gchar *name = NULL;
-
-  GST_INFO ("starting test");
-
-  g_atomic_int_set (&receive_rtxdata->received, 0);
-  g_atomic_int_set (&receive_rtxdata->dropped_requests, 0);
-
-  g_hash_table_remove_all (receive_rtxdata->ssrc_to_nb_packets_map);
-  g_hash_table_remove_all (receive_rtxdata->ssrc_to_seqnum_offset_map);
-
-  g_list_foreach (send_rtxdata_list, (GFunc) reset_rtx_send_data,
-      &drop_every_n_packets);
-
-  /* run pipeline */
-  state_res = gst_element_set_state (bin, GST_STATE_PLAYING);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-
-  state_res = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-
-  GST_INFO ("running main loop");
-  while (!check_finished (receive_rtxdata))
-    g_main_context_iteration (NULL, TRUE);
-
-  /* check results */
-  itr_elements = gst_bin_iterate_elements (GST_BIN (bin));
-  done = FALSE;
-  while (!done) {
-    switch (gst_iterator_next (itr_elements, &item)) {
-      case GST_ITERATOR_OK:
-        element = GST_ELEMENT (g_value_get_object (&item));
-        name = gst_element_get_name (element);
-        if (g_str_has_prefix (name, "rtprtxsend") > 0) {
-          guint nb_packets = 0;
-          g_object_get (G_OBJECT (element), "num-rtx-packets", &nb_packets,
-              NULL);
-          sum_rtx_packets_sent += nb_packets;
-        }
-        g_free (name);
-        g_value_reset (&item);
-        break;
-      case GST_ITERATOR_RESYNC:
-        gst_iterator_resync (itr_elements);
-        break;
-      case GST_ITERATOR_ERROR:
-        done = TRUE;
-        break;
-      case GST_ITERATOR_DONE:
-        done = TRUE;
-        break;
-    }
-  }
-  g_value_unset (&item);
-  gst_iterator_free (itr_elements);
-
-  /* compute number of all packets sent by all sender */
-  g_list_foreach (send_rtxdata_list, (GFunc) compute_total_packets_sent,
-      &sum_all_packets_sent);
-
-  /* compute number of all packets received by rtprtxreceive::src pad */
-  g_hash_table_foreach (receive_rtxdata->ssrc_to_nb_packets_map,
-      compute_total_packets_received, (gpointer) & sum_all_packets_received);
-
-  sum_all_packets_received +=
-      g_atomic_int_get (&receive_rtxdata->dropped_requests);
-  fail_if (sum_all_packets_sent < sum_all_packets_received);
-
-  /* some packet are not received, I still have to figure out why
-   * but I suspect it comes from pipeline setup/shutdown
-   */
-  if (sum_all_packets_sent != sum_all_packets_received) {
-    error_sent_recv =
-        1 - sum_all_packets_received / (gdouble) sum_all_packets_sent;
-    fail_if (error_sent_recv > 0.30);
-    /* it should be 0% */
-  }
-
-  /* retrieve number of retransmit packets received by rtprtxreceive */
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-packets",
-      &sum_rtx_packets_received, NULL);
-
-  /* some of rtx packet are not received because the receiver avoids
-   * collision (= requests that have the same seqnum)
-   */
-  fail_if (sum_rtx_packets_sent < sum_rtx_packets_received);
-  g_object_get (G_OBJECT (rtprtxreceive), "num-rtx-assoc-packets",
-      &sum_rtx_assoc_packets_received, NULL);
-  sum_rtx_dropped_packets_received =
-      sum_rtx_packets_received - sum_rtx_assoc_packets_received;
-  fail_unless_equals_int (sum_rtx_packets_sent,
-      sum_rtx_assoc_packets_received + sum_rtx_dropped_packets_received);
-
-  gst_object_unref (rtprtxreceive);
-  state_res = gst_element_set_state (bin, GST_STATE_NULL);
-  ck_assert_int_ne (state_res, GST_STATE_CHANGE_FAILURE);
-}
-
-static void
-free_rtx_send_data (gpointer data)
-{
-  g_slice_free (RTXSendMultipleData, data);
-}
-
-/* This test build the pipeline funnel name=funnel
- * videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel.
- * videotestsrc ! rtpvrawpay ! rtprtxsend ! queue ! funnel.
- * N
- * funnel. ! rtprtxreceive ! fakesink
- * and drop some buffer just after each rtprtxsend
- * Then it checks that every dropped packet has been re-sent and it checks
- * that not too much requests has been sent.
- */
-GST_START_TEST (test_drop_multiple_sender)
-{
-  GstElement *bin, *funnel, *rtprtxreceive, *sink;
-  GstBus *bus;
-  gboolean res;
-  GstPad *srcpad, *sinkpad;
-  guint drop_every_n_packets = 0;
-  GList *send_rtxdata_list = NULL;
-  RTXReceiveMultipleData receive_rtxdata = { NULL };
-  GstStructure *pt_map;
-
-  GST_INFO ("preparing test");
-
-  receive_rtxdata.ssrc_to_nb_packets_map =
-      g_hash_table_new (g_direct_hash, g_direct_equal);
-  receive_rtxdata.ssrc_to_seqnum_offset_map =
-      g_hash_table_new (g_direct_hash, g_direct_equal);
-  receive_rtxdata.seqnum_offset = 1;
-
-  /* build pipeline */
-  bin = gst_pipeline_new ("pipeline");
-  bus = gst_element_get_bus (bin);
-  gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
-
-  funnel = gst_element_factory_make ("funnel", "funnel");
-  rtprtxreceive = gst_element_factory_make ("rtprtxreceive", "rtprtxreceive");
-  sink = gst_element_factory_make ("fakesink", "sink");
-  g_object_set (sink, "sync", TRUE, NULL);
-  g_object_set (sink, "qos", FALSE, NULL);
-  gst_bin_add_many (GST_BIN (bin), funnel, rtprtxreceive, sink, NULL);
-
-  send_rtxdata_list =
-      g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc",
-          "rtpvrawpay", 96, 121, &receive_rtxdata));
-  send_rtxdata_list =
-      g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc",
-          "rtpvrawpay", 97, 122, &receive_rtxdata));
-  send_rtxdata_list =
-      g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc",
-          "rtpvrawpay", 98, 123, &receive_rtxdata));
-  send_rtxdata_list =
-      g_list_append (send_rtxdata_list, add_sender (bin, "videotestsrc",
-          "rtpvrawpay", 99, 124, &receive_rtxdata));
-
-  pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      "96", G_TYPE_UINT, 121, "97", G_TYPE_UINT, 122,
-      "98", G_TYPE_UINT, 123, "99", G_TYPE_UINT, 124, NULL);
-  g_object_set (rtprtxreceive, "payload-type-map", pt_map, NULL);
-  gst_structure_free (pt_map);
-
-  res = gst_element_link (funnel, rtprtxreceive);
-  fail_unless (res == TRUE, NULL);
-  res = gst_element_link (rtprtxreceive, sink);
-  fail_unless (res == TRUE, NULL);
-
-  srcpad = gst_element_get_static_pad (rtprtxreceive, "src");
-  gst_pad_add_probe (srcpad,
-      (GST_PAD_PROBE_TYPE_BUFFER | GST_PAD_PROBE_TYPE_PUSH),
-      (GstPadProbeCallback) rtprtxreceive_srcpad_probe_multiple,
-      &receive_rtxdata, NULL);
-  gst_object_unref (srcpad);
-
-  sinkpad = gst_element_get_static_pad (rtprtxreceive, "sink");
-  gst_pad_add_probe (sinkpad,
-      GST_PAD_PROBE_TYPE_EVENT_UPSTREAM,
-      (GstPadProbeCallback) rtprtxreceive_sinkpad_probe_check_drop,
-      &receive_rtxdata, NULL);
-  gst_object_unref (sinkpad);
-
-  g_signal_connect (bus, "message::error",
-      (GCallback) message_received_multiple, NULL);
-  g_signal_connect (bus, "message::warning",
-      (GCallback) message_received_multiple, NULL);
-
-  for (drop_every_n_packets = 2; drop_every_n_packets < 10;
-      drop_every_n_packets++) {
-    start_test_drop_multiple_and_check_results (bin, send_rtxdata_list,
-        &receive_rtxdata, drop_every_n_packets);
-  }
-
-  /* cleanup */
-
-  g_list_free_full (send_rtxdata_list, free_rtx_send_data);
-  g_hash_table_destroy (receive_rtxdata.ssrc_to_nb_packets_map);
-  g_hash_table_destroy (receive_rtxdata.ssrc_to_seqnum_offset_map);
-
-  gst_bus_remove_signal_watch (bus);
-  gst_object_unref (bus);
-  gst_object_unref (bin);
-}
-
-GST_END_TEST;
-
-struct GenerateTestBuffersData
-{
-  GstElement *src, *capsfilter, *payloader, *sink;
-  GMutex mutex;
-  GCond cond;
-  GList *buffers;
-  gint num_buffers;
-  guint last_seqnum;
-};
-
-static void
-fakesink_handoff (GstElement * sink, GstBuffer * buf, GstPad * pad,
-    gpointer user_data)
-{
-  struct GenerateTestBuffersData *data = user_data;
-
-  g_mutex_lock (&data->mutex);
-
-  if (data->num_buffers > 0)
-    data->buffers = g_list_append (data->buffers, gst_buffer_ref (buf));
-
-  /* if we have collected enough buffers, unblock the main thread to stop */
-  if (--data->num_buffers <= 0)
-    g_cond_signal (&data->cond);
-
-  if (data->num_buffers == 0)
-    g_object_get (data->payloader, "seqnum", &data->last_seqnum, NULL);
-
-  g_mutex_unlock (&data->mutex);
-}
-
-static GList *
-generate_test_buffers (const gint num_buffers, guint ssrc, guint * payload_type)
-{
-  GstElement *bin;
-  GstCaps *videotestsrc_caps;
-  gboolean res;
-  struct GenerateTestBuffersData data;
-
-  fail_unless (num_buffers > 0);
-
-  g_mutex_init (&data.mutex);
-  g_cond_init (&data.cond);
-  data.buffers = NULL;
-  data.num_buffers = num_buffers;
-
-  bin = gst_pipeline_new (NULL);
-  data.src = gst_element_factory_make ("videotestsrc", NULL);
-  data.capsfilter = gst_element_factory_make ("capsfilter", NULL);
-  data.payloader = gst_element_factory_make ("rtpvrawpay", NULL);
-  data.sink = gst_element_factory_make ("fakesink", NULL);
-
-  /* small frame size will cause vrawpay to generate exactly one rtp packet
-   * per video frame, which we need for the max-size-time test */
-  videotestsrc_caps =
-      gst_caps_from_string
-      ("video/x-raw,format=I420,width=10,height=10,framerate=30/1");
-
-  g_object_set (data.src, "do-timestamp", TRUE, NULL);
-  g_object_set (data.capsfilter, "caps", videotestsrc_caps, NULL);
-  g_object_set (data.payloader, "seqnum-offset", 1, "ssrc", ssrc, NULL);
-  g_object_set (data.sink, "signal-handoffs", TRUE, NULL);
-  g_signal_connect (data.sink, "handoff", (GCallback) fakesink_handoff, &data);
-
-  gst_caps_unref (videotestsrc_caps);
-
-  gst_bin_add_many (GST_BIN (bin), data.src, data.capsfilter, data.payloader,
-      data.sink, NULL);
-  res = gst_element_link_many (data.src, data.capsfilter, data.payloader,
-      data.sink, NULL);
-  fail_unless_equals_int (res, TRUE);
-
-  g_mutex_lock (&data.mutex);
-  ASSERT_SET_STATE (bin, GST_STATE_PLAYING, GST_STATE_CHANGE_ASYNC);
-  while (data.num_buffers > 0)
-    g_cond_wait (&data.cond, &data.mutex);
-  g_mutex_unlock (&data.mutex);
-
-  g_object_get (data.payloader, "pt", payload_type, NULL);
-
-  ASSERT_SET_STATE (bin, GST_STATE_NULL, GST_STATE_CHANGE_SUCCESS);
-
-  fail_unless_equals_int (g_list_length (data.buffers), num_buffers);
-  fail_unless_equals_int (num_buffers, data.last_seqnum);
-
-  g_mutex_clear (&data.mutex);
-  g_cond_clear (&data.cond);
-  gst_object_unref (bin);
-
-  return data.buffers;
-}
+#define push_pull_and_verify(h, buf, is_rtx, expected_ssrc, expted_pt, expected_seqnum) \
+  G_STMT_START {                                                                        \
+    gst_harness_push (h, buf);                                                          \
+    pull_and_verify (h, is_rtx, expected_ssrc, expted_pt, expected_seqnum);             \
+  } G_STMT_END
 
 static GstEvent *
-create_rtx_event (guint seqnum, guint ssrc, guint payload_type)
+create_rtx_event (guint32 ssrc, guint8 payload_type, guint16 seqnum)
 {
   return gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM,
       gst_structure_new ("GstRTPRetransmissionRequest",
@@ -1269,187 +61,6 @@
 }
 
 static void
-test_rtxsender_packet_retention (gboolean test_with_time)
-{
-  const gint num_buffers = test_with_time ? 30 : 10;
-  const gint half_buffers = num_buffers / 2;
-  const guint ssrc = 1234567;
-  const guint rtx_ssrc = 7654321;
-  const guint rtx_payload_type = 99;
-  GstStructure *pt_map;
-  GstStructure *ssrc_map;
-  GList *in_buffers, *node;
-  guint payload_type;
-  GstElement *rtxsend;
-  GstPad *srcpad, *sinkpad;
-  GstCaps *caps;
-  GstRTPBuffer rtp = GST_RTP_BUFFER_INIT;
-  gint i, j;
-  gboolean res;
-
-  /* generate test data  */
-  in_buffers = generate_test_buffers (num_buffers, ssrc, &payload_type);
-
-  /* clear the global buffers list, which we are going to use later */
-  gst_check_drop_buffers ();
-
-  /* setup element & pads */
-  rtxsend = gst_check_setup_element ("rtprtxsend");
-
-  pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      "96", G_TYPE_UINT, rtx_payload_type, NULL);
-  ssrc_map = gst_structure_new ("application/x-rtp-ssrc-map",
-      "1234567", G_TYPE_UINT, rtx_ssrc, NULL);
-
-  /* in both cases we want the rtxsend queue to store 'half_buffers'
-   * amount of buffers at most. In max-size-packets mode, it's trivial.
-   * In max-size-time mode, we specify almost half a second, which is
-   * the equivalent of 15 frames in a 30fps video stream */
-  g_object_set (rtxsend,
-      "max-size-packets", test_with_time ? 0 : half_buffers,
-      "max-size-time", test_with_time ? 499 : 0,
-      "payload-type-map", pt_map, "ssrc-map", ssrc_map, NULL);
-  gst_structure_free (pt_map);
-  gst_structure_free (ssrc_map);
-
-  srcpad = gst_check_setup_src_pad (rtxsend, &srctemplate);
-  fail_unless_equals_int (gst_pad_set_active (srcpad, TRUE), TRUE);
-
-  sinkpad = gst_check_setup_sink_pad (rtxsend, &sinktemplate);
-  fail_unless_equals_int (gst_pad_set_active (sinkpad, TRUE), TRUE);
-
-  ASSERT_SET_STATE (rtxsend, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS);
-
-  caps = gst_caps_from_string ("application/x-rtp, "
-      "media = (string)video, payload = (int)96, "
-      "ssrc = (uint)1234567, clock-rate = (int)90000, "
-      "encoding-name = (string)RAW");
-  gst_check_setup_events (srcpad, rtxsend, caps, GST_FORMAT_TIME);
-  gst_caps_unref (caps);
-
-  /* now push all buffers and request retransmission every time for all of them */
-  node = in_buffers;
-  for (i = 1; i <= num_buffers; i++) {
-    GstBuffer *buffer = GST_BUFFER (node->data);
-
-    /* verify that the original packets are correct */
-    res = gst_rtp_buffer_map (buffer, GST_MAP_READ, &rtp);
-    fail_unless_equals_int (res, TRUE);
-    fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), ssrc);
-    fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp),
-        payload_type);
-    fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp), i);
-    gst_rtp_buffer_unmap (&rtp);
-
-    /* retransmit all the previous ones */
-    for (j = 1; j < i; j++) {
-      /* synchronize with the chain() function of the "sinkpad"
-       * to make sure that rtxsend has pushed the rtx buffer out
-       * before continuing */
-      GList *last_out_buffer = g_list_last (buffers);
-      g_mutex_lock (&check_mutex);
-      fail_unless_equals_int (gst_pad_push_event (sinkpad,
-              create_rtx_event (j, ssrc, payload_type)), TRUE);
-      /* wait for the rtx packet only if we expect the element
-       * to actually retransmit something */
-      if (j >= MAX (i - half_buffers, 1)) {
-        guint64 end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND;
-
-        while (last_out_buffer == g_list_last (buffers))
-          fail_unless (g_cond_wait_until (&check_cond, &check_mutex, end_time));
-      }
-      g_mutex_unlock (&check_mutex);
-    }
-
-    /* push this one */
-    gst_pad_push (srcpad, gst_buffer_ref (buffer));
-    node = g_list_next (node);
-  }
-
-  /* verify the result. buffers should be in this order (numbers are seqnums):
-   * 1, 1rtx, 2, 1rtx, 2rtx, 3, ... , 9, 5rtx, 6rtx, 7rtx, 8rtx, 9rtx, 10 */
-  {
-    GstRTPBuffer orig_rtp = GST_RTP_BUFFER_INIT;
-    gint expected_rtx_requests, expected_rtx_packets;
-    gint real_rtx_requests, real_rtx_packets;
-
-    /* verify statistics first */
-    expected_rtx_packets = half_buffers * half_buffers +
-        ((half_buffers - 1) / 2.0f) * half_buffers;
-    for (i = 1, expected_rtx_requests = 0; i < num_buffers; i++)
-      expected_rtx_requests += i;
-
-    g_object_get (rtxsend, "num-rtx-requests", &real_rtx_requests,
-        "num-rtx-packets", &real_rtx_packets, NULL);
-    fail_unless_equals_int (expected_rtx_requests, real_rtx_requests);
-    fail_unless_equals_int (expected_rtx_packets, real_rtx_packets);
-
-    /* and the number of actual buffers that we were pushed out of rtxsend */
-    fail_unless_equals_int (g_list_length (buffers),
-        num_buffers + expected_rtx_packets);
-
-    node = buffers;
-    for (i = 1; i <= num_buffers; i++) {
-      /* verify the retransmission packets */
-      for (j = MAX (i - half_buffers, 1); j < i; j++) {
-        GST_INFO ("checking %d, %d", i, j);
-
-        res = gst_rtp_buffer_map (GST_BUFFER (node->data), GST_MAP_READ, &rtp);
-        fail_unless_equals_int (res, TRUE);
-
-        fail_if (gst_rtp_buffer_get_ssrc (&rtp) == ssrc);
-        fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), rtx_ssrc);
-        fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp),
-            rtx_payload_type);
-        fail_unless_equals_int (GST_READ_UINT16_BE (gst_rtp_buffer_get_payload (&rtp)), j);     /* j == rtx seqnum */
-
-        /* open the original packet for this rtx packet and verify timestamps */
-        res = gst_rtp_buffer_map (GST_BUFFER (g_list_nth_data (in_buffers,
-                    j - 1)), GST_MAP_READ, &orig_rtp);
-        fail_unless_equals_int (res, TRUE);
-        fail_unless_equals_int (gst_rtp_buffer_get_timestamp (&orig_rtp),
-            gst_rtp_buffer_get_timestamp (&rtp));
-        gst_rtp_buffer_unmap (&orig_rtp);
-
-        gst_rtp_buffer_unmap (&rtp);
-        node = g_list_next (node);
-      }
-
-      /* verify the normal rtp flow packet */
-      res = gst_rtp_buffer_map (GST_BUFFER (node->data), GST_MAP_READ, &rtp);
-      fail_unless_equals_int (res, TRUE);
-      fail_unless_equals_int (gst_rtp_buffer_get_ssrc (&rtp), ssrc);
-      fail_unless_equals_int (gst_rtp_buffer_get_payload_type (&rtp),
-          payload_type);
-      fail_unless_equals_int (gst_rtp_buffer_get_seq (&rtp), i);
-      gst_rtp_buffer_unmap (&rtp);
-      node = g_list_next (node);
-    }
-  }
-
-  g_list_free_full (in_buffers, (GDestroyNotify) gst_buffer_unref);
-  gst_check_drop_buffers ();
-
-  gst_check_teardown_src_pad (rtxsend);
-  gst_check_teardown_sink_pad (rtxsend);
-  gst_check_teardown_element (rtxsend);
-}
-
-GST_START_TEST (test_rtxsender_max_size_packets)
-{
-  test_rtxsender_packet_retention (FALSE);
-}
-
-GST_END_TEST;
-
-GST_START_TEST (test_rtxsender_max_size_time)
-{
-  test_rtxsender_packet_retention (TRUE);
-}
-
-GST_END_TEST;
-
-static void
 compare_rtp_packets (GstBuffer * a, GstBuffer * b)
 {
   GstRTPBuffer rtp_a = GST_RTP_BUFFER_INIT;
@@ -1487,90 +98,469 @@
   gst_rtp_buffer_unmap (&rtp_b);
 }
 
-GST_START_TEST (test_rtxreceive_data_reconstruction)
+static GstBuffer *
+create_rtp_buffer (guint32 ssrc, guint8 payload_type, guint16 seqnum)
 {
-  const guint ssrc = 1234567;
-  GList *in_buffers;
-  guint payload_type;
-  GstElement *rtxsend, *rtxrecv;
-  GstPad *srcpad, *sinkpad;
-  GstCaps *caps;
-  GstBuffer *buffer;
+  GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
+  guint payload_size = 29;
+  guint64 timestamp = gst_util_uint64_scale_int (seqnum, 90000, 30);
+  GstBuffer *buf = gst_rtp_buffer_new_allocate (payload_size, 0, 0);
+
+  gst_rtp_buffer_map (buf, GST_MAP_WRITE, &rtpbuf);
+  gst_rtp_buffer_set_ssrc (&rtpbuf, ssrc);
+  gst_rtp_buffer_set_payload_type (&rtpbuf, payload_type);
+  gst_rtp_buffer_set_seq (&rtpbuf, seqnum);
+  gst_rtp_buffer_set_timestamp (&rtpbuf, (guint32) timestamp);
+  memset (gst_rtp_buffer_get_payload (&rtpbuf), 0x29, payload_size);
+  gst_rtp_buffer_unmap (&rtpbuf);
+  return buf;
+}
+
+static GstBuffer *
+create_rtp_buffer_with_timestamp (guint32 ssrc, guint8 payload_type,
+    guint16 seqnum, guint32 timestamp)
+{
+  GstRTPBuffer rtpbuf = GST_RTP_BUFFER_INIT;
+  GstBuffer *buf = create_rtp_buffer (ssrc, payload_type, seqnum);
+  gst_rtp_buffer_map (buf, GST_MAP_WRITE, &rtpbuf);
+  gst_rtp_buffer_set_timestamp (&rtpbuf, timestamp);
+  gst_rtp_buffer_unmap (&rtpbuf);
+  return buf;
+}
+
+GST_START_TEST (test_rtxsend_rtxreceive)
+{
+  const guint packets_num = 5;
+  guint master_ssrc = 1234567;
+  guint master_pt = 96;
+  guint rtx_pt = 99;
   GstStructure *pt_map;
-
-  /* generate test data  */
-  in_buffers = generate_test_buffers (1, ssrc, &payload_type);
-
-  /* clear the global buffers list, which we are going to use later */
-  gst_check_drop_buffers ();
-
-  /* setup element & pads */
-  rtxsend = gst_check_setup_element ("rtprtxsend");
-  rtxrecv = gst_check_setup_element ("rtprtxreceive");
+  GstBuffer *inbufs[5];
+  GstHarness *hrecv = gst_harness_new ("rtprtxreceive");
+  GstHarness *hsend = gst_harness_new ("rtprtxsend");
 
   pt_map = gst_structure_new ("application/x-rtp-pt-map",
-      "96", G_TYPE_UINT, 99, NULL);
-  g_object_set (rtxsend, "payload-type-map", pt_map, NULL);
-  g_object_set (rtxrecv, "payload-type-map", pt_map, NULL);
-  gst_structure_free (pt_map);
+      "96", G_TYPE_UINT, rtx_pt, NULL);
+  g_object_set (hrecv->element, "payload-type-map", pt_map, NULL);
+  g_object_set (hsend->element, "payload-type-map", pt_map, NULL);
 
-  fail_unless_equals_int (gst_element_link (rtxsend, rtxrecv), TRUE);
-
-  srcpad = gst_check_setup_src_pad (rtxsend, &srctemplate);
-  fail_unless_equals_int (gst_pad_set_active (srcpad, TRUE), TRUE);
-
-  sinkpad = gst_check_setup_sink_pad (rtxrecv, &sinktemplate);
-  fail_unless_equals_int (gst_pad_set_active (sinkpad, TRUE), TRUE);
-
-  ASSERT_SET_STATE (rtxsend, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS);
-  ASSERT_SET_STATE (rtxrecv, GST_STATE_PLAYING, GST_STATE_CHANGE_SUCCESS);
-
-  caps = gst_caps_from_string ("application/x-rtp, "
+  gst_harness_set_src_caps_str (hsend, "application/x-rtp, "
       "media = (string)video, payload = (int)96, "
       "ssrc = (uint)1234567, clock-rate = (int)90000, "
       "encoding-name = (string)RAW");
-  gst_check_setup_events (srcpad, rtxsend, caps, GST_FORMAT_TIME);
-  gst_caps_unref (caps);
+  gst_harness_set_src_caps_str (hrecv, "application/x-rtp, "
+      "media = (string)video, payload = (int)96, "
+      "ssrc = (uint)1234567, clock-rate = (int)90000, "
+      "encoding-name = (string)RAW");
 
-  /* push buffer */
-  buffer = gst_buffer_ref (GST_BUFFER (in_buffers->data));
-  fail_unless_equals_int (gst_pad_push (srcpad, buffer), GST_FLOW_OK);
-
-  /* push retransmission request */
-  {
-    GList *last_out_buffer;
-    guint64 end_time;
-    gboolean res;
-
-    /* synchronize with the chain() function of the "sinkpad"
-     * to make sure that rtxsend has pushed the rtx buffer out
-     * before continuing */
-    last_out_buffer = g_list_last (buffers);
-    g_mutex_lock (&check_mutex);
-    fail_unless_equals_int (gst_pad_push_event (sinkpad,
-            create_rtx_event (1, ssrc, payload_type)), TRUE);
-    end_time = g_get_monotonic_time () + G_TIME_SPAN_SECOND;
-    do
-      res = g_cond_wait_until (&check_cond, &check_mutex, end_time);
-    while (res == TRUE && last_out_buffer == g_list_last (buffers));
-    fail_unless_equals_int (res, TRUE);
-    g_mutex_unlock (&check_mutex);
+  /* Push 'packets_num' packets through rtxsend to rtxreceive */
+  for (gint i = 0; i < packets_num; ++i) {
+    inbufs[i] = create_rtp_buffer (master_ssrc, master_pt, 100 + i);
+    gst_harness_push (hsend, gst_buffer_ref (inbufs[i]));
+    gst_harness_push (hrecv, gst_harness_pull (hsend));
+    pull_and_verify (hrecv, FALSE, master_ssrc, master_pt, 100 + i);
   }
 
-  /* verify */
-  fail_unless_equals_int (g_list_length (buffers), 2);
-  compare_rtp_packets (GST_BUFFER (buffers->data),
-      GST_BUFFER (buffers->next->data));
+  /* Getting rid of reconfigure event. Preparation before the next step */
+  gst_event_unref (gst_harness_pull_upstream_event (hrecv));
+  fail_unless_equals_int (gst_harness_upstream_events_in_queue (hrecv), 0);
 
-  /* cleanup */
-  g_list_free_full (in_buffers, (GDestroyNotify) gst_buffer_unref);
-  gst_check_drop_buffers ();
+  /* Push 'packets_num' RTX events through rtxreceive to rtxsend.
+     Push RTX packets from rtxsend to rtxreceive and
+     check that the packet produced out of RTX packet is the same
+     as an original packet */
+  for (gint i = 0; i < packets_num; ++i) {
+    GstBuffer *outbuf;
+    gst_harness_push_upstream_event (hrecv,
+        create_rtx_event (master_ssrc, master_pt, 100 + i));
+    gst_harness_push_upstream_event (hsend,
+        gst_harness_pull_upstream_event (hrecv));
+    gst_harness_push (hrecv, gst_harness_pull (hsend));
 
-  gst_check_teardown_src_pad (rtxsend);
-  gst_check_teardown_sink_pad (rtxrecv);
-  gst_element_unlink (rtxsend, rtxrecv);
-  gst_check_teardown_element (rtxsend);
-  gst_check_teardown_element (rtxrecv);
+    outbuf = gst_harness_pull (hrecv);
+    compare_rtp_packets (inbufs[i], outbuf);
+    gst_buffer_unref (inbufs[i]);
+    gst_buffer_unref (outbuf);
+  }
+
+  /* Check RTX stats */
+  {
+    guint rtx_requests;
+    guint rtx_packets;
+    guint rtx_assoc_packets;
+    g_object_get (G_OBJECT (hsend->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets, NULL);
+    fail_unless_equals_int (rtx_packets, packets_num);
+    fail_unless_equals_int (rtx_requests, packets_num);
+
+    g_object_get (G_OBJECT (hrecv->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets,
+        "num-rtx-assoc-packets", &rtx_assoc_packets, NULL);
+    fail_unless_equals_int (rtx_packets, packets_num);
+    fail_unless_equals_int (rtx_requests, packets_num);
+    fail_unless_equals_int (rtx_assoc_packets, packets_num);
+  }
+
+  gst_structure_free (pt_map);
+  gst_harness_teardown (hrecv);
+  gst_harness_teardown (hsend);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtxsend_rtxreceive_with_packet_loss)
+{
+  guint packets_num = 20;
+  guint master_ssrc = 1234567;
+  guint master_pt = 96;
+  guint rtx_pt = 99;
+  guint seqnum = 100;
+  guint expected_rtx_packets = 0;
+  GstStructure *pt_map;
+  GstHarness *hrecv = gst_harness_new ("rtprtxreceive");
+  GstHarness *hsend = gst_harness_new ("rtprtxsend");
+
+  pt_map = gst_structure_new ("application/x-rtp-pt-map",
+      "96", G_TYPE_UINT, rtx_pt, NULL);
+  g_object_set (hrecv->element, "payload-type-map", pt_map, NULL);
+  g_object_set (hsend->element, "payload-type-map", pt_map, NULL);
+
+  gst_harness_set_src_caps_str (hsend, "application/x-rtp, "
+      "media = (string)video, payload = (int)96, "
+      "ssrc = (uint)1234567, clock-rate = (int)90000, "
+      "encoding-name = (string)RAW");
+  gst_harness_set_src_caps_str (hrecv, "application/x-rtp, "
+      "media = (string)video, payload = (int)96, "
+      "ssrc = (uint)1234567, clock-rate = (int)90000, "
+      "encoding-name = (string)RAW");
+
+  /* Getting rid of reconfigure event. Making sure there is no upstream
+     events in the queue. Preparation step before the test. */
+  gst_event_unref (gst_harness_pull_upstream_event (hrecv));
+  fail_unless_equals_int (gst_harness_upstream_events_in_queue (hrecv), 0);
+
+  /* Push 'packets_num' packets through rtxsend to rtxreceive loosing every
+     'drop_every_n_packets' packet. When we loose the packet we send RTX event
+     through rtxreceive to rtxsend, and verify the packet was retransmitted */
+  for (gint drop_nth_packet = 2; drop_nth_packet < 10; ++drop_nth_packet) {
+    for (gint i = 0; i < packets_num; ++i, ++seqnum) {
+      GstBuffer *outbuf;
+      GstBuffer *inbuf = create_rtp_buffer (master_ssrc, master_pt, seqnum);
+      gboolean drop_this_packet = ((i + 1) % drop_nth_packet) == 0;
+
+      gst_harness_push (hsend, gst_buffer_ref (inbuf));
+      if (drop_this_packet) {
+        /* Dropping original packet */
+        gst_buffer_unref (gst_harness_pull (hsend));
+        /* Requesting retransmission */
+        gst_harness_push_upstream_event (hrecv,
+            create_rtx_event (master_ssrc, master_pt, seqnum));
+        gst_harness_push_upstream_event (hsend,
+            gst_harness_pull_upstream_event (hrecv));
+        /* Pushing RTX packet to rtxreceive */
+        gst_harness_push (hrecv, gst_harness_pull (hsend));
+        ++expected_rtx_packets;
+      } else {
+        gst_harness_push (hrecv, gst_harness_pull (hsend));
+      }
+
+      /* We making sure every buffer we pull is the same as original input
+         buffer */
+      outbuf = gst_harness_pull (hrecv);
+      compare_rtp_packets (inbuf, outbuf);
+      gst_buffer_unref (inbuf);
+      gst_buffer_unref (outbuf);
+
+      /*
+         We should not have any packets in the harness queue by this point. It
+         means rtxsend didn't send more packets than RTX events and rtxreceive
+         didn't produce more than one packet per RTX packet.
+       */
+      fail_unless_equals_int (gst_harness_buffers_in_queue (hsend), 0);
+      fail_unless_equals_int (gst_harness_buffers_in_queue (hrecv), 0);
+    }
+  }
+
+  /* Check RTX stats */
+  {
+    guint rtx_requests;
+    guint rtx_packets;
+    guint rtx_assoc_packets;
+    g_object_get (G_OBJECT (hsend->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets, NULL);
+    fail_unless_equals_int (rtx_packets, expected_rtx_packets);
+    fail_unless_equals_int (rtx_requests, expected_rtx_packets);
+
+    g_object_get (G_OBJECT (hrecv->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets,
+        "num-rtx-assoc-packets", &rtx_assoc_packets, NULL);
+    fail_unless_equals_int (rtx_packets, expected_rtx_packets);
+    fail_unless_equals_int (rtx_requests, expected_rtx_packets);
+    fail_unless_equals_int (rtx_assoc_packets, expected_rtx_packets);
+  }
+
+  gst_structure_free (pt_map);
+  gst_harness_teardown (hrecv);
+  gst_harness_teardown (hsend);
+}
+
+GST_END_TEST;
+
+typedef struct
+{
+  GstHarness *h;
+  guint master_ssrc;
+  guint master_pt;
+  guint rtx_ssrc;
+  guint rtx_pt;
+  guint seqnum;
+  guint expected_rtx_packets;
+} RtxSender;
+
+static GstStructure *
+create_rtxsenders (RtxSender * senders, guint senders_num)
+{
+  GstStructure *recv_pt_map =
+      gst_structure_new_empty ("application/x-rtp-pt-map");
+
+  for (gint i = 0; i < senders_num; ++i) {
+    gchar *master_pt_str;
+    gchar *master_caps_str;
+    GstStructure *send_pt_map;
+
+    senders[i].h = gst_harness_new ("rtprtxsend");
+    senders[i].master_ssrc = 1234567 + i;
+    senders[i].rtx_ssrc = 7654321 + i;
+    senders[i].master_pt = 80 + i;
+    senders[i].rtx_pt = 20 + i;
+    senders[i].seqnum = i * 1000;
+    senders[i].expected_rtx_packets = 0;
+
+    master_pt_str = g_strdup_printf ("%u", senders[i].master_pt);
+    master_caps_str = g_strdup_printf ("application/x-rtp, "
+        "media = (string)video, payload = (int)%u, "
+        "ssrc = (uint)%u, clock-rate = (int)90000, "
+        "encoding-name = (string)RAW",
+        senders[i].master_pt, senders[i].master_ssrc);
+
+    send_pt_map = gst_structure_new ("application/x-rtp-pt-map",
+        master_pt_str, G_TYPE_UINT, senders[i].rtx_pt, NULL);
+    gst_structure_set (recv_pt_map,
+        master_pt_str, G_TYPE_UINT, senders[i].rtx_pt, NULL);
+
+    g_object_set (senders[i].h->element, "payload-type-map", send_pt_map, NULL);
+    gst_harness_set_src_caps_str (senders[i].h, master_caps_str);
+
+    gst_structure_free (send_pt_map);
+    g_free (master_pt_str);
+    g_free (master_caps_str);
+  }
+  return recv_pt_map;
+}
+
+static guint
+check_rtxsenders_stats_and_teardown (RtxSender * senders, guint senders_num)
+{
+  guint total_pakets_num = 0;
+  for (gint i = 0; i < senders_num; ++i) {
+    guint rtx_requests;
+    guint rtx_packets;
+    g_object_get (G_OBJECT (senders[i].h->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets, NULL);
+    fail_unless_equals_int (rtx_packets, senders[i].expected_rtx_packets);
+    fail_unless_equals_int (rtx_requests, senders[i].expected_rtx_packets);
+    total_pakets_num += rtx_packets;
+
+    gst_harness_teardown (senders[i].h);
+  }
+  return total_pakets_num;
+}
+
+GST_START_TEST (test_multi_rtxsend_rtxreceive_with_packet_loss)
+{
+  guint senders_num = 5;
+  guint packets_num = 10;
+  guint total_pakets_num = senders_num * packets_num;
+  guint total_dropped_packets = 0;
+  RtxSender senders[5];
+  GstStructure *pt_map;
+  GstHarness *hrecv = gst_harness_new ("rtprtxreceive");
+
+  pt_map = create_rtxsenders (senders, 5);
+  g_object_set (hrecv->element, "payload-type-map", pt_map, NULL);
+  gst_harness_set_src_caps_str (hrecv, "application/x-rtp, "
+      "media = (string)video, payload = (int)80, "
+      "ssrc = (uint)1234567, clock-rate = (int)90000, "
+      "encoding-name = (string)RAW");
+
+  /* Getting rid of reconfigure event. Making sure there is no upstream
+     events in the queue. Preparation step before the test. */
+  gst_event_unref (gst_harness_pull_upstream_event (hrecv));
+  fail_unless_equals_int (gst_harness_upstream_events_in_queue (hrecv), 0);
+
+  /* We are going to push the 1st packet from the 1st sender, 2nd from the 2nd,
+     3rd from the 3rd, etc. until all the senders will push 'packets_num' packets.
+     We will drop every 'drop_nth_packet' packet and request its retransmission
+     from all the senders. Because only one of them can produce RTX packet.
+     We need to make sure that all other senders will ignore the RTX event they
+     can't act upon.
+   */
+  for (gint drop_nth_packet = 2; drop_nth_packet < 5; ++drop_nth_packet) {
+    for (gint i = 0; i < total_pakets_num; ++i) {
+      RtxSender *sender = &senders[i % senders_num];
+      gboolean drop_this_packet = ((i + 1) % drop_nth_packet) == 0;
+      GstBuffer *outbuf, *inbuf;
+      inbuf =
+          create_rtp_buffer (sender->master_ssrc, sender->master_pt,
+          sender->seqnum);
+
+      gst_harness_push (sender->h, gst_buffer_ref (inbuf));
+      if (drop_this_packet) {
+        GstEvent *rtxevent;
+        /* Dropping original packet */
+        gst_buffer_unref (gst_harness_pull (sender->h));
+
+        /* Pushing RTX event through rtxreceive to all the senders */
+        gst_harness_push_upstream_event (hrecv,
+            create_rtx_event (sender->master_ssrc, sender->master_pt,
+                sender->seqnum));
+        rtxevent = gst_harness_pull_upstream_event (hrecv);
+
+        /* ... to all the senders */
+        for (gint j = 0; j < senders_num; ++j)
+          gst_harness_push_upstream_event (senders[j].h,
+              gst_event_ref (rtxevent));
+        gst_event_unref (rtxevent);
+
+        /* Pushing RTX packet to rtxreceive */
+        gst_harness_push (hrecv, gst_harness_pull (sender->h));
+        ++sender->expected_rtx_packets;
+        ++total_dropped_packets;
+      } else {
+        gst_harness_push (hrecv, gst_harness_pull (sender->h));
+      }
+
+      /* It should not matter whether the buffer was dropped (and retransmitted)
+         or it went straight through rtxsend to rtxreceive. We should always pull
+         the same buffer that was pushed */
+      outbuf = gst_harness_pull (hrecv);
+      compare_rtp_packets (inbuf, outbuf);
+      gst_buffer_unref (inbuf);
+      gst_buffer_unref (outbuf);
+
+      /*
+         We should not have any packets in the harness queue by this point. It
+         means our senders didn't produce the packets for the unknown RTX event.
+       */
+      for (gint j = 0; j < senders_num; ++j)
+        fail_unless_equals_int (gst_harness_buffers_in_queue (senders[j].h), 0);
+
+      ++sender->seqnum;
+    }
+  }
+
+  /* Check RTX stats */
+  {
+    guint total_rtx_packets;
+    guint rtx_requests;
+    guint rtx_packets;
+    guint rtx_assoc_packets;
+
+    total_rtx_packets =
+        check_rtxsenders_stats_and_teardown (senders, senders_num);
+    fail_unless_equals_int (total_rtx_packets, total_dropped_packets);
+
+    g_object_get (G_OBJECT (hrecv->element),
+        "num-rtx-requests", &rtx_requests,
+        "num-rtx-packets", &rtx_packets,
+        "num-rtx-assoc-packets", &rtx_assoc_packets, NULL);
+    fail_unless_equals_int (rtx_packets, total_rtx_packets);
+    fail_unless_equals_int (rtx_requests, total_rtx_packets);
+    fail_unless_equals_int (rtx_assoc_packets, total_rtx_packets);
+  }
+
+  gst_structure_free (pt_map);
+  gst_harness_teardown (hrecv);
+}
+
+GST_END_TEST;
+
+static void
+test_rtxsender_packet_retention (gboolean test_with_time)
+{
+  guint master_ssrc = 1234567;
+  guint master_pt = 96;
+  guint rtx_ssrc = 7654321;
+  guint rtx_pt = 99;
+  gint num_buffers = test_with_time ? 30 : 10;
+  gint half_buffers = num_buffers / 2;
+  guint timestamp_delta = 90000 / 30;
+  guint timestamp = G_MAXUINT32 - half_buffers * timestamp_delta;
+  GstHarness *h;
+  GstStructure *pt_map = gst_structure_new ("application/x-rtp-pt-map",
+      "96", G_TYPE_UINT, rtx_pt, NULL);
+  GstStructure *ssrc_map = gst_structure_new ("application/x-rtp-ssrc-map",
+      "1234567", G_TYPE_UINT, rtx_ssrc, NULL);
+
+  h = gst_harness_new ("rtprtxsend");
+
+  /* In both cases we want the rtxsend queue to store 'half_buffers'
+     amount of buffers at most. In max-size-packets mode, it's trivial.
+     In max-size-time mode, we specify almost half a second, which is
+     the equivalent of 15 frames in a 30fps video stream.
+   */
+  g_object_set (h->element,
+      "max-size-packets", test_with_time ? 0 : half_buffers,
+      "max-size-time", test_with_time ? 499 : 0,
+      "payload-type-map", pt_map, "ssrc-map", ssrc_map, NULL);
+
+  gst_harness_set_src_caps_str (h, "application/x-rtp, "
+      "media = (string)video, payload = (int)96, "
+      "ssrc = (uint)1234567, clock-rate = (int)90000, "
+      "encoding-name = (string)RAW");
+
+  /* Now push all buffers and request retransmission every time for all of them */
+  for (gint i = 0; i < num_buffers; ++i, timestamp += timestamp_delta) {
+    /* Request to retransmit all the previous ones */
+    for (gint j = 0; j < i; ++j) {
+      guint rtx_seqnum = 0x100 + j;
+      gst_harness_push_upstream_event (h,
+          create_rtx_event (master_ssrc, master_pt, rtx_seqnum));
+
+      /* Pull only the ones supposed to be retransmited */
+      if (j >= i - half_buffers)
+        pull_and_verify (h, TRUE, rtx_ssrc, rtx_pt, rtx_seqnum);
+    }
+    /* Check there no extra buffers in the harness queue */
+    fail_unless_equals_int (gst_harness_buffers_in_queue (h), 0);
+
+    /* We create RTP buffers with timestamps that will eventualy wrap around 0
+       to be sure, rtprtxsend can handle it properly */
+    push_pull_and_verify (h,
+        create_rtp_buffer_with_timestamp (master_ssrc, master_pt, 0x100 + i,
+            timestamp), FALSE, master_ssrc, master_pt, 0x100 + i);
+  }
+
+  gst_structure_free (pt_map);
+  gst_structure_free (ssrc_map);
+  gst_harness_teardown (h);
+}
+
+GST_START_TEST (test_rtxsender_max_size_packets)
+{
+  test_rtxsender_packet_retention (FALSE);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_rtxsender_max_size_time)
+{
+  test_rtxsender_packet_retention (TRUE);
 }
 
 GST_END_TEST;
@@ -1585,12 +575,11 @@
 
   suite_add_tcase (s, tc_chain);
 
-  tcase_add_test (tc_chain, test_push_forward_seq);
-  tcase_add_test (tc_chain, test_drop_one_sender);
-  tcase_add_test (tc_chain, test_drop_multiple_sender);
+  tcase_add_test (tc_chain, test_rtxsend_rtxreceive);
+  tcase_add_test (tc_chain, test_rtxsend_rtxreceive_with_packet_loss);
+  tcase_add_test (tc_chain, test_multi_rtxsend_rtxreceive_with_packet_loss);
   tcase_add_test (tc_chain, test_rtxsender_max_size_packets);
   tcase_add_test (tc_chain, test_rtxsender_max_size_time);
-  tcase_add_test (tc_chain, test_rtxreceive_data_reconstruction);
 
   return s;
 }
diff --git a/tests/check/elements/rtpsession.c b/tests/check/elements/rtpsession.c
index 88c2f3d..c4d2185 100644
--- a/tests/check/elements/rtpsession.c
+++ b/tests/check/elements/rtpsession.c
@@ -22,9 +22,9 @@
  */
 #define GLIB_DISABLE_DEPRECATION_WARNINGS
 
+#include <gst/check/gstharness.h>
 #include <gst/check/gstcheck.h>
 #include <gst/check/gsttestclock.h>
-#include <gst/check/gstharness.h>
 
 #include <gst/rtp/gstrtpbuffer.h>
 #include <gst/rtp/gstrtcpbuffer.h>
@@ -579,6 +579,134 @@
 
 GST_END_TEST;
 
+typedef struct
+{
+  guint8 subtype;
+  guint32 ssrc;
+  gchar *name;
+  GstBuffer *data;
+} RTCPAppResult;
+
+static void
+on_app_rtcp_cb (GObject * session, guint subtype, guint ssrc,
+    const gchar * name, GstBuffer * data, RTCPAppResult * result)
+{
+  result->subtype = subtype;
+  result->ssrc = ssrc;
+  result->name = g_strdup (name);
+  result->data = data ? gst_buffer_ref (data) : NULL;
+}
+
+GST_START_TEST (test_receive_rtcp_app_packet)
+{
+  GstHarness *h;
+  GstBuffer *buffer;
+  GstRTCPBuffer rtcp = GST_RTCP_BUFFER_INIT;
+  GstRTCPPacket packet;
+  RTCPAppResult result = { 0 };
+  GstElement *internal_session;
+  guint8 data[] = { 0x11, 0x22, 0x33, 0x44 };
+
+  h = gst_harness_new_with_padnames ("rtpsession", "recv_rtcp_sink", NULL);
+  g_object_get (h->element, "internal-session", &internal_session, NULL);
+
+  g_signal_connect (internal_session, "on-app-rtcp",
+      G_CALLBACK (on_app_rtcp_cb), &result);
+
+  /* Push APP buffer with no data */
+  buffer = gst_rtcp_buffer_new (1000);
+  fail_unless (gst_rtcp_buffer_map (buffer, GST_MAP_READWRITE, &rtcp));
+  fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, &packet));
+  gst_rtcp_packet_app_set_subtype (&packet, 21);
+  gst_rtcp_packet_app_set_ssrc (&packet, 0x11111111);
+  gst_rtcp_packet_app_set_name (&packet, "Test");
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  gst_harness_set_src_caps_str (h, "application/x-rtcp");
+  fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);
+
+  fail_unless_equals_int (result.subtype, 21);
+  fail_unless_equals_int (result.ssrc, 0x11111111);
+  fail_unless_equals_string (result.name, "Test");
+  fail_unless_equals_pointer (result.data, NULL);
+
+  g_free (result.name);
+
+  /* Push APP buffer with data */
+  memset (&result, 0, sizeof (result));
+  buffer = gst_rtcp_buffer_new (1000);
+  fail_unless (gst_rtcp_buffer_map (buffer, GST_MAP_READWRITE, &rtcp));
+  fail_unless (gst_rtcp_buffer_add_packet (&rtcp, GST_RTCP_TYPE_APP, &packet));
+  gst_rtcp_packet_app_set_subtype (&packet, 22);
+  gst_rtcp_packet_app_set_ssrc (&packet, 0x22222222);
+  gst_rtcp_packet_app_set_name (&packet, "Test");
+  gst_rtcp_packet_app_set_data_length (&packet, sizeof (data) / 4);
+  memcpy (gst_rtcp_packet_app_get_data (&packet), data, sizeof (data));
+  gst_rtcp_buffer_unmap (&rtcp);
+
+  fail_unless_equals_int (gst_harness_push (h, buffer), GST_FLOW_OK);
+
+  fail_unless_equals_int (result.subtype, 22);
+  fail_unless_equals_int (result.ssrc, 0x22222222);
+  fail_unless_equals_string (result.name, "Test");
+  fail_unless (gst_buffer_memcmp (result.data, 0, data, sizeof (data)) == 0);
+
+  g_free (result.name);
+  gst_buffer_unref (result.data);
+
+  gst_object_unref (internal_session);
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+static void
+stats_test_cb (GObject * object, GParamSpec * spec, gpointer data)
+{
+  guint num_sources = 0;
+  gboolean *cb_called = data;
+  g_assert (*cb_called == FALSE);
+  *cb_called = TRUE;
+
+  /* We should be able to get a rtpsession property
+     without introducing the deadlock */
+  g_object_get (object, "num-sources", &num_sources, NULL);
+}
+
+GST_START_TEST (test_dont_lock_on_stats)
+{
+  GstHarness *h_rtcp;
+  GstHarness *h_send;
+  GstClock *clock = gst_test_clock_new ();
+  GstTestClock *testclock = GST_TEST_CLOCK (clock);
+  gboolean cb_called = FALSE;
+
+  /* use testclock as the systemclock to capture the rtcp thread waits */
+  gst_system_clock_set_default (GST_CLOCK (testclock));
+
+  h_rtcp =
+      gst_harness_new_with_padnames ("rtpsession", "recv_rtcp_sink",
+      "send_rtcp_src");
+  h_send =
+      gst_harness_new_with_element (h_rtcp->element, "send_rtp_sink",
+      "send_rtp_src");
+
+  /* connect to the stats-reporting */
+  g_signal_connect (h_rtcp->element, "notify::stats",
+      G_CALLBACK (stats_test_cb), &cb_called);
+
+  /* "crank" and check the stats */
+  g_assert (gst_test_clock_crank (testclock));
+  gst_buffer_unref (gst_harness_pull (h_rtcp));
+  fail_unless (cb_called);
+
+  gst_harness_teardown (h_send);
+  gst_harness_teardown (h_rtcp);
+  gst_object_unref (clock);
+}
+
+GST_END_TEST;
+
 static void
 suspicious_bye_cb (GObject * object, GParamSpec * spec, gpointer data)
 {
@@ -692,6 +820,8 @@
   tcase_add_test (tc_chain, test_multiple_ssrc_rr);
   tcase_add_test (tc_chain, test_multiple_senders_roundrobin_rbs);
   tcase_add_test (tc_chain, test_internal_sources_timeout);
+  tcase_add_test (tc_chain, test_receive_rtcp_app_packet);
+  tcase_add_test (tc_chain, test_dont_lock_on_stats);
   tcase_add_test (tc_chain, test_ignore_suspicious_bye);
 
   return s;
diff --git a/tests/check/elements/rtpvp9.c b/tests/check/elements/rtpvp9.c
new file mode 100644
index 0000000..123069e
--- /dev/null
+++ b/tests/check/elements/rtpvp9.c
@@ -0,0 +1,114 @@
+/* GStreamer
+ *
+ * Copyright (C) 2016 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>
+
+#define RTP_VP9_CAPS_STR \
+  "application/x-rtp,media=video,encoding-name=VP9,clock-rate=90000,payload=96"
+
+
+GST_START_TEST (test_depay_flexible_mode)
+{
+  /* b-bit, e-bit, f-bit and marker bit set */
+  /* First packet of first frame, handcrafted to also set the e-bit and marker
+   * bit in addition to changing the seqnum */
+  guint8 intra[] = {
+    0x80, 0xf4, 0x00, 0x00, 0x49, 0xb5, 0xbe, 0x32, 0xb1, 0x01, 0x64, 0xd1,
+    0xbc, 0x98, 0xbf, 0x00, 0x83, 0x49, 0x83, 0x42, 0x00, 0x77, 0xf0, 0x43,
+    0x71, 0xd8, 0xe0, 0x90, 0x70, 0x66, 0x80, 0x60, 0x0e, 0xf0, 0x5f, 0xfd,
+  };
+  /* b-bit, e-bit, p-bit, f-bit and marker bit set */
+  /* First packet of second frame, handcrafted to also set the e-bit and
+   * marker bit in addition to changing the seqnum */
+  guint8 inter[] = {
+    0x80, 0xf4, 0x00, 0x01, 0x49, 0xb6, 0x02, 0xc0, 0xb1, 0x01, 0x64, 0xd1,
+    0xfc, 0x98, 0xc0, 0x00, 0x02, 0x87, 0x01, 0x00, 0x09, 0x3f, 0x1c, 0x12,
+    0x0e, 0x0c, 0xd0, 0x1b, 0xa7, 0x80, 0x80, 0xb0, 0x18, 0x0f, 0xda, 0x11,
+  };
+
+  GstHarness *h = gst_harness_new ("rtpvp9depay");
+  gst_harness_set_src_caps_str (h, RTP_VP9_CAPS_STR);
+
+  gst_harness_push (h, gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
+          intra, sizeof (intra), 0, sizeof (intra), NULL, NULL));
+  fail_unless_equals_int (1, gst_harness_buffers_received (h));
+
+  gst_harness_push (h, gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
+          inter, sizeof (inter), 0, sizeof (inter), NULL, NULL));
+  fail_unless_equals_int (2, gst_harness_buffers_received (h));
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+GST_START_TEST (test_depay_non_flexible_mode)
+{
+  /* b-bit, e-bit and  marker bit set. f-bit NOT set */
+  /* First packet of first frame, handcrafted to also set the e-bit and marker
+   * bit in addition to changing the seqnum */
+  guint8 intra[] = {
+    0x80, 0xf4, 0x00, 0x00, 0x49, 0x88, 0xd9, 0xf8, 0xa0, 0x6c, 0x65, 0x6c,
+    0x8c, 0x98, 0xc0, 0x87, 0x01, 0x02, 0x49, 0x3f, 0x1c, 0x12, 0x0e, 0x0c,
+    0xd0, 0x1b, 0xb9, 0x80, 0x80, 0xb0, 0x18, 0x0f, 0xa6, 0x4d, 0x01, 0xa5
+  };
+  /* b-bit, e-bit, p-bit  and marker bit set. f-bit NOT set */
+  /* First packet of second frame, handcrafted to also set the e-bit and
+   * marker bit in addition to changing the seqnum */
+  guint8 inter[] = {
+    0x80, 0xf4, 0x00, 0x01, 0x49, 0x88, 0xe5, 0x38, 0xa0, 0x6c, 0x65, 0x6c,
+    0xcc, 0x98, 0xc1, 0x87, 0x01, 0x02, 0x49, 0x3f, 0x1c, 0x12, 0x0e, 0x0c,
+    0xd0, 0x1b, 0x97, 0x80, 0x80, 0xb0, 0x18, 0x0f, 0x8a, 0x9f, 0x01, 0xbc
+  };
+
+  GstHarness *h = gst_harness_new ("rtpvp9depay");
+  gst_harness_set_src_caps_str (h, RTP_VP9_CAPS_STR);
+
+  gst_harness_push (h, gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
+          intra, sizeof (intra), 0, sizeof (intra), NULL, NULL));
+  fail_unless_equals_int (1, gst_harness_buffers_received (h));
+
+  gst_harness_push (h, gst_buffer_new_wrapped_full (GST_MEMORY_FLAG_READONLY,
+          inter, sizeof (inter), 0, sizeof (inter), NULL, NULL));
+  fail_unless_equals_int (2, gst_harness_buffers_received (h));
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+
+
+static Suite *
+rtpvp9_suite (void)
+{
+  Suite *s = suite_create ("rtpvp9");
+  TCase *tc_chain;
+
+  suite_add_tcase (s, (tc_chain = tcase_create ("vp9depay")));
+  tcase_add_test (tc_chain, test_depay_flexible_mode);
+  tcase_add_test (tc_chain, test_depay_non_flexible_mode);
+
+  return s;
+}
+
+GST_CHECK_MAIN (rtpvp9);
diff --git a/tests/check/elements/souphttpsrc.c b/tests/check/elements/souphttpsrc.c
index 8eeb318..03f4d40 100644
--- a/tests/check/elements/souphttpsrc.c
+++ b/tests/check/elements/souphttpsrc.c
@@ -563,6 +563,20 @@
   GST_DEBUG ("  -> %d %s", msg->status_code, msg->reason_phrase);
 }
 
+static guint
+get_port_from_server (SoupServer * server)
+{
+  GSList *uris;
+  guint port;
+
+  uris = soup_server_get_uris (server);
+  g_assert (g_slist_length (uris) == 1);
+  port = soup_uri_get_port (uris->data);
+  g_slist_free_full (uris, (GDestroyNotify) soup_uri_free);
+
+  return port;
+}
+
 static gboolean
 run_server (guint * http_port, guint * https_port)
 {
@@ -571,6 +585,8 @@
   const char *ssl_cert_file = GST_TEST_FILES_PATH "/test-cert.pem";
   const char *ssl_key_file = GST_TEST_FILES_PATH "/test-key.pem";
   static int server_running = 0;
+  GSocketAddress *address;
+  GError *err = NULL;
 
   SoupAuthDomain *domain = NULL;
 
@@ -581,18 +597,11 @@
 
   *http_port = *https_port = 0;
 
-  /* The G_ENABLE_DIAGNOSTIC is temporarily overriden to avoid
-   * property deprecation warnings (for the SOUP_SERVER_PORT
-   * property) */
-  g_setenv ("G_ENABLE_DIAGNOSTIC", "0", TRUE);
-  server = soup_server_new (SOUP_SERVER_PORT, port, NULL);
-  g_setenv ("G_ENABLE_DIAGNOSTIC", "1", TRUE);
+  server = soup_server_new (NULL, NULL);
   if (!server) {
-    GST_DEBUG ("Unable to bind to server port %u", port);
+    GST_DEBUG ("Unable to create server");
     return FALSE;
   }
-  *http_port = soup_server_get_port (server);
-  GST_INFO ("HTTP server listening on port %u", *http_port);
   soup_server_add_handler (server, NULL, server_callback, NULL, NULL);
   domain = soup_auth_domain_basic_new (SOUP_AUTH_DOMAIN_REALM, realm,
       SOUP_AUTH_DOMAIN_BASIC_AUTH_CALLBACK, basic_auth_cb,
@@ -604,24 +613,45 @@
       SOUP_AUTH_DOMAIN_ADD_PATH, digest_auth_path, NULL);
   soup_server_add_auth_domain (server, domain);
   g_object_unref (domain);
-  soup_server_run_async (server);
+
+  address = g_inet_socket_address_new_from_string ("0.0.0.0", port);
+  soup_server_listen (server, address, 0, &err);
+  g_object_unref (address);
+  if (err) {
+    stop_server ();
+    g_clear_error (&err);
+    return FALSE;
+  }
+
+  *http_port = get_port_from_server (server);
+  GST_DEBUG ("HTTP server listening on port %u", *http_port);
 
   if (ssl_cert_file && ssl_key_file) {
     GTlsBackend *backend = g_tls_backend_get_default ();
 
     if (backend != NULL && g_tls_backend_supports_tls (backend)) {
-      ssl_server = soup_server_new (SOUP_SERVER_PORT, ssl_port,
-          SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file,
+      ssl_server = soup_server_new (SOUP_SERVER_SSL_CERT_FILE, ssl_cert_file,
           SOUP_SERVER_SSL_KEY_FILE, ssl_key_file, NULL);
     } else {
       GST_INFO ("No TLS support");
     }
 
     if (ssl_server) {
-      *https_port = soup_server_get_port (ssl_server);
       GST_INFO ("HTTPS server listening on port %u", *https_port);
       soup_server_add_handler (ssl_server, NULL, server_callback, NULL, NULL);
-      soup_server_run_async (ssl_server);
+      address = g_inet_socket_address_new_from_string ("0.0.0.0", ssl_port);
+      soup_server_listen (ssl_server, address, SOUP_SERVER_LISTEN_HTTPS, &err);
+      g_object_unref (address);
+
+      if (err) {
+        GST_ERROR ("Failed to start HTTPS server: %s", err->message);
+        stop_server ();
+        g_clear_error (&err);
+        return FALSE;
+      }
+
+      *https_port = get_port_from_server (ssl_server);
+      GST_DEBUG ("HTTPS server listening on port %u", *https_port);
     }
   }
 
diff --git a/tests/check/elements/splitmux.c b/tests/check/elements/splitmux.c
index bf90694..7f4896d 100644
--- a/tests/check/elements/splitmux.c
+++ b/tests/check/elements/splitmux.c
@@ -154,6 +154,44 @@
 
 GST_END_TEST;
 
+static gchar **
+src_format_location_cb (GstElement * splitmuxsrc, gpointer user_data)
+{
+  gchar **result = g_malloc0_n (4, sizeof (gchar *));
+  result[0] = g_build_filename (GST_TEST_FILES_PATH, "splitvideo00.ogg", NULL);
+  result[1] = g_build_filename (GST_TEST_FILES_PATH, "splitvideo01.ogg", NULL);
+  result[2] = g_build_filename (GST_TEST_FILES_PATH, "splitvideo02.ogg", NULL);
+  return result;
+}
+
+GST_START_TEST (test_splitmuxsrc_format_location)
+{
+  GstMessage *msg;
+  GstElement *pipeline;
+  GstElement *src;
+  GError *error = NULL;
+
+  pipeline = gst_parse_launch ("splitmuxsrc name=splitsrc ! decodebin "
+      "! fakesink", &error);
+  g_assert_no_error (error);
+  fail_if (pipeline == NULL);
+
+  src = gst_bin_get_by_name (GST_BIN (pipeline), "splitsrc");
+  g_signal_connect (src, "format-location",
+      (GCallback) src_format_location_cb, NULL);
+  g_object_unref (src);
+
+  msg = run_pipeline (pipeline);
+
+  if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR)
+    dump_error (msg);
+  fail_unless (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS);
+  gst_message_unref (msg);
+  gst_object_unref (pipeline);
+}
+
+GST_END_TEST;
+
 GST_START_TEST (test_splitmuxsink)
 {
   GstMessage *msg;
@@ -249,15 +287,28 @@
   Suite *s = suite_create ("splitmux");
   TCase *tc_chain = tcase_create ("general");
   TCase *tc_chain_basic = tcase_create ("basic");
+  gboolean have_theora, have_ogg;
+
+  /* we assume that if encoder/muxer are there, decoder/demuxer will be a well */
+  have_theora = gst_registry_check_feature_version (gst_registry_get (),
+      "theoraenc", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
+  have_ogg = gst_registry_check_feature_version (gst_registry_get (),
+      "oggmux", GST_VERSION_MAJOR, GST_VERSION_MINOR, 0);
 
   suite_add_tcase (s, tc_chain);
   suite_add_tcase (s, tc_chain_basic);
 
   tcase_add_test (tc_chain_basic, test_splitmuxsink_reuse_simple);
 
-  tcase_add_checked_fixture (tc_chain, tempdir_setup, tempdir_cleanup);
-  tcase_add_test (tc_chain, test_splitmuxsrc);
-  tcase_add_test (tc_chain, test_splitmuxsink);
+  if (have_theora && have_ogg) {
+    tcase_add_checked_fixture (tc_chain, tempdir_setup, tempdir_cleanup);
+
+    tcase_add_test (tc_chain, test_splitmuxsrc);
+    tcase_add_test (tc_chain, test_splitmuxsrc_format_location);
+    tcase_add_test (tc_chain, test_splitmuxsink);
+  } else {
+    GST_INFO ("Skipping tests, missing plugins: theora and/or ogg");
+  }
 
   return s;
 }
diff --git a/tests/check/elements/udpsrc.c b/tests/check/elements/udpsrc.c
index 494e8eb..d3705eb 100644
--- a/tests/check/elements/udpsrc.c
+++ b/tests/check/elements/udpsrc.c
@@ -125,6 +125,7 @@
 
   gst_element_set_state (udpsrc, GST_STATE_NULL);
 
+  gst_check_drop_buffers ();
   gst_check_teardown_pad_by_name (udpsrc, "src");
   gst_check_teardown_element (udpsrc);
 
@@ -222,6 +223,7 @@
 
   gst_element_set_state (udpsrc, GST_STATE_NULL);
 
+  gst_check_drop_buffers ();
   gst_check_teardown_pad_by_name (udpsrc, "src");
   gst_check_teardown_element (udpsrc);
 
diff --git a/tests/check/elements/videobox.c b/tests/check/elements/videobox.c
index ec4825a..2d26535 100644
--- a/tests/check/elements/videobox.c
+++ b/tests/check/elements/videobox.c
@@ -163,7 +163,6 @@
   fail_unless (bus != NULL);
 
   gst_bus_add_watch (bus, bus_handler, loop);
-  gst_object_unref (bus);
 
   conversions_test_size = G_N_ELEMENTS (conversion_table);
   for (itr = 0; itr < conversions_test_size; itr++) {
@@ -200,6 +199,8 @@
         "couldn't set pipeline to READY state");
   }
 
+  gst_bus_remove_watch (bus);
+  gst_object_unref (bus);
   g_main_loop_unref (loop);
 
   videobox_test_deinit_context (&ctx);
diff --git a/tests/check/elements/videomixer.c b/tests/check/elements/videomixer.c
index e428332..5720092 100644
--- a/tests/check/elements/videomixer.c
+++ b/tests/check/elements/videomixer.c
@@ -370,7 +370,7 @@
   /* cleanup */
   g_main_loop_unref (main_loop);
   gst_consistency_checker_free (consist);
-  gst_event_ref (play_seek_event);
+  gst_event_unref (play_seek_event);
   gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
   gst_object_unref (bin);
@@ -473,7 +473,7 @@
 
   /* cleanup */
   g_main_loop_unref (main_loop);
-  gst_event_ref (play_seek_event);
+  gst_event_unref (play_seek_event);
   gst_consistency_checker_free (consist);
   gst_bus_remove_signal_watch (bus);
   gst_object_unref (bus);
diff --git a/tests/check/elements/vp9enc.c b/tests/check/elements/vp9enc.c
new file mode 100644
index 0000000..62bc97f
--- /dev/null
+++ b/tests/check/elements/vp9enc.c
@@ -0,0 +1,76 @@
+/* GStreamer
+ *
+ * Copyright (c) 2016 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/gstharness.h>
+#include <gst/check/gstcheck.h>
+#include <gst/video/video.h>
+
+GST_START_TEST (test_encode_lag_in_frames)
+{
+  GstHarness *h = gst_harness_new_parse ("vp9enc lag-in-frames=5 cpu-used=8 "
+      "deadline=1");
+  gst_harness_add_src_parse (h, "videotestsrc is-live=true pattern=black ! "
+      "capsfilter caps=\"video/x-raw,width=320,height=240,framerate=25/1\"",
+      TRUE);
+
+  /* Push 20 buffers into the encoder */
+  fail_unless_equals_int (GST_FLOW_OK,
+      gst_harness_src_crank_and_push_many (h, 20, 20));
+
+  /* Only 5 buffers are allowed to be queued now */
+  fail_unless (gst_harness_buffers_received (h) > 15);
+
+  /* EOS will cause the remaining buffers to be drained */
+  fail_unless (gst_harness_push_event (h, gst_event_new_eos ()));
+  fail_unless_equals_int (gst_harness_buffers_received (h), 20);
+
+  for (gint i = 0; i < 20; i++) {
+    GstBuffer *buffer = gst_harness_pull (h);
+
+    if (i == 0)
+      fail_if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT));
+
+    fail_unless_equals_uint64 (GST_BUFFER_TIMESTAMP (buffer),
+        gst_util_uint64_scale (i, GST_SECOND, 25));
+    fail_unless_equals_uint64 (GST_BUFFER_DURATION (buffer),
+        gst_util_uint64_scale (1, GST_SECOND, 25));
+
+    gst_buffer_unref (buffer);
+  }
+
+  gst_harness_teardown (h);
+}
+
+GST_END_TEST;
+
+
+static Suite *
+vp9enc_suite (void)
+{
+  Suite *s = suite_create ("vp9enc");
+  TCase *tc_chain = tcase_create ("general");
+
+  suite_add_tcase (s, tc_chain);
+
+  tcase_add_test (tc_chain, test_encode_lag_in_frames);
+
+  return s;
+}
+
+GST_CHECK_MAIN (vp9enc);
diff --git a/tests/check/pipelines/effectv.c b/tests/check/pipelines/effectv.c
index 6c25e4b..a14806e 100644
--- a/tests/check/pipelines/effectv.c
+++ b/tests/check/pipelines/effectv.c
@@ -72,7 +72,6 @@
 
   g_signal_connect (bus, "message", (GCallback) on_message_cb, &omud);
 
-  gst_object_unref (bus);
 
   ret = gst_element_set_state (pipeline, GST_STATE_PLAYING);
   fail_unless (ret == GST_STATE_CHANGE_SUCCESS
@@ -85,6 +84,8 @@
 
   fail_unless (omud.eos == TRUE);
 
+  gst_bus_remove_signal_watch (bus);
+  gst_object_unref (bus);
   gst_object_unref (pipeline);
   g_main_loop_unref (loop);
 }
diff --git a/tests/check/pipelines/simple-launch-lines.c b/tests/check/pipelines/simple-launch-lines.c
index 84d0f21..ed83511 100644
--- a/tests/check/pipelines/simple-launch-lines.c
+++ b/tests/check/pipelines/simple-launch-lines.c
@@ -213,6 +213,32 @@
       GST_MESSAGE_ANY & ~(GST_MESSAGE_ERROR | GST_MESSAGE_WARNING),
       GST_MESSAGE_UNKNOWN, target_state);
 
+#define J2K_TEST_FILE_PATH GST_TEST_FILES_PATH G_DIR_SEPARATOR_S "gradient.j2k"
+#define J2KCAPS "image/x-jpc,sampling=YCbCr-4:2:0,width=720,height=576,pixel-aspect-ratio=1/1,framerate=30/1"
+  {
+    GstElement *pipeline, *src;
+    GstFlowReturn flow = GST_FLOW_OK;
+    GstBuffer *buf;
+    gchar *data;
+    gsize len;
+
+    s = "appsrc caps=" J2KCAPS " name=src ! rtpj2kpay ! rtpj2kdepay ! fakesink";
+
+    fail_unless (g_file_get_contents (J2K_TEST_FILE_PATH, &data, &len, NULL));
+    buf = gst_buffer_new_wrapped (data, len);
+    pipeline = setup_pipeline (s);
+    src = gst_bin_get_by_name (GST_BIN (pipeline), "src");
+    g_object_set (src, "format", GST_FORMAT_TIME, NULL);
+    g_signal_emit_by_name (src, "push-buffer", buf, &flow);
+    gst_buffer_unref (buf);
+    fail_unless_equals_int (flow, GST_FLOW_OK);
+    g_signal_emit_by_name (src, "end-of-stream", &flow);
+    gst_object_unref (src);
+    run_pipeline (pipeline, s,
+        GST_MESSAGE_ANY & ~(GST_MESSAGE_ERROR | GST_MESSAGE_WARNING),
+        GST_MESSAGE_UNKNOWN, target_state);
+  }
+
   /*s = FAKESRC " ! ! rtpac3depay ! " FAKESINK */
   /*s = FAKESRC " ! ! asteriskh263 ! " FAKESINK; */
   /*s = FAKESRC " ! ! rtpmpvdepay ! " FAKESINK; */
diff --git a/tests/check/pipelines/tagschecking.c b/tests/check/pipelines/tagschecking.c
index 3f1a686..13c72b5 100644
--- a/tests/check/pipelines/tagschecking.c
+++ b/tests/check/pipelines/tagschecking.c
@@ -91,7 +91,8 @@
 
   GST_DEBUG ("testing xmp muxing on : %s", muxer);
 
-  launch_str = g_strdup_printf ("fakesrc num-buffers=1 format=time ! "
+  launch_str =
+      g_strdup_printf ("fakesrc num-buffers=1 format=time datarate=100 ! "
       "%s ! %s name=mux ! filesink location=%s name=sink", caps, muxer, file);
   pipeline = gst_parse_launch (launch_str, NULL);
   g_free (launch_str);
diff --git a/tests/examples/Makefile.in b/tests/examples/Makefile.in
index 008ae56..6426db1 100644
--- a/tests/examples/Makefile.in
+++ b/tests/examples/Makefile.in
@@ -102,6 +102,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -320,6 +321,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -426,6 +428,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -493,6 +498,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/audiofx/Makefile.in b/tests/examples/audiofx/Makefile.in
index 6829e56..3b2c0b1 100644
--- a/tests/examples/audiofx/Makefile.in
+++ b/tests/examples/audiofx/Makefile.in
@@ -100,6 +100,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -324,6 +325,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -430,6 +432,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -497,6 +502,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/cairo/Makefile.in b/tests/examples/cairo/Makefile.in
index a024e6a..529d892 100644
--- a/tests/examples/cairo/Makefile.in
+++ b/tests/examples/cairo/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -310,6 +311,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -416,6 +418,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -483,6 +488,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/equalizer/Makefile.in b/tests/examples/equalizer/Makefile.in
index aa96796..8c6e9b4 100644
--- a/tests/examples/equalizer/Makefile.in
+++ b/tests/examples/equalizer/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -310,6 +311,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -416,6 +418,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -483,6 +488,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/equalizer/demo.c b/tests/examples/equalizer/demo.c
index 03b4ff6..70000e5 100644
--- a/tests/examples/equalizer/demo.c
+++ b/tests/examples/equalizer/demo.c
@@ -17,6 +17,9 @@
  * Boston, MA 02110-1301, USA.
  */
 
+/* TODO: We use gdk_cairo_create() and others, which are deprecated */
+#define GDK_DISABLE_DEPRECATION_WARNINGS
+
 #include <stdlib.h>
 #include <string.h>
 #include <math.h>
diff --git a/tests/examples/jack/Makefile.in b/tests/examples/jack/Makefile.in
index 644fe88..c98b1e4 100644
--- a/tests/examples/jack/Makefile.in
+++ b/tests/examples/jack/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -309,6 +310,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -415,6 +417,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -482,6 +487,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/level/Makefile.in b/tests/examples/level/Makefile.in
index 256b887..aa7e7bc 100644
--- a/tests/examples/level/Makefile.in
+++ b/tests/examples/level/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -310,6 +311,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -416,6 +418,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -483,6 +488,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/pulse/Makefile.in b/tests/examples/pulse/Makefile.in
index 62d670a..fe47d0d 100644
--- a/tests/examples/pulse/Makefile.in
+++ b/tests/examples/pulse/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -310,6 +311,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -416,6 +418,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -483,6 +488,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/rtp/Makefile.in b/tests/examples/rtp/Makefile.in
index 27134c5..89f412e 100644
--- a/tests/examples/rtp/Makefile.in
+++ b/tests/examples/rtp/Makefile.in
@@ -101,6 +101,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -337,6 +338,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -443,6 +445,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -510,6 +515,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/rtp/client-PCMA.c b/tests/examples/rtp/client-PCMA.c
index 664b336..8d7da61 100644
--- a/tests/examples/rtp/client-PCMA.c
+++ b/tests/examples/rtp/client-PCMA.c
@@ -88,13 +88,19 @@
   /* get the right session */
   g_signal_emit_by_name (rtpbin, "get-internal-session", sessid, &session);
 
+#if 0
+  /* FIXME: This is broken in rtpbin */
   /* get the internal source (the SSRC allocated to us, the receiver */
   g_object_get (session, "internal-source", &isrc, NULL);
   print_source_stats (isrc);
+  g_object_unref (isrc);
+#endif
 
   /* get the remote source that sent us RTCP */
   g_signal_emit_by_name (session, "get-source-by-ssrc", ssrc, &osrc);
   print_source_stats (osrc);
+  g_object_unref (osrc);
+  g_object_unref (session);
 }
 
 /* will be called when rtpbin has validated a payload that we can depayload */
diff --git a/tests/examples/shapewipe/Makefile.in b/tests/examples/shapewipe/Makefile.in
index 126e873..3d78500 100644
--- a/tests/examples/shapewipe/Makefile.in
+++ b/tests/examples/shapewipe/Makefile.in
@@ -100,6 +100,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -315,6 +316,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -421,6 +423,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -488,6 +493,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/spectrum/Makefile.in b/tests/examples/spectrum/Makefile.in
index 5732c30..88a8948 100644
--- a/tests/examples/spectrum/Makefile.in
+++ b/tests/examples/spectrum/Makefile.in
@@ -101,6 +101,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -332,6 +333,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -438,6 +440,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -505,6 +510,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/examples/spectrum/demo-audiotest.c b/tests/examples/spectrum/demo-audiotest.c
index a5151c9..afa90c4 100644
--- a/tests/examples/spectrum/demo-audiotest.c
+++ b/tests/examples/spectrum/demo-audiotest.c
@@ -35,6 +35,9 @@
 #include "config.h"
 #endif
 
+/* TODO: We use gdk_cairo_create() and others, which are deprecated */
+#define GDK_DISABLE_DEPRECATION_WARNINGS
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/examples/spectrum/demo-osssrc.c b/tests/examples/spectrum/demo-osssrc.c
index da684c9..2e5b195 100644
--- a/tests/examples/spectrum/demo-osssrc.c
+++ b/tests/examples/spectrum/demo-osssrc.c
@@ -21,6 +21,9 @@
 #include "config.h"
 #endif
 
+/* TODO: We use gdk_cairo_create() and others, which are deprecated */
+#define GDK_DISABLE_DEPRECATION_WARNINGS
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
diff --git a/tests/examples/v4l2/Makefile.in b/tests/examples/v4l2/Makefile.in
index d0e38db..2b61ba1 100644
--- a/tests/examples/v4l2/Makefile.in
+++ b/tests/examples/v4l2/Makefile.in
@@ -99,6 +99,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -310,6 +311,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -416,6 +418,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -483,6 +488,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/tests/files/Makefile.am b/tests/files/Makefile.am
index 4872dcb..bd3282b 100644
--- a/tests/files/Makefile.am
+++ b/tests/files/Makefile.am
@@ -1,6 +1,7 @@
 
 EXTRA_DIST = \
 	audiotestsrc.flac \
+	gradient.j2k \
 	id3-407349-1.tag \
 	id3-407349-2.tag \
 	id3-447000-wcop.tag \
diff --git a/tests/files/Makefile.in b/tests/files/Makefile.in
index 8d4f5d1..c4beb9b 100644
--- a/tests/files/Makefile.in
+++ b/tests/files/Makefile.in
@@ -97,6 +97,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -255,6 +256,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -361,6 +363,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -428,6 +433,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -480,6 +486,7 @@
 top_srcdir = @top_srcdir@
 EXTRA_DIST = \
 	audiotestsrc.flac \
+	gradient.j2k \
 	id3-407349-1.tag \
 	id3-407349-2.tag \
 	id3-447000-wcop.tag \
diff --git a/tests/files/gradient.j2k b/tests/files/gradient.j2k
new file mode 100644
index 0000000..ad2c94a
--- /dev/null
+++ b/tests/files/gradient.j2k
Binary files differ
diff --git a/tests/icles/Makefile.in b/tests/icles/Makefile.in
index 8aaa73e..b6f88cf 100644
--- a/tests/icles/Makefile.in
+++ b/tests/icles/Makefile.in
@@ -103,6 +103,7 @@
 	$(top_srcdir)/common/m4/as-libtool.m4 \
 	$(top_srcdir)/common/m4/as-version.m4 \
 	$(top_srcdir)/common/m4/ax_create_stdint_h.m4 \
+	$(top_srcdir)/common/m4/ax_pthread.m4 \
 	$(top_srcdir)/common/m4/gst-arch.m4 \
 	$(top_srcdir)/common/m4/gst-args.m4 \
 	$(top_srcdir)/common/m4/gst-check.m4 \
@@ -410,6 +411,7 @@
 GST_OPTION_OBJCFLAGS = @GST_OPTION_OBJCFLAGS@
 GST_PACKAGE_NAME = @GST_PACKAGE_NAME@
 GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@
+GST_PKG_CONFIG_PATH = @GST_PKG_CONFIG_PATH@
 GST_PLUGINS_ALL = @GST_PLUGINS_ALL@
 GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@
 GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@
@@ -516,6 +518,9 @@
 PLUGINDIR = @PLUGINDIR@
 POSUB = @POSUB@
 PROFILE_CFLAGS = @PROFILE_CFLAGS@
+PTHREAD_CC = @PTHREAD_CC@
+PTHREAD_CFLAGS = @PTHREAD_CFLAGS@
+PTHREAD_LIBS = @PTHREAD_LIBS@
 PULSE_CFLAGS = @PULSE_CFLAGS@
 PULSE_LIBS = @PULSE_LIBS@
 PYTHON = @PYTHON@
@@ -583,6 +588,7 @@
 am__quote = @am__quote@
 am__tar = @am__tar@
 am__untar = @am__untar@
+ax_pthread_config = @ax_pthread_config@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
diff --git a/win32/common/config.h b/win32/common/config.h
index 6ebb6a7..3869d7a 100644
--- a/win32/common/config.h
+++ b/win32/common/config.h
@@ -64,7 +64,7 @@
 #define GST_PACKAGE_ORIGIN "Unknown package origin"
 
 /* GStreamer package release date/time for plugins as YYYY-MM-DD */
-#define GST_PACKAGE_RELEASE_DATETIME "2016-08-19"
+#define GST_PACKAGE_RELEASE_DATETIME "2016-09-30"
 
 /* Define if static plugins should be built */
 #undef GST_PLUGIN_BUILD_STATIC
@@ -274,6 +274,12 @@
 /* Define to 1 if you have the <process.h> header file. */
 #define HAVE_PROCESS_H 1
 
+/* Define if you have POSIX threads libraries and header files. */
+#undef HAVE_PTHREAD
+
+/* Have PTHREAD_PRIO_INHERIT. */
+#undef HAVE_PTHREAD_PRIO_INHERIT
+
 /* Define to enable pulseaudio plug-in (used by pulseaudio). */
 #undef HAVE_PULSE
 
@@ -395,7 +401,7 @@
 #define PACKAGE_NAME "GStreamer Good Plug-ins"
 
 /* Define to the full name and version of this package. */
-#define PACKAGE_STRING "GStreamer Good Plug-ins 1.8.3"
+#define PACKAGE_STRING "GStreamer Good Plug-ins 1.9.90"
 
 /* Define to the one symbol short name of this package. */
 #define PACKAGE_TARNAME "gst-plugins-good"
@@ -404,7 +410,7 @@
 #undef PACKAGE_URL
 
 /* Define to the version of this package. */
-#define PACKAGE_VERSION "1.8.3"
+#define PACKAGE_VERSION "1.9.90"
 
 /* directory where plugins are located */
 #ifdef _DEBUG
@@ -413,6 +419,10 @@
 #  define PLUGINDIR PREFIX "\\lib\\gstreamer-0.11"
 #endif
 
+/* Define to necessary symbol if this constant uses a non-standard name on
+   your system. */
+#undef PTHREAD_CREATE_JOINABLE
+
 /* The size of `char', as computed by sizeof. */
 #undef SIZEOF_CHAR
 
@@ -435,7 +445,7 @@
 #undef TARGET_CPU
 
 /* Version number of package */
-#define VERSION "1.8.3"
+#define VERSION "1.9.90"
 
 /* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
    significant byte first (like Motorola and SPARC, unlike Intel). */